Computer Science 335
Parallel Processing and High Performance Computing
Fall 2026, Siena University
Lecture 14: MPI Examples
Date: Friday, October 9, 2026
Agenda
- Announcements
- Create your ACCESS accounts and email me your ids so we can get set up for supercomputer access
- Lab 5: Non-Blocking Messages [HTML] [PDF], Lab 6: Collective Communication Practice [HTML] [PDF], and Programming Project 3: MPI Recursive Digit Sum [HTML] [PDF] should be wrapped up
- Programming Project 4: Collective Communication [HTML] [PDF] should be wrapping up
- Programming Project 5: Parallelizing Jacobi Iteration [HTML] [PDF] time to get started
- Finishing up our discussion of Question 3.11 from Pacheco
- first: thinking about some fundamental communication patterns
- broadcast
- reduce
- allreduce
- the trickier one: scan (relevant to 3.11)
- Example: MPI implementation of Conway's Game of Life
- Uses a distributed data structure: Each process maintains
its own subset of the computational domain, in this case just
some of the rows of the grid. Other processes do not know about
the data on a given process. Only the data that is needed to
compute the next generation, a one-cell overlap (sometimes
called ghost cells or a halo), is exchanged
between neighbors before each iteration.
- When we need to get a global count of some statistic, such as
the count of live cells at the start, we use a reduction.
- The communication of cell data between iterations is done
with two pairs of sends and receives. Here, we use nonblocking
calls, then wait for their completion with the MPI_Waitall
call.
- This example also shows a technique for writing a file when
the intended contents are distributed among a set of processes.
Terminology
Examples
- mpilife: MPI parallelization of the Conway's
Game of Life simulator