The Python programming language provides several MPI modules to write parallel programs. The most interesting of these is the mpi4py library. It is constructed on top of the MPI-1/2 specifications and provides an object-oriented interface, which closely follows the MPI-2 C++ bindings. A C MPI user could use this module without learning a new interface. Therefore, it is widely used as an almost-full package of an MPI library in Python.
The main applications of the module, which will be described in this chapter, are as follows:
- Point-to-point communication
- Collective communication
- Topologies