使用openMP在C中并行化嵌套循环

时间:2017-03-24 20:22:42

标签: c openmp

如何使用C语言中的OpenMP将嵌套循环与语句并行化。我将非常感谢你。

#include <stdio.h>
#include <string.h>
#include <omp.h>


int main(int argc, char **argv) {
   int n= 10000;
   double y [10000];
   int i;
   int j;
   double t = 0;
   double k, f;
   for (i=0; i<n; i++) {
         k = (double) (i+1);
         f = 0;
         for (j=0;j<n;j++)
              f += k / (double) (j+1);
         t += f;
    }
   printf("%f\n",t);
}

1 个答案:

答案 0 :(得分:0)

您应该使用reduction openmp子句。这是一个简短的例子:

#pragma omp parallel for reduction(+:f)
for (j=0;j<n;j++)
    f += k / (double) (j+1);