13

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

編集: 議論と共有に感謝します! ここに質問を投稿する私の財布は、並列コンピューティングについて議論するためではありません。ここで議論するには大きすぎるでしょう。マルチスレッド アプリケーションが、マルチ プロセス アプリケーションよりもハイパー スレッディングの恩恵を受けることができるかどうかを知りたいだけです。さらに読んだ後、学習ノートとして以下を持っています。

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

2) マルチスレッドは、実行されたスレッドで遅延が発生する場合にのみ、ハイパー スレッディングの恩恵を受けます。この点は、ソフトウェア プログラマーがマルチ スレッドを使用する理由とタイミングの一般的な理由に正確に対応していると思います。マルチスレッド アプリケーションが最適化されている場合。Hypter スレッド化による利点は得られない可能性があります。

3) CPU の状態がプロセスの状態にマップされている場合、マルチプロセス アプリケーションはハイパー スレッディング テクノロジからさらに多くの恩恵を受けることができるという Marc の意見は正しいと思います。

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

4

3 に答える 3

2

Marc Bの答えは、HTがどのように機能するかについての決定的な要約ですが、この記事をリンクして少し貢献したいと思います。これにより、HTに関する多くのことが明らかになるはずです。http://software.intel.com/en -us / articles / performance-insights-to-intel-hyper-threading-technology /

于 2012-01-21T10:37:09.270 に答える
2

いいえ、ハイパースレッド化された CPU コアにはまだ 1 つの実行パイプラインしかありません。上層の OS には 2 つの CPU のように見えますが、常に実行される命令は 1 つだけです。

ハイパースレッディングは、CPU が 1 つのスレッドの実行を継続できるようにすることを目的としていましたが、別のスレッドがリソースやその他の操作の完了を待って停止している間、パイプラインの多くのステージを空にして役に立たないままにすることはありませんでした。これは Pentium 4 の時代にさかのぼります。パイプラインがとてつもなく長く、ストールは本質的に効率とスループットにとって破滅的でした。ハイパースレッディングにより、Intel はストールからクリーンアップしている間、他のことを行うために CPU をビジー状態に保つことができました。

于 2012-01-18T20:15:24.273 に答える