Ядра процесора, логічні процесори та потоки
Коротко: Фізичне ядро процесора — це справжній обчислювальний пристрій. Логічний процесор — те, що операційна система бачить як обчислювальний пристрій (за 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), Ядра, Потоки