1

我有一个下一个循环

for(int i=1;i<n;i++){
a[i]=(a[i]+a[i-1])/2;
}

显然这个循环是不可并行化的,因为每个元素的结果取决于之前的元素,无论如何我试图用 JOMP (openmp) 并行化它

//omp parallel shared(a)
{
//omp for 
for(int i=1;i<n;i++){
a[i]=(a[i]+a[i-1])/2;
}}}

它给了我一个正确的结果(这让我发疯)为什么它给了我与系列代码相同的结果任何人都可以给我一个合乎逻辑的解释

4

0 回答 0