次のコードは、最初の(外側の)ループを並列化するか、または入れ子になったループ全体を並列化しますか?OpenMPはどのようにネストループを処理しますか?
#pragma omp parallel for
for (int i=0;i<N;i++)
{
for (int j=0;j<M;j++)
{
//do task(i,j)//
}
}
ので、(私は上記のコードは、forループ全体のネストされたを並列化するかどうか(したがって、一つのスレッドに直接関連するタスク(i、j)を)確認する、またはそれが唯一のforループの外側を並列化それは、ループインデックスiを有する各並列スレッドについて、その内部ループが非常にインポートされる単一のスレッドにおいて順次行われることを保証する。
ありがとう、それは素晴らしい、私はちょうど内部のループがその仕事を順番に行うことを保証しながら外側のループを平行にしたい。 – user0002128