0
私は以下のコードを最適化して、openMPとメモリブロックを使用してatleastを16倍高速に実行することになっています。これまでのところ私は以下の簡単なステートメントでforループを崩壊させることしか考えられません。これにより、3倍の速さで実行できます。 16に近づけるためのアイデアは?OpenMPの最適化とC
私は以下のコードを最適化して、openMPとメモリブロックを使用してatleastを16倍高速に実行することになっています。これまでのところ私は以下の簡単なステートメントでforループを崩壊させることしか考えられません。これにより、3倍の速さで実行できます。 16に近づけるためのアイデアは?OpenMPの最適化とC
外部スコープで内部ループインデックスを宣言するときは、各スレッドに独自のコピーを与えるためにprivate句を使用する必要があります。崩壊はシンプルなベクトル化を妨げる可能性があります。
'collapse' makes内側のループと関連付けられたループ*なので、そのイテレータもプライベートでなければなりません –
いくつのコアがありますか? (アルゴリズム最適化を除いて)少なくとも17コアが必要です –
@MichalWalenciak私は10コアを持っています – user6382770
〜9倍のスピードアップがあなたの最大になります。どのくらいの大きさの「MSIZE」ですか?小さな値の場合、スレッド管理はあまりにも多くを食べます。 –