【发布时间】:2012-10-24 19:39:58
【问题描述】:
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);
}
这用n 大小的有序列表填充v。
当到达omp ordered 块时,所有线程都需要等待可能的最低迭代线程完成,但是如果没有线程被指定为特定的迭代呢?还是 OpenMP 运行时库总是确保最低迭代由某个线程处理?
还有为什么建议ordered 子句与dynamic schedule 一起使用? static schedule 会影响性能吗?
【问题讨论】:
标签: c++ parallel-processing openmp