потоки, которые питон (да и любой другой язык) использует в мультипоточности?
вот у меня проц, 4 физических ядра, 8 логических. вот результат lscpu
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
когда я запуская питоновский код без мультипроца, задействован 1 CPU, верно? а когда запускаю мультитред, то внутри этого 1 CPU у меня появляется сколько-то потоков. вот как понять сколько у меня потоков в этом CPU и что это за потоки?
спасибо!
Физически потоки могут быть как на одном ядре, так и на разных — шедулит ОС по своим правилам. Единицей шедулинга являются именно потоки, не процессы. Гипертрединг — это некоторая очень низкоуровневая штука в проце, позволяющая создавать виртуальные "ядра", т.е. речь не про те же потоки, что в контексте программирования.
Ага, я уже про такое слышал, что создаются некие "виртуальные" ядра. А вопрос - их можно как-то посчитать? Даже так спрошу, как понять сколько в ThreadPoolExecutor(max_worker = ?) писать тогда воркеров?
гипертрединг это про предугадывание
Ты про предсказание ветвлений?
Нет, то совершенно независимая штука https://ru.m.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C_%D0%BF%D0%B5%D1%80%D0%B5%D1%85%D0%BE%D0%B4%D0%BE%D0%B2 https://ru.m.wikipedia.org/wiki/Hyper-threading
Обсуждают сегодня