{ if (myid == 0) |
{ printf ("Enter the number of intervals: (0 quits) "); |
scanf ("%d", &n); |
} |
MPI_Bcast (&n, 1, MPI_INT, 0, MPI_COMMWORLD); |
if (n == 0) break; |
h = 1.0 / (double) n; |
sum = 0.0; |
for (i = myid+1; i <= n; i += numprocs) |
{ x = h * ((double) i - 0.5); sum += 4.0 / 1.0 + x*x): } |
mypi = h * sum; |
MPI_Reduce (&mypi, &pi,1, MPI_DOUBLE,MPI_SUM, 0,MPI_COMMWORLD); |
if (myid == 0) |
printf("pi is approximately %.16f, Error is %.16f\n",pi, fabs(pi-PI35DT); } |
MPI_Finalize; } |