In this example, we run MPI4Py enabled code on 4 nodes, 16 cores per node (total of 64 processes), each python process is bound to a different core. More examples and documentation can be found on [MPI for Python webpage](https://pypi.python.org/pypi/mpi4py).

###Adding numbers

Task: count sum of numbers from 1 to 1 000 000. (There is an easy formula to count the sum of arithmetic sequence, but we are showing the MPI solution with adding numbers one by one).

```python

#!/usr/bin/python

importnumpy

frommpi4pyimportMPI

importtime

comm=MPI.COMM_WORLD

rank=comm.Get_rank()

size=comm.Get_size()

a=1

b=1000000

perrank=b//size

summ=numpy.zeros(1)

comm.Barrier()

start_time=time.time()

temp=0

foriinrange(a+rank*perrank,a+(rank+1)*perrank):

temp=temp+i

summ[0]=temp

ifrank==0:

total=numpy.zeros(1)

else:

total=None

comm.Barrier()

comm.Reduce(summ,total,op=MPI.SUM,root=0)

stop_time=time.time()

ifrank==0:

#add the rest numbers to 1 000 000

foriinrange(a+(size)*perrank,b+1):

total[0]=total[0]+i

print("The sum of numbers from 1 to 1 000 000: ",int(total[0]))

print("time spent with ",size," threads in milliseconds")