MPI4PY
This page documents how to use the MPI for Python package within a Conda environment.
Using MPI4PY in a Python Script
To use MPI in a python script through mpi4py, you must first import it using the following code:
from mpi4py import MPIExample Script
Here is an example python script mpi4pytest.py that uses MPI:
from mpi4py import MPI
import sys
def print_hello(rank, size, name):
  msg = "Hello World! I am process {0} of {1} on {2}.\n"
  sys.stdout.write(msg.format(rank, size, name))
if __name__ == "__main__":
  size = MPI.COMM_WORLD.Get_size()
  rank = MPI.COMM_WORLD.Get_rank()
  name = MPI.Get_processor_name()
  print_hello(rank, size, name)Conda Environment
Start by creating and activating a conda environment:
$ module load anaconda/2020.02
$ conda create -n my_env
$ conda activate my_envOnce you have activated your conda environment, run the following commands to install mpi4py:
$ module load mpi/mpi/openmpi_4.0.5_gcc_10.2_slurm20
$ module load gcc/10.2 cuda/11.1.1
$ pip install python=3.7 mpi4pyHere is an example batch job script mpi4pytest_conda.sh that uses  mpi4pytest.py and the conda environment setup:
#!/bin/bash
#SBATCH -N 2
#SBATCH --mem=1G
module load anaconda/2020.02
source /gpfs/runtime/opt/anaconda/2020.02/etc/profile.d/conda.sh
conda activate my_env
module load mpi/mpi/openmpi_4.0.5_gcc_10.2_slurm20 gcc/10.2 cuda/11.1.1
srun --mpi=pmix python mpi4pytest.pyPython Virtual Environment
Start by creating and activating a python virtual environment:
$ module load python/2.7.16
$ virtualenv my_env
$ source my_env/bin/activateOnce you have activated your conda environment, run the following command to install mpi4py:
$ python -m pip install mpi4py
$ deactivateHere is an example batch job script mpi4pytest_virtualenv.sh  and the python virtual environment setup:
#!/bin/bash
#SBATCH -N 2
#SBATCH --mem=1G
module load python/2.7.16
module load mpi/mpi/openmpi_4.0.5_gcc_10.2_slurm20 gcc/10.2 cuda/11.1.1
source my_env/bin/activate
srun --mpi=pmix python mpi4pytest.pyLast updated
Was this helpful?