c - openMp:需要并行化具有数据依赖性问题的循环

标签 c openmp

我想知道是否有一种方法可以使用 OpenMP 并行化具有数据依赖性问题的 “for 循环”

这是我喜欢并行化的for循环

int k = 0;
int A[100][100];
for(i = 0; i < 100; i++) {
    for(j = 0; j < 100; j++) {
           A[i][j] = k;
           k++;
    }
}

有没有人有解决办法...

最佳答案

真的没有数据依赖问题,因为k可以从 i 计算得出和 j :

int A[100][100];
for(i = 0; i < 100; i++) {
    for(j = 0; j < 100; j++) {
        A[i][j] = i * 100 + j;
    }
}

如果您能举一个更真实的例子来说明您正在尝试做什么,我们也许能为您提供更多帮助。

关于c - openMp:需要并行化具有数据依赖性问题的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4274682/

相关文章:

parallel-processing - 未使用所需数量的处理器

android - 启用 OpenMP 支持的 Clang/LLVM

c - 如何从 bash 读取部分输入的文本?

python - 用 Python 封装 C; free(char *) 无效指针

c - 在结构内动态分配结构

c - 关于 fork() 的问题

c++ - 在 OpenMP 缩减中使用 Eigen Map

c++ - OpenMP、C++ 和迭代器

c - 并行for循环外的私有(private)变量

c - 在特定顶点上使用 glLoadMatrixd ?