回答:
他の人が言ったように、これはタスクに完全に依存します。
これを説明するために、実際のベンチマークを見てみましょう。
これは修士論文(現在オンラインでは入手できません)から取られました。
これは、文字列照合アルゴリズムの相対的なスピードアップ1を示しています(すべての色は異なるアルゴリズムです)。アルゴリズムは、ハイパースレッディングを備えた2つのIntel Xeon X5550クアッドコアプロセッサで実行されました。つまり、合計8つのコアがあり、それぞれが2つのハードウェアスレッド(=「ハイパースレッド」)を実行できます。したがって、ベンチマークでは、最大16スレッド(この構成で実行できる同時スレッドの最大数)までの速度向上をテストします。
4つのアルゴリズムのうちの2つ(青とグレー)は、全範囲にわたってほぼ線形にスケーリングします。つまり、ハイパースレッディングの恩恵を受けます。
他の2つのアルゴリズム(赤と緑、色覚異常の人には残念な選択)は、最大8スレッドまで線形にスケーリングします。その後、彼らは停滞します。これは、これらのアルゴリズムがハイパースレッディングの恩恵を受けないことを明確に示しています。
理由?この特定のケースでは、メモリの負荷です。最初の2つのアルゴリズムは、計算により多くのメモリを必要とし、メインメモリバスのパフォーマンスによって制約されます。つまり、1つのハードウェアスレッドがメモリを待機している間、他のスレッドは実行を継続できます。ハードウェアスレッドの主要なユースケース。
他のアルゴリズムでは、必要なメモリが少なく、バスを待つ必要がありません。それらはほぼ完全に計算限界であり、整数演算のみを使用します(実際にはビット演算)。したがって、並列実行の可能性はなく、並列命令パイプラインの利点もありません。
1つまり、4の高速化係数は、アルゴリズムが1つのスレッドのみで実行される場合の4倍の速度で実行されることを意味します。したがって、定義により、1つのスレッドで実行されるすべてのアルゴリズムの相対スピードアップ係数は1です。
問題は、タスクに依存することです。
ハイパースレッディングの背後にある概念は、基本的に、すべての最新のCPUに複数の実行の問題があるということです。通常、今では十数個近くになります。整数、浮動小数点、SSE / MMX /ストリーミング(今日の呼び方)に分かれています。
さらに、各ユニットには異なる速度があります。すなわち、何かを処理するには整数演算ユニット3サイクルかかりますが、64ビット浮動小数点除算には7サイクルかかります。(これらは何にも基づいていない神話上の数字です)。
順不同の実行は、さまざまなユニットをできるだけいっぱいに保つのに役立ちます。
ただし、1つのタスクですべての実行ユニットが使用されるわけではありません。スレッドの分割でさえ完全に役立つわけではありません。
したがって、理論は、2番目のCPUがあるふりをして、別のスレッドが実行される可能性があり、オーディオトランスコーディングなどで使用されていない使用可能な実行ユニットを使用します。いくつかのものを除いてアイドル状態。
私にとって、これは単一のCPUの世界でより理にかなっています。2つ目のCPUを偽造することで、この偽の2つ目のCPUを処理するための追加コーディングをほとんど必要とせずに、スレッドがそのしきい値を簡単に超えることができます。
6/8/12/16 CPUを備えた3/4/6/8コアの世界では、助けになりますか?ダンノ できるだけ多く?手元のタスクに依存します。
したがって、実際に質問に答えるには、プロセスのタスク、使用している実行ユニット、およびCPUで、どの実行ユニットがアイドル/未使用で、その2番目の偽CPUで利用できるかに依存します。
いくつかの計算クラスの「クラス」は、利益をもたらすと言われています(漠然と一般的に)。しかし、厳格なルールはありません。クラスによっては、速度が低下します。
私は実際にハイパースレッディングを備えたCore i7 CPU(4コア)を持ち、ビデオトランスコーディングで少し遊んだという点でgeoffcの答えに追加する逸話的な証拠がありますが、これは通信と同期の量を必要とするが十分なタスクですシステムを効果的に完全にロードできる並列性。
一般的に4つのハイパースレッド「追加」コアを使用してタスクに割り当てられたCPUの数で遊んだ私の経験は、約1 CPU分の処理能力に相当します。余分な4つの「ハイパースレッド」コアは、3〜4個の「実際の」コアと同等の使用可能な処理能力を追加しました。
すべてのエンコーディングスレッドがCPUの同じリソースを奪い合う可能性が高いため、これは厳密に公正なテストではありませんが、全体的な処理能力は少なくともわずかに向上しました。
本当に役立つかどうかを示す唯一の本当の方法は、ハイパースレッディングが有効または無効になっているシステムでいくつかの異なる整数/浮動小数点/ SSEタイプのテストを同時に実行し、制御されたシステムで利用可能な処理能力を確認することです環境。
他の人が言ったように、それはCPUとワークロードに大きく依存します。
ハイパースレッディングテクノロジーを搭載したインテル®Xeon®プロセッサーMPで測定されたパフォーマンスは、このテクノロジーの一般的なサーバーアプリケーションベンチマークで最大30%のパフォーマンス向上を示しています
(これは私にとって少し保守的なようです。)
そして、ここにもっと数字のある別の長い論文があります(まだすべてを読んでいません)。この論文の興味深い点の1つは、ハイパースレッディングによって一部のタスクでシンが遅くなることです。
AMDのブルドーザーアーキテクチャは興味深いかもしれません。各コアは事実上1.5コアと説明されています。パフォーマンスに対する自信の程度に応じて、一種の極端なハイパースレッディングまたは標準以下のマルチコアです。その部分の数字は、0.5倍から1.5倍のコメントの高速化を示唆しています。
最後に、パフォーマンスはオペレーティングシステムにも依存します。OSは、CPUになりすましているだけのハイパースレッドよりも、実際の CPUにプロセスを送信することを望んでいます。それ以外の場合、デュアルコアシステムでは、1つのアイドルCPUと、2つのスレッドがスラッシングする非常にビジーなコアが1つあります。もちろん、これはWindows 2000でも起こったことを思い出すようです。もちろん、すべての最新のOSは適切に機能します。