2012-01-18 20 views
8

ハイパースレッディングを持つ1つのCPUコアで2つのプロセスを同時に実行できますか?私はインターネットから学びます。しかし、私は明確なストレートな答えを見ません。1つのCPUコアで2つのプロセスを同時に実行できますか?

編集: ありがとうございました!私の質問をここに掲載するのは、パラレルコンピューティングについて論議することではありません。ここで議論するには大きすぎるでしょう。マルチスレッドアプリケーションは、マルチプロセスアプリケーションよりもハイパースレッディングの方が恩恵を受けられるかどうかを知りたいだけです。さらに読んだ後、私は学習ノートとして次のようにしています。

1)ハイパースレッディングテクノロジ対応のCPUコアには、CPUステートと割り込みロジックの2つのセットがあります。一方、実行ユニットとキャッシュのセットは1つだけです。 (私はまだパイプラインが何かを勉強していません)

2)マルチスレッドは、実行スレッドによってはレイテンシが発生した場合にのみハイパースレッディングから利益を得ます。私はこの点が、ソフトウェアプログラマがマルチスレッドを使用する理由と理由についての正確な理由に対応していると思います。マルチスレッドアプリケーションが最適化されている場合Hypterスレッディングのメリットはありません。

3)CPU状態がプロセス状態にマップされている場合、Marcは、複数のプロセスアプリケーションがハイパースレッディング技術により多くの利益を得ることができると確信しています。

4)CPUベンダーが「スレッド」と言うと、「スレッド」がJavaプログラマーとして知られているスレッドとは異なるように見えますか?

答えて

2

いいえ、ハイパースレッドCPUコアには1つの実行パイプラインしかありません。上のOSには2つのCPUとして表示されますが、同時に実行される命令は1つだけです。

ハイパースレッディングは、リソースやその他の操作が完了するのを待っている別のスレッドが停止している間にCPUが1つのスレッドを実行し続けることを意図していました。これはペンティアムの4日間に及ぶ、パイプラインの長さが非常に長いため、ストールは効率とスループットの点で本質的に壊滅的であり、ハイパースレッディングはインテルがCPUをストールから掃除しながら忙しくしておくことを可能にした。確認のためhttp://software.intel.com/en-us/articles/performance-insights-to-intel-hyper-threading-technology/

+0

ありがとう: –

+0

デコード/前処理/実行/ファイナライズのさまざまな段階で、特定のコアのパイプライン内に共存する2つのスレッドが存在する可能性があります。そのすべてにおいて、実際の「実行」は「実行」の定義方法に依存します。特定のパイプラインステージで同時に複数のスレッドの命令が存在することはありません。したがって、並列実行はまだありません。単に並行して出現するだけである。明確化のために –

+0

ありがとうございます。私たちの議論は並列実行とマルチタスクとマルチスレッドプログラミングに移行しているようです。これまでの私の理解によれば、マルチスレッドアプリケーションはハイパースレッディングCPUの恩恵を受ける機会があると言えるでしょう。マルチプロセスアプリケーションはハイパースレッディングの恩恵を受けることはできません。あなたは私に同意しますか? –

1

マルク・Bの答えはHTがどのように動作するかの明確な概要はかなりですが

は、私はちょうどHTについて多くのことをクリアする必要があり、この記事をリンクすることにより、少額の寄付をしたいです同時に2つのプロセスを同じCPUコアで実行することはできません。しかし、あなたはあなたの答えに糸についても言及しました。 2つのスレッドが同時に実行できないことを私は探しますか?または、2つのスレッドがリソースを共有している場合についてのみ話をしますか?共有リソースを持たない2つのスレッドは、ハイパースレッディングを持つ同じコアで同時に実行できますか?
+0

共有いただきありがとうございます。素早く読んだ後、私はソフトウェアスレッドとハードウェアスレッドという2つの用語を学びます。私はもっ​​と学びましょう。 –

関連する問題