Pandemic Exemplar using MPI
Initial Publication Date: March 29, 2016
Summary
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.
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:
- Computers with MPI (either clusters or servers), or
- Cluster or server computers with a GPU that supports CUDA.
Description and Teaching Materials
Online teaching module that you can use with your students.
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.
Share your modifications and improvements to this activity through the Community Contribution Tool »
Assessment
See the teaching materials for a pre- and post- module survey that you could use.
References and Resources
This module was inspired by a module developed at the Shodor Foundation by Aaron Weeden