Running MPI4py on Jupyter Notebook — Step-by-Step Guide

Afzal Badshah, PhD
3 min readMar 20, 2024

Running MPI4py on Jupyter Notebook enables parallel computing within an interactive and user-friendly environment. This guide provides a step-by-step approach to setting up and executing MPI (Message Passing Interface) Python programs using MPI4py library in a Jupyter Notebook. Whether you’re operating on Windows or Ubuntu, this tutorial caters to users on both platforms. From installing the necessary components to executing MPI programs with multiple processors, each step is meticulously outlined to facilitate seamless integration and efficient utilization of MPI4py within Jupyter Notebook. Access the detailed tutorial here.

Installing MPI on Windows

1. Installing Microsoft MPI

2. Installing Jupyter

  • Install Python: If you haven’t already, install Python on your system. You can download Python from the official website (https://www.python.org/downloads/) and follow the installation instructions.
  • Install Jupyter: Once Python is installed, open a command prompt and run the following command to install Jupyter:
pip install jupyter

3. Configuring MPI with Jupyter

  • Set MPI Environment Variables: After installing MPI, ensure that the MPI installation directory is added to the system PATH environment variable.

4. Installing MPI4py

  • Install MPI4py: Open a command prompt and run the following command to install the MPI4py package:
pip install mpi4py

5. Importing MPI4py

  • Import MPI4py: In your Jupyter notebook, you can import MPI4py as follows:
from mpi4py import MPI

6. Running MPI Program in Jupyter Notebook

  • Run MPI Program: Create a new Jupyter notebook or open an existing one. Then, you can write and execute MPI Python code directly in the notebook cells.
  • Example MPI Program:
from mpi4py import MPI
  comm = MPI.COMM_WORLD
rank = comm.Get_rank()
if rank == 0:
data = {'a': 7, 'b': 3.14}
comm.send(data, dest=1)
elif rank == 1:
data = comm.recv(source=0)
print("Received data on rank 1:", data)

7. Running MPI Program from Command Line

  • Open a Command Prompt: Navigate to the directory where your MPI Python program is located.
  • Run MPI Program with 2 Processors: Use the following command to run your MPI Python program with 2 processors:
mpiexec -n 2 python your_mpi_program.py
Or
mpirun -n 2 python_complete_path your_mpi_program.py

Replace your_mpi_program.py with the name of your MPI Python program file.

Installing MPI on Windows

1. Installing MPI Implementation

  • OpenMPI Installation: Ubuntu typically comes with OpenMPI available in the default repositories. You can install it using the following command:
sudo apt-get update
sudo apt-get install openmpi-bin libopenmpi-dev

2. Installing Jupyter

  • Install Python and Jupyter: If Python is not already installed, you can install it using the following command:
sudo apt-get install python3 python3-pip

Then, install Jupyter using pip:

sudo pip3 install jupyter

3. Installing MPI4py

  • Install MPI4py: Use pip to install the MPI4py package:
sudo pip3 install mpi4py

4. Importing MPI4py

  • Import MPI4py: In your Jupyter notebook, import MPI4py as follows:
from mpi4py import MPI

5. Running MPI Program in Jupyter Notebook

  • Run MPI Program: Create a new Jupyter notebook or open an existing one. Write your MPI Python code directly in the notebook cells.
  • Example MPI Program:
%%px
from mpi4py import MPI
  comm = MPI.COMM_WORLD
rank = comm.Get_rank()
if rank == 0:
data = {'a': 7, 'b': 3.14}
comm.send(data, dest=1)
elif rank == 1:
data = comm.recv(source=0)
print("Received data on rank 1:", data)

6. Running MPI Program from Command Line

  • Open a Terminal: Navigate to the directory where your MPI Python program is located.
  • Run MPI Program with 2 Processors: Use the following command to run your MPI Python program with 2 processors:
mpiexec -n 2 python3 your_mpi_program.py

Replace your_mpi_program.py with the name of your MPI Python program file.

Access the detailed tutorial here.

--

--

Afzal Badshah, PhD

Dr Afzal Badshah focuses on academic skills, pedagogy (teaching skills) and life skills.