相关疑难解决方法(0)

omp ordered子句如何工作?

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影响表现吗?

c++ parallel-processing openmp

18
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

openmp ×1

parallel-processing ×1