web-dev-qa-db-ja.com

ハイパースレッディングを無効にする必要がありますか?

私は大きな仕事をしていて、何がより良い結果をもたらすかを調べるためにトポロジーを実験しています(ntasksncores-per-cpunodesなどで遊んでいます)私はslurmを使用しています私のワークキューマネージャーとして。

2つのノード(CentOS 7、Bright 7で管理)があり、それぞれに2xIntel(R)Xeon(R)CPU E5-2680 v3 @ 2.50GHzがあります。つまり、12コアの2つのプロセッサ、すべてハイパースレッドなので、ノードごとに48コアがあるように見えます。 (プロセッサトポロジについては、以下を参照してくださいlstopoが提供します)

私の質問:BIOSでハイパースレッディングを無効にする必要がありますか、それともSLURMで無効にする必要がありますか?または、システムを2倍のコアがあるように扱いますか?--thread-per-core=1を指定しても効果がないようです。

私の仕事は、大きな環境モデル、大量のI/O、大量の行列計算などであり、実行には現在数日かかります。

SLURM FAQ を読んでいますが、進め方がまだわかりません。

Processor topology showing NUMA spaces

1
Matt

基本的に、HTが無効になっている場合に可能なより自由なL2/L3キャッシュの恩恵を受けると思われる場合は、先に進んでBIOSからHTを無効にしてください。

ただし、並行して実行できる小さな操作が多数ある場合は、HTを有効のままにしておくと間違いなくメリットがあります。

VMWare ESXiおよびハイパースレッディング

http://lifehacker.com/how-hyper-threading-really-works-and-when-its-actuall-1394216262

1
Sam Perry

Slurmはコアごとに割り当てます。SLURMはパフォーマンスではなく移植性を考慮して設計されています。したがって、割り当て方法は、「ハイパースレッディングが有効になっているシステムでも、リソースは通常、コアレベルのジョブに割り当てられることに注意してください(以下の注を参照)。2つの異なるジョブはコアを共有しません。」ハイパースレッディングとは何かを知っており、有効にすることができますが、特にソケットごとのコアを調べます。これはオープンソースであり、ハイパースレッドの最適化が適切であると確信しています。

1
Jim B