High Performance Computing 1
Timing
•
c                                 broadcast n     
starttime = MPI_WTIME()     
call MPI_BCAST(n,1,MPI_INTEGER,0,MPI_COMM_WORLD,ierr)
c                                 check for quit signal     
if ( n .le. 0 ) goto 30
c                                 calculate the interval size     
h = 1.0d0/n     
sum  = 0.0d0     
do 20 i = myid+1, n, numprocs        
x = h * (dble(i) - 0.5d0)        
sum = sum + f(x)
20continue     
mypi = h * sum
c                                 collect all the partial sums     
call MPI_REDUCE(mypi,pi,1,MPI_DOUBLE_PRECISION,MPI_SUM,0,     
     &                  MPI_COMM_WORLD,ierr)
c                                 node 0 prints the answer.     
endtime = MPI_WTIME()