これらの無効なHyperThreadシナリオの間にパフォーマンスの違いはありますか?どれが最高ですか、そしてその理由は何ですか?
noht
カーネルパラメータを使用します高度に最適化された並列アプリケーションは、HTが有効になっていると動作が遅くなります。
https://www.percona.com/blog/2015/01/15/hyper-threading-double-cpu-throughput/
私たちのアプリは、4コア+ 4 HTよりも4コアで13%高速に実行されます。
ハードウェア:
さて、最初の明らかな違いは、noht
が最近のLinuxシステムでは実際には何もしないということです。このカーネルブートオプションは長い間廃止されており、maxcpus=
に置き換えられました。
maxcpus=m
(m
は物理(非HT)コアの数)を設定すると、同じことが実行されるようになりました。
システムの実行中に sysfsを介して個々のCPUコア/ハイパースレッドを有効または無効にする することも可能です。
それが邪魔にならないように...
BIOSでハイパースレッディングを無効にするか、オペレーティングシステムでハイパースレッディングを無効にするかでパフォーマンスに違いはありません。
唯一の本当の違いは、OSでコア/スレッドを無効にした場合、再起動せずに後で再度有効にできることです。さまざまな計算ジョブを実行する場合は、これを実行することをお勧めします。ハイパースレッディングの恩恵を受けるものとそうでないものがあります。