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), Ядра, Потоки