小编Pet*_*tov的帖子

私有变量与 OMP 减少

我试图了解 OMP 如何处理不同的for循环声明。我有:

int main()
{
   int i, A[10000]={...};
   double ave = 0.0;
   #pragma omp parallel for reduction(+:ave)
   for(i=0;i<10000;i++){
       ave += A[i];
   }

   ave /= 10000;

   printf("Average value = %0.4f\n",ave);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

其中{...}是从 1 到 10000 的数字。此代码打印正确的值。#pragma omp parallel for reduction(+:ave)如果我使用is#pragma omp parallel for private(ave)的结果代替。我想我明白什么是,但想知道它是否可以替代以及如何替代。printf0.0000reduction(oper:list)private

c pragma openmp

1
推荐指数
1
解决办法
2430
查看次数

标签 统计

c ×1

openmp ×1

pragma ×1