In reply to anon.

I'm afraid I don't understand one part of your comment: why only allow one MPI_Session? Isn't that the equivalent of global state (albeit explicit)? The idea is that the MPI library can use the MPI_Session to stash whatever per-entity state is required on the session (I don't think it will ever be possible to 100% eliminate all of the global state -- some of it relates to the hardware, the OS, ...etc.). In this way, each entity can have it's own private state (or at least, as much private state as possible -- excluding whatever global state must remain global).