如何使用OpenMP正确并行化条件循环?

时间:2018-02-26 20:57:14

标签: c parallel-processing openmp

我正在尝试并行化以下代码段以计算素数的数量<比n。

static int primes_count(int n)
{
    int p = 0;
    int i;
    #pragma omp parallel for private(i) shared(n, p) default(none)
    for (i = 2; i < n; i++) {
        if (is_prime(i)) p++;
    }

    return p;
}

问题是我每次都会得到不同的价值观。但是,如果我删除了编译指示行,则顺序方法会始终产生确定性值。

我做错了什么?

0 个答案:

没有答案