When executed on a multicore computer, we can think of it that mpiexec copies the given Python script to the number of cores and runs each copy. As an example, consider the one-liner script print_me.py with the command print("Hello it's me"), that, when executed with mpiexec -n 4 print_me.py, generates the same message on the screen four times, each sent from a different core.
In order to be able to execute different tasks on different cores, we have to be able to distinguish these cores in the script.
To this end, we create a so-called communicator instance, which organizes the communication between the world, that is, the input and output units like the screen, the keyboard, or a file, and the individual cores. Furthermore, the individual cores are given identifying numbers, called a rank:
from mpi4py import MPI
comm=MPI.COMM_WORLD # making a communicator instance
rank=comm.Get_rank() # querrying for the numeric...