10.2.1. Using MPI with PyOPUS
This tutorial explains how to use the pyopus.parallel.vm
module, more specifically
the MPI interface of PyOPUS (module pyopus.parallel.mpi
).
A parallel program using MPI can be started with the mpirun
utility. All examples
assume you are using the OpenMPI implementation of the MPI specification, but most
things hold also for other MPI implementations.
Starting a parallel application on a single computer with multiple processors is simple.
Suppose you want to start example.py
with 4 processes. To achieve this, you would type
mpirun -n 4 python example.py
To distribute a run across multiple physical machines, you must first define a hosts file.
Suppose the file is named hosts.openmpi
queen slots=4
worker01 slots=4
This specifies two machines (queen and worker01) with 4 process slots each (both machines have 4 processors, each of them capable of running a single thread). To start a run with 8 processes you would type
mpirun -n 8 --hostfile hosts.openmpi python example.py
Of course you don’t have to use up all available slots. To start a run with 6 processes type
mpirun -n 6 --hostfile hosts.openmpi python example.py
In this case two of the 8 available processors (slots) are unused.