TLTR; :ハイパースレッディングされていないシングルCPUコア上での並列処理(真実の意味でsimultanenous実行)は不可能です。
ハードウェア(< - EDIT)PARALELLISMはいくつかのレベルで達成することができます。粒度を減少させることによって命じ:
- マルチホスト
- マルチプロセッサ
- マルチコア
- マルチスレッド( "ハイパースレッディング"、すなわち、 "HT") (EDIT:I voluntarityあなたの質問は例3で2つのソフトウェアスレッドを実行に関し、いくつかのALUはは、同じコアでを駆動することができるベクトル化compuationsの場合)
を省略します。 (HTが使用できない/使用不可の場合)または4.
「優先順位」は、プロセスに与えることによって、様々なOSで設定することができ、これら2つのルーチンのそれぞれに割り当てられた相対的な優先順位、処理されることOSのスケジューラによってCPU時間を割り当てます。
HTH。
このトピックをよりよく理解するためのテストを実行するには、Googleの「CPUアフィニティ」が必要な場合があります。これにより、マルチコアCPUの1つの物理的なシングルコア上で2スレッドプロセスを実行し、スレッドの優先度を変更しながら各スレッドがかかる時間を計測することができます。
を(4)二つの異なる物事をミックス。 HTは、2つのスレッド間の高速切り替えを可能にするハードウェアサポートです(したがって、あるスレッドがメモリからデータを待っている場合は、もう一方のスレッドが引き継ぐことができます)。ソフトウェアレベルで「単純な」スレッドである(5)もあります。 4と5の両方が、動作が並列に起こる「真の」スレッドではないが、一部の動作(または部分的な動作)が他のハイパースレッドと並行して発生する可能性があるため、(4)たとえば、1つのハイパースレッドのメモリフェッチは、他のスレッドが実行されている間に発生する可能性があります。 –
@adrew cooke:リストを洗練してくれてありがとう。私は故意に(ソフトウェアの)並列性のためにリストには含めなかったので、あなたは正しいです(私は最初の投稿を修正しています)。 –
-1:すべての最新のCPUは、命令レベルで並列性を提供します。私の答えを見てください。 –