OpenMP竞争条件?

时间:2013-04-08 10:39:58

标签: c openmp race-condition

我已经读过默认情况下共享OpenMP中的变量。这是否意味着在下面的代码中,应该将从0到N-1的所有数字相加,是否存在竞争条件?

int sum = 0,i;
#pragma omp parallel for
for (i = 0; i < N; i++)
    sum+=i;

1 个答案:

答案 0 :(得分:2)

是的,有竞争条件。您应该将reduction(+:sum)添加到该pragma中。这将有效地在每个线程中创建不可见的私有副本,然后在循环之后对它们求和。