MPI Forum update: MPI Sessions
The MPI Forum (http://mpi-forum.org/) is the international standardisation body for the Message Passing Interface (MPI).
INTERTWinE team member Dr Dan Holmes is an active member of the MPI Forum and leader of the working groups for Sessions and Point-to-point communication operations.
The previous meeting of the MPI Forum in Aachen, Germany brought to the fore the breadth of ambition for the Sessions proposal. Originally devised as a way to fix limitations with the current method of initialising MPI, this idea has grown well beyond its humble beginnings.
The basic idea with MPI Sessions is to allow multiple components of an application to use MPI concurrently and in isolation from each other. Each component would independently get its own ‘handle’ to MPI by initialising its own ‘session’. Multiple sessions can be initialised and used in a single process without worrying about what other components are doing with other sessions. This solves the multi-component initialisation problems but it also suggests other exciting possibilities.
The proposed API for MPI Sessions exposes in application code the interaction with an external runtime system or resource manager for the first time in MPI. The session is used to query the runtime for available resources (processes, at the moment) and permits the creation of MPI objects that represent those resources - MPI Groups and, from those, MPI Communicators, Windows, and Files.
The first consequence of this new interaction with external resource management is that an application never needs to create or use the built-in ubiquitous MPI_COMM_WORLD communicator. Beyond that bombshell, it also permits an application to monitor resource availability and adapt its resource usage at runtime. This has implications for fault tolerance and it has lead to a review of the design for dynamic process management in MPI, looking again at MPI_COMM_SPAWN and the connect/accept mechanisms. Usage models driving this work include attaching parallel tools to parallel simulations, coupled application workflows, and multi-physics simulations including runtime visualisation and steering.
More information about the work on MPI Sessions within the MPI Forum can be found on the working group’s wiki page (https://github.com/mpiwg-sessions/sessions-issues/wiki) or by contacting us at info [at] intertwine-project.eu.