Today, a small group of us left “stealth mode” and presented a group of ideas to the MPI Forum loosely grouped under the moniker of “MPI Sessions.”

These ideas behind this presentation originated from several places:

Here are the slides that were presented tonight:

There was a lot of really great discussion and feedback from the presentation tonight.  I think we took about 40 distinct pieces of feedback / open questions from the audience.

Now that we have brought these ideas to a larger audience, my hope is that we (the Forum) start refining these ideas to fit them into a future release of the MPI standard.  Meaning: please don’t assume that exactly what is proposed in these slides are going to make it into the MPI standard.

That being said, here’s the TL;DR version of the slides:

  • A “session” is a local handle to the MPI library.  You can create lots of sessions in a single MPI process; each creates a self-contained, isolated entry point to the MPI library.
  • It may well be possible to have a different MPI thread level on each session.
  • From a session, you can create MPI_Groups by querying the underlying run-time system.
  • You can create MPI_Comms from these MPI_Groups.
  • You not longer have to call MPI_INIT / MPI_FINALIZE (you can create communicators from sessions); these functions now become the constructor / destructor for MPI_COMM_WORLD and MPI_COMM_SELF.

This is going to be fun!


Jeff Squyres

The MPI Guy

UCS Platform Software