2012-02-13 19 views
-1

私は4つのコアを持つCPUを持っていますが、仕様には4つのコアと8つのスレッドがあることが示されています。そんなことがあるものか?実際に並列に8つのスレッドを実行できますか?cpuのコアとスレッド

+0

http://en.wikipedia.org/wiki/Hyper-threadingまたは... CPUの仕様。 –

+0

Google:ハイパースレッディング – Mysticial

+3

私はいつも質問を下さっている人たちを見て、驚いている。私はその質問がとてもシンプルで、簡単なグーグルで答えることができますが、それでもなお問題は分かっています。 – Nettogrof

答えて

1

これはあなたを欺くことができます。インテルのHTテクノロジは、コアのリソースが仮想的に重複しているため、オペレーティングシステムが物理コアごとに2つのスレッドをスケジューリングできるようにします。

"技術的に" 8つのスレッドを実行できます。引用符に注目してください。このテクノロジの主な目的は、CPUリソースを無駄にしないようにすることでした(たとえば、命令パイプラインの幅が4命令の場合、ほとんどの命令で命令が得られることを確認してください)。

しかし、システムがスレッドによって実行される計算に対応するのに十分なリソースを持っていない場合、実際にはメリットはありませんし、悪化するとパフォーマンスが低下します。たとえば、CPUが4つの浮動小数点ユニットしか持たず、8つのスレッドすべてが浮動小数点計算を行っているとします。この場合、並列処理を行うことはできません。別のケースは、すべてのスレッドがメモリ集約型の計算を実行している場合です。 CPUからメインメモリへのバスは飽和し、期待通りに8つのスレッドがコードを並行して実行することはできません。 HTの落とし穴の詳細については、次の記事を参照してください。http://software.intel.com/en-us/articles/performance-insights-to-intel-hyper-threading-technology/

また、システムのさまざまなスレッドレベルを理解していることを確認してください。私は自分自身を参照することが嫌いですが、ここに行く:multithreading on dual core machine?

2

CPUの種類によって、各コアに2つの仮想CPU(またはスレッドを配置したときのスレッド)を持つことができます。効果はHyperthreadingを使用して達成されます。

0

たぶん、あなたは、ハイパースレッディングを見てみる必要があります:私はあなたがコアごとに2個のプロセッサを搭載したハイパースレッドのマシンを持っていることを推測

http://en.wikipedia.org/wiki/Hyper-threading

1

を。

はい、同時に8つのスレッドを実行できます。

0

CPUはsuperscalarと呼ばれ、パイプラインは各コアに複製され、複数の命令を並列にディスパッチすることができます。 IntelはHyperThreadingと呼んでいますが、本質的に同じです。

関連する問題