ハイパースレッディングとマルチスレッディングという用語を聞いたことがありますが、それらの違いは何ですか?どのようなIntelプロセッサがそれらを使用していますか?
ハイパースレッディングとマルチスレッディングという用語を聞いたことがありますが、それらの違いは何ですか?どのようなIntelプロセッサがそれらを使用していますか?
回答:
マルチスレッドとは、オペレーティングシステム内で複数の実行スレッドを実行する一般的なタスクを指します。マルチスレッドはより一般的に「マルチプロセッシング」と呼ばれ、複数のシステムプロセスを含めることができます(Windowsでの簡単な例は、たとえばInternet ExplorerとMicrosoft Wordを同時に実行することです)、または複数のスレッドを含む1つのプロセスで構成できます。それ。
マルチスレッディング(つまり、マルチプロセッシング)はソフトウェアの概念です。コンピュータにCPUコアが1つしかなく、そのコアがハイパースレッディングをサポートしていない場合でも、事実上、チューリングコンプリートCPUはマルチスレッドを実行できます。マルチプロセッシングをサポートするために、CPUは、実行の異なるスレッドの実行を交互に実行し、オペレーティングシステムは、使用可能な時間を「スライス」に分割し、ほぼ同じ時間を与えます。各スレッド(時間は同じである必要はありませんが、プロセスがより高い優先度を要求しない限り、通常はそれが行われます)。
利用可能なハードウェア(同時)実行スレッドよりも多くのソフトウェアスレッドが同時に実行を試みる場合、これらのソフトウェアスレッドは利用可能なコア間で「インターリーブ」されることに注意してください。「ユニプロセッサ」(ハイパースレッディングのない1つのCPUコア)の場合、複数のソフトウェアスレッドがある場合、それらは常にインターリーブされます。ハイパースレッディングを備えた4コアCPUがある場合、それは8つの「ハードウェアスレッド」です。つまり、CPUは同時に8つの実行スレッドを実行できるため、8つのソフトウェアスレッドを実行しようとすると、すべて同時に実行できます。 ; ただし、9つのソフトウェアスレッドがある場合、ハードウェアスレッドの1つが1組のスレッドをインターリーブする必要があります(選択されるスレッドの正確なペアは、オペレーティングシステムのスケジューラーの実装によって異なります)。
一方、ハイパースレッディングとは、単一のプロセッサコアが複数の実行スレッドをより効率的にインターリーブできるようにする、Intelによって作成された非常に特定のハードウェアテクノロジーを指します。言い換えると、ハイパースレッディングを備えたCPUは、ハイパースレッディングを備えていないCPUと同じであるが、ハイパースレッディングを備えていないCPUよりもパフォーマンスがいくらか向上します。方法)特定のコアでの実行のスレッド。
ただし、ハイパースレッディングは、完全に別個の物理コアを使用するよりも厳密に低速です。これは、ハイパースレッディングのパフォーマンス上の利点を損なう可能性のある操作の種類と、完全に別個のコアでそのようなイベントを引き起こす可能性のある操作が少ないためです。
次の例を見てください。「1コア」はすべての例でまったく同じように動作すると想定されています。
例1:2コア、ハイパースレッディングなし。
例2:4コア、ハイパースレッディングなし。
例3:ハイパースレッディングを備えた2つのコア。
例4:ハイパースレッディングを備えた4つのコア。
この場合、例4が常に最速になります。例2は、ハイパースレッディングの最適化を利用するのに非常に適さないワークロードでは、例4と同じくらい速い場合があります。
一方、例3は、ハイパースレッディングが最も有利なワークロードでは、物理コアの数が半分であっても、例2とほぼ同じ速度になる場合があります。
もちろん、例1はすべての例の中で最も遅くなりますが、ハイパースレッディングにあまり適していないワークロードを実行する場合は、例3と同じくらい速くなることがあります。
最新のIntel CPUを使用した実際のベンチマークでは、ハイパースレッディングの結果、一般的にはハイパースレッディングがない場合と比べてパフォーマンスが20%から40%向上することがわかります(「ハイパースレッディングなし」のケースは、 BIOS)。時折そこにハイパースレッディングを無効にすると、パフォーマンスを示してワークロードになるという利点が、これらのワークロードは、実際の使用では珍しいことができます。ただし、ハイパースレッディングを備えた4コアまたは8コアのいずれかを選択した場合、各コア自体が同じパフォーマンスを持っていると仮定すると、毎回8コアCPUを選択します。