MPI Performance - Exercises
The purpose of these exercises is to study factors affecting the performance
of MPI programs. These exercises are written for IBM POWER platforms.
Exercise 1 - Eager vs. Rendezvous Protocol
- Compile and run the program eager_vs_rend.c
using two MPI tasks.
Follow the directions in the comments at the top to run it once using
eager protocol and once using rendezvous protocol.
- Use the output data from the runs to plot message passing bandwidth
in MB/sec as a function of message size in bytes for both protocols.
- Summarize your observations.
Exercise 2 - Polling vs. Interrupt for Sender-receiver Synchronization
- Compile and run the program
allreduce.c with different numbers of MPI tasks
(e.g., 2, 4, 8, 16, 32, 64, 128). Follow the directions in the comments
at the top to do one set of runs using polling and another set of runs
using interrupt mode.
- Use the output data to plot the execution time as a function of
the number of MPI tasks.
- Compile and run the program
poll_interrupt.c, following the diretions in the comments at the top
to run it once using polling mode and once using interrupt mode.
- Summarize your observations.
Exercise 3 - Message Size
- Compile and run the program msgsize.c with
two MPI tasks.
- Use the output data to plot message passing bandwidth as a function
of message size.
- Summarize your observations.
Exercise 4 - Point-to-point Routine Comparisons
- Compile and run the program
mpi_multibandwidth.c using an even number of MPI tasks.
- Use the output data to plot message passing bandwidth as a function
of message size for all of the routine types on the same graph (e.g., using
a different color and/or symbols for different routine types).
- Summarize your observations.
Exercises 5 - Persistent Communications
- Compile and run the program persist.c which uses
persistent communications.
- Compile and run the program persist2.c which
uses MPI_Irecv and MPI_Isend for purpose of comparison.
- Use the output data to plot message bandwidth as a function of message
size for the above two programs on the same graph.
- Summarize your observations.
Exercises 6 - Derived Datatypes
- Compile and run the program datatypes2.c with
two MPI tasks.
- Compile and run the program datatypes.c with
two MPI tasks.
- Study the output data and summarize your observations.
shirley@cs.utk.edu