// Computation of PI iteratively // Reduction operation version #include #include #include static long num_steps = 10000000; double step; void main () { int i; double x, pi = 0.0, sum = 0.0; step = 1.0/(double) num_steps; { // define x private, make sum reduce the local copies // to a global one #pragma omp parallel for private(x) reduction(+:sum) for (i=0;i< num_steps; i++){ x = (i+0.5)*step; sum = sum + 4.0/(1.0+x*x); } pi = step * sum; } printf("pi=%lf\n", pi); }