What Happens in MPI Shouldn't Stay in MPI - Making Communication Visible for Learning and Performance Analysis
Invited talk at EuroMPI at TU Wien (Vienna, Austria)
Presenter: Anna-Lena Roth
Conference: EuroMPI
Location: TU Wien, Vienna, Austria
Learning MPI means more than learning its syntax. Efficient parallel programs require understanding why communication is necessary but expensive, why an exchange within a node differs from one across the network, and which performance problems arise from communication itself. Such understanding is part of performance analysis, which typically appears late in curricula. Collective operations illustrate this: learners see a single call, while the communication actually carried out by the MPI library remains invisible. This talk presents approaches to teaching MPI in which communication itself becomes the central representation. Based on three years of classroom experience with EduMPI Suite, it discusses the near-real-time visualization of MPI communication, its mapping onto processes, nodes, and cores, and the decomposition of collective operations into their underlying point-to-point communication, which makes the selected algorithm observable. Obtaining this information currently requires a modified MPI implementation, as PMPI intercepts calls at the API boundary and MPI_T, although intended to expose internal information, remains limited in coverage and implementation support. Usability studies and classroom evaluations show which representations change how learners reason about communication, and how visible collective algorithms turn claims about efficiency into observations. In a comparative usability study, 96 % of analysis tasks were solved with EduMPI Suite, compared with 60 % using TAU or CUBE. This experience also indicates what the MPI standard could contribute to make such data more accessible to learning support and performance analysis tools. The same principle extends to asynchronous many-task runtimes, increasingly taught as a higher-level alternative to explicit MPI development. Where MPI serves as their backend, the communication they generate, including collective operations, is again hidden. Making this communication observable is the next step.