темы и описания продуктов Intel (и AMD)

Много лет назад я создавал многопоточный код на одноядерных процессорах. Я не помню, был ли это PThreads Posix.

Может кто-нибудь пояснить, что имеют в виду Intel/AMD, когда говорят, что 4 ядра 4 потока (если HT или SMT не активированы)? Мне должно быть разрешено создавать столько потоков, сколько я хочу, на 4-ядерном процессоре! Они означают что-то другое с 4ядерами 4THREADS?

Скажем, я МОГУ создать столько потоков, сколько захочу, достаточно ли умен планировщик, чтобы использовать все доступные ядра? То же самое относится и к планировщику Windows?


person nero_pelleman    schedule 08.08.2020    source источник
comment
На аппаратном языке поток — это физическая единица, способная выполнять код. При включенной гиперпоточности одно ядро ​​имеет два (аппаратных) потока. Эти потоки исполнения (первоначальный смысл) не имеют ничего общего с программной концепцией потоков на уровне ОС, которые являются виртуальными (вот почему вы можете создавать их столько, сколько хотите, но не больше, чем может поддерживать аппаратное обеспечение). будут когда-либо работать одновременно, а ОС имитирует остальные, переключаясь между ними). И да, весь смысл планировщика заключается в умном выполнении сопоставления программных и аппаратных потоков.   -  person Jeroen Mostert    schedule 08.08.2020
comment
Большое спасибо Jeroen, очень полезно!   -  person nero_pelleman    schedule 08.08.2020