От Техническое описание процессора Intel Core, том 1 , стр. 38:
Технология Intel Hyper-Threading
[...]
Эта функция должна быть включена с использованием BIOS и требует использования
поддержка системы.
Это связано с тем, что гиперпоточность является фактическим физическим оборудованием на кристалле ЦП и поэтому может быть включена / отключена. на аппаратном уровне только ,
Если вы знаете, какое приложение плохо работает с гиперпоточностью, вы можете использовать такой инструмент, как StartAffinity если у вас есть XP.
Если вы используете Windows 7, есть встроенный start
Команда, которая может сделать это. Используйте следующую команду для запуска процесса с определенной привязкой к процессору (опять же, /AFFINITY
аргумент был добавлен только в Windows 7):
start /AFFINITY <mask> "C:\yourprogram.exe"
куда <mask>
следует заменить шестнадцатеричной маской для процессоров, которые вы хотите запустить (маска процессора - это просто двоичная маска, включающая / отключающая эту привязку, поэтому 00000101 включает CPU0 и CPU2, а 00000010 включает только CPU1).
Чтобы вычислить шестнадцатеричное значение, вы можете преобразовать двоичную маску, или же возьмите сумму 2, равную мощности ядер, на которых вы хотите запустить программу (начиная с 0), и преобразуйте это значение в шестнадцатеричное.
Например, если у меня есть четырехъядерная система, и я хочу, чтобы процесс выполнялся только на CPU0 и CPU2, я бы добавил 2 0 + 2 2 = 1 + 4 = 5. Преобразуйте 5 в гекс, то есть всего 5, и установите это как <mask>
, Вы также можете просто конвертировать 00000101 в гекс. Если вы не знаете, как конвертировать эти базы, вы можете просто использовать эта таблица преобразования ,