Есть ли разница в производительности между этими отключенными сценариями HyperThread? Что лучше и почему?
noht
параметр ядраВысокооптимизированные параллельные приложения работают медленнее с включенным HT.
https://www.percona.com/blog/2015/01/15/hyper-threading-double-cpu-throughput/
Наше приложение работает на 13% быстрее на 4 ядрах, чем на 4 ядрах + 4 HT.
Оборудование:
Ну, первое очевидное отличие состоит в том, что noht
фактически ничего не делает в современных системах Linux. Эта опция загрузки ядра давно устарела и была заменена на maxcpus=
.
Настройка maxcpus=m
, где m
количество физических (не HT) ядер, теперь выполняет то же самое.
Также возможно включить или отключить отдельные ядра / гиперпотоки ЦП через sysfs пока система работает.
С этим в стороне ...
Не должно быть разницы в производительности между отключением гиперпоточности в BIOS или отключением в операционной системе.
Единственная реальная разница заключается в том, что если вы отключите ядра / потоки в ОС, вы можете снова включить их позже без перезагрузки. Возможно, вы захотите сделать это, если вы выполняете разные вычислительные задания, некоторые из которых получают выгоду от гиперпоточности, а некоторые - нет.