通过 BIOS 或内核关闭超线程?

通过 BIOS 或内核关闭超线程?

这些禁用超线程的场景之间是否存在性能差异?哪个是最好的,为什么?

  • 在 BIOS 中禁用 HT
  • 使用noht内核参数

高度优化的并行应用程序在启用 HT 的情况下运行速度会更慢。
https://www.percona.com/blog/2015/01/15/hyper-threading-double-cpu-throughput/
我们的应用程序在 4 核上运行速度比 4 核 + 4 HT 运行速度快 13%。

硬件:

  • 木板:超微 X9SPU-F
  • 中央处理器:英特尔(R) 至强(R) CPU E3-1275 V2

答案1

嗯,第一个明显的区别是noht在现代 Linux 系统上实际上不执行任何操作。此内核启动选项早已过时,已被替换maxcpus=

设置maxcpus=m,其中m是物理(非 HT)核心的数量,现在可以完成同样的事情。

也可以通过 sysfs 启用或禁用单个 CPU 核心/超线程在系统运行时。

解决了这个问题...

在 BIOS 中禁用超线程与在操作系统中禁用超线程在性能上应该没有区别。

唯一真正的区别是,如果您在操作系统中禁用核心/线程,则可以稍后重新启用它们而无需重新启动。如果您运行不同的计算作业,您可能想要这样做,其中一些作业受益于超线程,而另一些则没有。

相关内容