首页 > 解决方案 > OpenMP如何并行递增循环

问题描述

我有两个数组:

  double arrayA[N+2];
  double arrayB[N+2];

如何使用 OpenMP 并行循环?

 for(i=0; i<N; i++){
    arrayA[i] += arrayA[i+2] + sin(arrayB[i]);
  }

标签: parallel-processingopenmp

解决方案


我假设 arrayA 预先填充了有意义的值,对吧?如果是,请将 arrayA 的副本保存到临时tmp数组并为 pragma 实现一个简单的 openmp。

#pragma omp parallel for
for(i=0; i<N; i++){
   arrayA[i] = arrayA[i] + tmp[i+2] + sin(arrayB[i]);
}

推荐阅读