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);
}
Run Code Online (Sandbox Code Playgroud)
这将填充v一个n大小有序的列表.
当到达omp ordered块时,所有线程都需要等待最低迭代可能线程完成,但是如果没有任何线程被指定为特定迭代怎么办?或者OpenMP运行时库是否始终确保某个线程处理最低的迭代?
另外为什么建议该ordered条款与dynamic schedule?一起使用?会static schedule影响表现吗?