Linux-Kernel
通過 BIOS 或核心關閉超執行緒?
這些禁用的超執行緒方案之間是否存在性能差異?哪個是最好的,為什麼?
- 在 BIOS 中禁用 HT
- 使用
noht
核心參數高度優化的並行應用程序在啟用 HT 的情況下執行速度較慢。
https://www.percona.com/blog/2015/01/15/hyper-threading-double-cpu-throughput/
我們的應用程序在 4 核上的執行速度比 4 核 + 4 HT 快 13%。
硬體:
- 板子:Supermicro X9SPU-F
- CPU: Intel(R) Xeon(R) CPU E3-1275 V2
嗯,第一個明顯的區別是它
noht
在現代 Linux 系統上實際上並沒有做任何事情。此核心引導選項早已過時,已被替換為maxcpus=
.設置
maxcpus=m
,其中m
是物理(非 HT)核心的數量,現在完成了同樣的事情。也可以在系統執行時通過 sysfs 啟用或禁用單個 CPU 核心/超執行緒。
有了這個…
在 BIOS 中禁用超執行緒或在作業系統中禁用它在性能上應該沒有差異。
唯一真正的區別是,如果您禁用作業系統中的核心/執行緒,那麼您可以稍後再次重新啟用它們而無需重新啟動。如果您執行不同的計算作業,您可能想要這樣做,其中一些受益於超執行緒,而另一些則沒有。