web-dev-qa-db-ja.com

BIOSまたはカーネルによってハイパースレッディングをオフにしますか?

これらの無効なHyperThreadシナリオの間にパフォーマンスの違いはありますか?どれが最高ですか、そしてその理由は何ですか?

  • BIOSでHTを無効にする
  • nohtカーネルパラメータを使用します

高度に最適化された並列アプリケーションは、HTが有効になっていると動作が遅くなります。
https://www.percona.com/blog/2015/01/15/hyper-threading-double-cpu-throughput/
私たちのアプリは、4コア+ 4 HTよりも4コアで13%高速に実行されます。

ハードウェア:

  • ボード:Supermicro X9SPU-F
  • CPU:Intel(R)Xeon(R)CPU E3-1275 V2
3
andras.tim

さて、最初の明らかな違いは、nohtが最近のLinuxシステムでは実際には何もしないということです。このカーネルブートオプションは長い間廃止されており、maxcpus=に置き換えられました。

maxcpus=mmは物理(非HT)コアの数)を設定すると、同じことが実行されるようになりました。

システムの実行中に sysfsを介して個々のCPUコア/ハイパースレッドを有効または無効にする することも可能です。

それが邪魔にならないように...

BIOSでハイパースレッディングを無効にするか、オペレーティングシステムでハイパースレッディングを無効にするかでパフォーマンスに違いはありません。

唯一の本当の違いは、OSでコア/スレッドを無効にした場合、再起動せずに後で再度有効にできることです。さまざまな計算ジョブを実行する場合は、これを実行することをお勧めします。ハイパースレッディングの恩恵を受けるものとそうでないものがあります。

5
Michael Hampton