vector<int> v;
#pragma omp parallel for ordered schedule(dynamic, anyChunkSizeGreaterThan1)
for (int i = 0; i < n; ++i){
...
...
...
#pragma omp ordered
v.push_back(i);
}
v
これは、n
サイズ設定された順序付きリストでいっぱいになります。
ブロックに到達すると、omp ordered
すべてのスレッドは可能な限り低い反復のスレッドが終了するのを待つ必要がありますが、その特定の反復が指定されたスレッドがない場合はどうなりますか?または、OpenMPランタイムライブラリは常に、最も低い反復が何らかのスレッドによって処理されることを確認しますか?
ordered
また、なぜ節を?と一緒に使用することが提案されているのdynamic schedule
ですか?static schedule
パフォーマンスに影響しますか ?