6

複数のスレッドで同じCPUバウンドルーチンを実行することが理にかなっているかどうかにかかわらず、さまざまなシグナルが発生します(もちろん、各スレッドは異なるデータを処理します)。

CPUに縛られている場合は、すでにプロセッサに負担をかけていますよね?では、なぜCPU作業を追加するのが理にかなっているのでしょうか。CPUにバインドされたスレッドの数をコアに一致させる必要があるという考えはありますか?

シングルコアマシンの場合はどうでしょうか。CPUバウンド操作のマルチスレッド化は意味がありますか?

前もって感謝します。

4

1 に答える 1

16

CPUに縛られている場合は、すでにプロセッサに負担をかけていますよね?では、なぜCPU作業を追加するのが理にかなっているのでしょうか。CPUにバインドされたスレッドの数をコアに一致させる必要があるという考えはありますか?

はい、これは基本的にアイデアです。アルゴリズムがCPUにバインドされている場合、1つの処理コアが拘束されます。システムに4つある場合、4つすべてを使用すると、全体的なスループットが大幅に向上します。複数のスレッドがないと、データの処理に単一のコアのみを使用することになります。

シングルコアマシンの場合はどうでしょうか。CPUバウンド操作のマルチスレッド化は意味がありますか?

それは可能ですが、通常は純粋にCPUにバインドされていない場合に限ります。ルーチンが完全にCPUにバインドされている場合、通常、コアごとに1つ以下のスレッドが必要です。ただし、アルゴリズムの特定の部分に他の特性があり、他のものに拘束されている場合、その部分は、ルーチン全体をスレッド化することでメリットが得られる場合があります。

于 2012-06-11T18:14:57.453 に答える