EMZETT.
Увійти

Ядра процесора, логічні процесори та потоки

Коротко: Фізичне ядро процесора — це справжній обчислювальний пристрій. Логічний процесор — те, що операційна система бачить як обчислювальний пристрій (за SMT по два на ядро). Потік (thread) — це лінія виконання програми, що працює на логічному процесорі. Процесор (CPU, корпус) — це весь чип.

Докладніше: Терміни лежать на трьох рівнях: обладнання (чип, ядра), операційна система (логічні процесори) і програмне забезпечення (потоки). Операційна система розподіляє потоки за логічними процесорами.

Подробиці

ТермінРівеньЗначення
Процесор/CPU (корпус)ОбладнанняЧип у сокеті
Фізичне ядроОбладнанняПовноцінний обчислювальний пристрій зі своїми ALU, L1/L2
Логічний процесорОпераційна системаТе, що Диспетчер завдань вважає «ядром». За SMT по 2 на фізичне
Потік (thread)ПЗХід виконання всередині процесу
ПроцесПЗЗапущена програма зі своєю пам’яттю, містить 1 або багато потоків

Приклад: Ryzen 7 із 8 ядрами та SMT показує в Диспетчері завдань «8 ядер, 16 логічних процесорів». Одночасно можуть виконуватися 16 потоків, але не вдвічі швидше, ніж 8.

  • Різниця між ядром і потоком: ядро — це обладнання, потік — фрагмент ходу програми. Одне ядро може виконувати багато потоків по черзі (кванти часу) або, за SMT, два одночасно.
  • Потоків більше, ніж логічних процесорів: нормально. Операційна система перемикається щомілісекунди (планування).
  • Гібридні ядра: P-ядра (з SMT) та E-ядра (без SMT) на одному чипі.
  • Вигоди кількох ядер: програми, розбиті на кілька потоків, їх використовують. Один потік завжди використовує лише одне ядро.
  • Обмеження: закон Амдала: непаралельна частка визначає максимум. Синхронізація (блокування) коштує часу.
  • Перегляд: Диспетчер завдань Windows → Продуктивність → ЦП. Linux lscpu, nproc.
  • Застосування: сервери та рендеринг виграють від багатьох ядер, ігри — радше від високої швидкості одного ядра.

Див. також: Одночасна багатопотоковість (SMT), Ядра, Потоки