パスワードを忘れた? アカウント作成
420579 journal

64bitの日記: Dual Core & HT は本当に有効? 2

日記 by 64bit

私のDual Xeon with HTマシンで,パフォーマンスが逆に落ちる現象に遭遇することがあります。ちゃんと検証したわけでないですが,Intel社がメリットを主張するDual Core & HTにおいて,本当に効果を得るか疑問があります。

その現象が起きるのは,たとえばWindows Media エンコーダがそうです。Windows Media エンコーダは,Dual CPUの場合にそれぞれを有効に使うように最適化されていると思われます。このときDual Xeon with HTでは,CPU消費合計が50%を超えない(※)ことがあるんです。一方のCPUに偏って処理が割り当てられた状態だと思われます。すなわち,Pentium4上のHTを利用しているのと同じです。これでは,Dual CPUの意味がありません。HT機能を解除するとCPU消費合計は100%近くまでに達します。

たとえば,アプリケーションが3CPU以上を考慮して最適化されていれば効果を得やすいと思います。その場合でも,負荷と処理能力の不均衡から思うほどにはならないのではないでしょうか。OSが,負荷状態に応じてCPU資源の割当先をリアルタイム制御できれば話は早いと思います。でもそれは容易なのでしょうか。難しい問題のような気もしますが。

(※)4CPU扱いになるので,仮にDual CPUそれぞれに処理が割り振られても50%を超えることはまずありえません。(オーバヘッドが増えるなどの理由により)

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • それは単純に、対象となるプログラムがマルチスレッドを意識しているかによると思います。CPU数が多くなっても、シングルスレッドで動いている限りは1CPUしか使用されませんから。

    もっとも、最近はHyperThredingが普及してきたこともありマルチスレッドで動くプログラムが増えつつあるでしょうが、それでも3スレッド以上を動かすようなプログラムはすくないのではないでしょうか。
    私も自宅ではDualCPU環境ですが、大抵のプログラムは1スレッドで動いているようでCPUの稼働率は50%止まりが多いです。

    それから、HyperThredingはあくまでCPUの空き演算器を利用してい擬似的に複数スレッド処理を行うだけなので、単一処理であればHyperThredingをoffにした方が速いはずです。

    一般的に言われていることですが、マルチコア、マルチCPU環境は処理性能を上げるための仕組みと言うよりは、複数のプログラムを同時実行しても処理時間をなるべく落とさないようにする仕組みと考えた方が良いでしょう。
    自宅でデスクトップとしてしかDualCPU環境を利用していませんが、なにをするにもストレスがかからず快適ですよ。たとえCPUがPentiumIIIと、世代的に古いものであっても。

    # DiskがFullSCSIというのもあるかもしれませんが。
      • もっとも、最近はHyperThredingが普及してきたこともありマルチスレッドで動くプログラムが増えつつあるでしょうが、それでも3スレッド以上を動かすようなプログラムはすくないのではないでしょうか。
      そこで気になっているのが,Dual Coreが普及するにつれて,“2スレッドを積極的に使うようなプログラム”が増えたときの場合です。Dual Core + HTマシンにおいて,3スレッド以上を使うようなプログラムでは効果を得るかもしれません。しかし,Dual Coreプロセッサ向けに,良かれと思って実装された“2スレッドを積極的に使うようなプログラム”の場合,HTをONにしておくとOFFにしたときに比べてパフォーマンスが低下する,という現象が生じるのではないかと考えるのです。

      そうなったときに,はて?HTって逆効果?みたいなことになりえると思うのです。3スレッド以上を使うようなプログラムが増えれば別ですが,ご指摘のとおり,それはまずありえないでしょうし。
      親コメント
typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...