13

私は統計的パターン認識の研究者であり、何日も実行されるシミュレーションを頻繁に実行します。私はLinux3.2.0-24-genericでUbuntu12.04を実行しています。これは、私が理解しているように、マルチコアとハイパースレッディングをサポートしています。Intel Core i7 Sandy Bridge QuadcoreとHTTを使用すると、4つのシミュレーション(時間がかかるプログラム)を同時に実行することがよくあります。私が質問する前に、ここに私がすでに知っていること(私が思う)があります。

  • 私のOS(Ubuntu 12.04)は、ハイパースレッディングのために8つのCPUを検出します。
  • 私のOSのスケジューラーは、OSがSMP(同時マルチスレッディング)をサポートしているため、同じ物理コアに属する2つの論理(仮想)コアで実行する2つのプログラムをスケジュールすることはありません。
  • ハイパースレッディングに関するウィキペディアのページを読みました。
  • SandyBridgeのHowStuffWorksページを読みました。

OK、私の質問は次のとおりです。コンピューターで4つのシミュレーション(プログラム)を同時に実行すると、それぞれが別々の物理コアで実行されます。ただし、ハイパースレッディングにより、各物理コアは2つの論理コアに分割されます。したがって、各物理コアが各シミュレーションの実行に全容量の半分しか使用していないというのは本当ですか?

事前にどうもありがとうございました。私の質問のいずれかの部分が明確でない場合は、私に知らせてください。

4

4 に答える 4

4

Linux カーネルで実行しているので、スケジューラは十分にスマートで、タスクが物理コア間で確実に分割されるため、幸運です。

Linux はカーネル 2.4.17 でハイパースレッディング対応になりました (参照: http://kerneltrap.org/node/391 )

参照は古い O(1) スケジューラからのものであることに注意してください。Linux は現在、カーネル 2.6.23 で導入された CFS スケジューリング アルゴリズムを使用しており、さらに優れているはずです。

しかし、すでに示唆されているように、BIOS でハイパー スレッディングを無効にして実験し、ハイパースレッディングを有効にした場合と無効にした場合で、特定のワークロードが高速または低速で実行されるかどうかを確認できます。4 つではなく 8 つのタスクを開始すると、ハイパースレッディングでの 8 つのタスクの合計実行時間は、4 つのタスクで 2 つの別々の実行よりも速いことがわかるでしょうが、これも実験することが最善の方法です。幸運を!

于 2013-01-19T09:45:35.130 に答える
1

本当に4つの専用コアが必要な場合は、BIOSページでハイパースレッディングを無効にできるはずです。また、この部分についてはあまり明確ではありませんが、プロセッサは、2番目の論理コアがアイドル状態の場合に、単一のスレッドでより多くの作業を実行できるほど賢いと思います。

于 2012-05-22T20:16:43.070 に答える
0

いいえ、それは正確には真実ではありません。ハイパースレッド コアは 2 つのコアではありません。並行して実行できるものもありますが、2 つの個別のコアほどではありません。

于 2012-05-22T20:13:05.457 に答える