我有一个下一个循环
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;
}}}
它给了我一个正确的结果(这让我发疯) 为什么它给了我与系列代码相同的结果 任何人都可以给我一个合乎逻辑的解释