Pandemic Exemplar using MPI

Yu Zhao, Macalester College
Initial Publication Date: March 29, 2016


This module will step through a simple infectious disease model, develop a parallel monte-carlo algorithm based on the model, provide a coded implementation for the algorithm, and explore the scaling of the coded implementation on high performance cluster resources. The module is geared towards students with intermediate and advanced knowledge and understanding of parallel computing and the programing language used in this module. Students will go through different kinds of parallel computing platforms and libraries (OpenMP, MPI and CUDA), and will see how a pandemic can be simulated using these tools by themselves or by combining them. The program provided performs the necessary calculations for this simulation as well as visualizes the simulation.

Used this activity? Share your experiences and modifications

Learning Goals

  • Students will be able to study a somewhat complex code example depicting a real application
  • Students will be able to recognize how message passing using MPI can spread out computation among multiple processes

Context for Use

This module is intended for courses that have a parallel computing component. This module is meant for students with prior knowledge of C and who understand concepts in parallel computing. The hardware requirements are either:

  1. Computers with MPI (either clusters or servers), or
  2. Cluster or server computers with a GPU that supports CUDA.
Other requirements are corresponding compilers for CUDA as well as MPI.

Description and Teaching Materials

Teaching Notes and Tips

This has been used in a Parallel and Distributed Computing course as a 2-3 day class/lab activity after first introducing basic MPI examples. We often assign the first chapter of the module as preliminary reading before class.


See the teaching materials for a pre- and post- module survey that you could use.

References and Resources

Pandemic Exemplar using MPI -- Discussion  

Join the Discussion

Log in to reply