数年前、Windows環境で、CPU計算集約型+メモリアクセス集約型+ I / Oアクセス集約型のアプリケーションの複数のインスタンスを実行することにより、いくつかのテストを行いました。私は2つのバージョンを開発しました。1つはマルチプロセッシングで実行され、もう1つはマルチスレッドで実行されます。
マルチプロセッシングの方がパフォーマンスがはるかに優れていることがわかりました。私はどこかで読んだ(しかし、私はその場所を思い出せない)。
その理由は、マルチスレッドでは、単一のメモリパイプラインとI / Oパイプラインを「争っている」ため、マルチプロセッシングに比べてパフォーマンスが低下するということです。
しかし、その記事はもう見つかりません。今日まで、以下がまだ当てはまるのだろうかと思っていました。
Windowsでは、アルゴリズムコードをマルチプロセッシングで実行すると、マルチスレッドよりもパフォーマンスが向上する可能性が高くなります。