4

Linuxカーネル2.6.32をIntel(R)Xeon(R)CPU E31275@3.40GHzに移植します。BIOSでハイパースレッドを有効にすると、8つのCPUコア(CPU0〜CPU7)が表示されます。ほとんどの割り込みはCPU4で発生し、このコアのCPU使用率は他のコアよりもはるかに高くなります(他のコアのほぼ2倍)。IRQバインディング操作を設定しなかったと思うので、よくわかりません。

BIOSでハイパースレッドを無効にすると、すべて問題ありません。IRQはバランスが取れており、すべてのコア(CPU0〜CPU3)のCPU使用率もほぼバランスが取れています。

誰かがそれを説明できますか?BIOSに関連していますか?カーネルで特別な設定を行う必要がありますか?

4

1 に答える 1

5

一部のプログラムはHT(ハイパースレッディング)から悪影響を受けます。これを説明するには、HTとは何かを理解する必要があります。あなたが7つ(0-7は8つです)のCPUコアを見たと言ったように、これは真実ではありません、あなたはあなたのCPUに4つのコアを持っています、8つのコアは仮想コアなので、1つのコアは2つのスレッドを持っています(そして彼は2のように振る舞いますコア)。通常、HTは、CPU / OSが同時に8つのプログラムを実行できる(これらのプログラムが実行することを実行する)ため、プログラムをより高速に実行するのに役立ちます。HTがないと、同時に実行できるのは4つだけです。この外観を変更することはできないため、設定を行う必要はありません。このプログラムの開発者である場合は、コードを再確認して、必要に応じてHT用に最適化するか、HTを無効にすることができます。

一部のでたらめな人々による別の情報が話している:HTはCPUのパワーを増やしていますこれは真実ではありません!たとえば4GHzの8コアが表示された場合でも(GHzは何も表示せず、フロップで測定する必要があります)、HTをオンにして4GHzの4コアを取得した場合と同じ電力が得られます。2つの仮想コアでHTを取得した場合、CPUから1つの物理コアを共有しています。

HTに関する詳細情報は次のとおりです。http: //www.makeuseof.com/tag/hyperthreading-technology-explained/

HTの悪いコードと良いコード(HTがない場合よりも遅いという意味で)を示すコードスニペットがある非常に素晴らしいサイトへの古いリンクを見つけることができませんでした。

TL; DR:HTの開発により、すべてのプログラムがHTから恩恵を受けるわけではありません。

于 2012-05-15T06:53:53.983 に答える