私の教授は、SSE と OpenMP を使用した 3D 線形分離可能なカーネル畳み込みのこの興味深い実験を発見し、私たちのシステムの統計をベンチマークするタスクを私に与えました。著者は、シリアル アプローチから 18 倍のスピードアップを達成したと主張しています。常にではないかもしれませんが、これをデュアル コア Intel で実行すると、少なくとも 2 ~ 4 倍のスピードアップが期待されていました。
残念ながら、スピードアップはまったく見つかりませんでした。OpenMP の有無にかかわらず、シリアル コードのパフォーマンスは常に向上します。
私は Linux を使用していますが、特定の傾向を観察しました...システムで他のプロセスが実行されていない場合、しばらくすると loadavg が増加し始め、%CPU 使用率が低下します。
私が誤って遭遇した別の誤検知の可能性...私はプログラムを開始し、すぐに一時停止しました。次に、bg を使用してバックグラウンドで実行したところ、2 倍以上のスピードアップが見られました。これは常に発生します。
どんなアドバイスも素晴らしいでしょう。
ありがとう、サヤン