私は高性能のマージを必要としており、出会いました:マルチコアSIMD CPUアーキテクチャでのソートの効率的な実装Jatin Chhugani et al。
彼らの目的は、1 つの CPU から最大限のパフォーマンスを引き出すことです。解決策の 1 つは、SIMD レベルでビットニック ソーティング ネットワークを使用することです。最小/最大およびシャッフル操作のレイテンシを隠すために、4 つの並べ替えネットワークを同時に実行します (ただし、インターリーブを意味していると思います)。これにより、パフォーマンスが 3.25 倍向上すると主張されています。
私の問題はやや緩和されています。処理する必要がある (読み取りに依存しない) 配列の複数のペアがあるため、複数のプロセスを実行するだけで、簡単に高いスループットを得ることができます。
プロセスの量を利用可能なコアにオーバーサブスクライブすると、レイテンシも隠蔽されますか? しかし、より高いレベルで誘導されますか?それとも、ハイパースレッディングの領域に足を踏み入れていて、CPU コアで同じ機能ユニットを共有する 2 つのプロセスの制限を超えることはないのでしょうか?
もちろん試してみることもできますが、既存のコードを変更することはかなり複雑であり、最初に理論を聞きたいと思います。