MPI 3.1: coming soon to an implementation near you

The next MPI Forum meeting will be in Portland, OR, USA, in early March.

One of the major topics on the agenda will be voting on the MPI 3.1 standard.

You might be wondering what’s new in MPI-3.1.

I’m glad you asked.

First, I want to remind everyone that participation in the MPI Forum is open to anyone. Yes, that’s right, you, too can show up at an MPI Forum meeting and help shape the future of parallel computing! (just register ahead of time, please)

There are a few noteworthy changes in MPI-3.1:

There was an inconsistency in how BIND(C) was used in the new mpi_f08 module (i.e., the Fortran ’08 bindings). This has been fixed.

There were inconsistencies in how PMPI-based profiling was defined for the mpi_f08 module. These have been fixed.

There are new functions for address integer arithmetic to help prevent overflow and underflow.

Several functions have been declared to be always thread safe (e.g., even if the MPI process is running as MPI_THREAD_SINGLE), such as MPI_INITIALIZED, MPI_FINALIZED, etc.

Immediate versions of non-blocking I/O collectives have been added.

There’s also a bunch of smaller errata that were fixed, and zillions of typos and other small improvements to text that did not change any semantics.

As mentioned above, the plan is to vote on MPI-3.1 as a whole document at the upcoming March meeting.

However, the MPI Forum tends to move with intentional deliberation (this is actually something you want in a standard body). There is always a chance that something will come up that will prevent voting at the meeting (e.g., if some previously-undetected problem is found). If something like that happens, the voting could be delayed. However, I (and probably most of the rest of the Forum) would greatly prefer a delayed publication vs. a bad publication.