import random import mpi inside = 0 nsamples = 120000/mpi.size random.seed(mpi.rank) for i in range(nsamples): x = random.random(); y = random.random(); if (x*x)+(y*y)<1: inside += 1 mypi = (4.0 * inside)/nsamples if mpi.rank==0: print "mypi =",mypi,"for rank",mpi.rank pi = (1.0 / mpi.size) * mpi.allreduce(mypi, mpi.SUM) if mpi.rank==0: print "Computed value of pi on",mpi.size,"processors is",pi print "Using ",mpi.size*nsamples,"samples."