OpenMP崩溃会产生错误的结果

时间:2016-04-11 07:45:13

标签: c++ openmp

我有一个3D数组z,其中每个元素的值都为1

现在我做了:

#pragma omp parallel for collapse(3) shared(z)
for (int i=0; i < SIZE; ++i) {
    for (int j=0; j < SIZE; ++j) {
        for (int k=0; k < SIZE; ++k) {
            for (int n=0; n < ITERATIONS-1; ++n) {
                z[i][j][k] += 1;
            }
        }
    }
}

这应该为每个元素添加ITERATIONS,它确实如此。如果我然后将collapse(3)更改为collapse(4)(因为有4个for循环),我就无法获得正确的结果。

我不能折叠所有四个循环吗?

0 个答案:

没有答案