Есть ли способ, кроме как отключить половину ядер, используя SetThreadAffinityMask (), чтобы гиперпоточный процессор полностью подчинялся приоритетам потоков?
AFAIK, сам ЦП не знает о приоритетах, поэтому потоку с низким приоритетом, работающему на ядре 1, будет предоставлено примерно такое же время выполнения, как потоку с высоким приоритетом, работающему на ядре 0. Другими словами, поток с низким приоритетом вызывает поток с высоким приоритетом, чтобы завершить свою работу (потенциально много) позже.
Я предполагаю, что ядра 0 и 1 — это два логических процессора, расположенных на одном физическом процессоре.
Согласно комментарию Ханса, все сводится к тому, поддерживает ли процессор Intel HT приоритеты потоков в оборудовании. Они?
Задача ещё не решена.
Других решений пока нет …