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パフォーマンスに影響しますか ?