Из таблицы технических характеристик 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 в гекс. Если вы не знаете, как конвертировать эти базы, вы можете просто использовать эту таблицу преобразования .