Cisco Blogs

Recently Voted into MPI-3

- January 23, 2012 - 4 Comments

In the January MPI Forum meeting, several proposals passed their 2nd votes, meaning that they are “in” MPI-3.  That being said, MPI-3 is not yet finalized (and won’t be for many more months), so changes can still happen.

  • Making the C++ bindings optional
  • Updating RMA (a.k.a., “one-sided”)
  • Creating a new “MPIT” tools interface

I’ll describe each of these briefly below.

MPI_COMM_SPLIT_TYPE: This new API function splits communicators according to type.  The new predefined type MPI_COMM_TYPE_SHARED allows users to split, for example, MPI_COMM_WORLD, into communicators comprised of processes that can communicate by shared memory.  Effectively: this allows users to create per-node communicators easily.  Note, too, that upcoming MPI-3 proposals extend MPI_COMM_SPLIT_TYPE by adding new predefined types for other split patterns.

Optional C++ bindings: A single sentence has been added to make the C++ bindings optional in MPI implementations.  That is, an implementation can choose not to provide the MPI C++ bindings.  Fun fact: most people don’t know that the Fortran bindings have been optional since MPI-1!  (even though most MPI implementations provide the MPI Fortran interfaces)  It should be noted that there is another proposal churning through the Forum to completely delete the C++ bindings — meaning that MPI would only be left with official bindings for C and Fortran.  If it passes, deleting the C++ bindings would make their optionality (is that a word?) moot, obviously.

Updated the RMA chapter: The RMA chapter has received a significant overhaul.  It is unfortunately still quite complex and fairly subtle, but I am told by multiple people who were involved in the RMA revamp that many problems from the MPI-2 RMA definitions were fixed.  There’s some new functionality, too, of course — but since I wasn’t involved in the RMA working group, I’m not going to try to describe the new stuff for fear of being incorrect.  🙂

New “MPIT” interface: The Tools working group designed a new interface that tools can use to harvest information from a running MPI application.  Debuggers, profilers, and correctness-checking frameworks can now query a much richer set of information from the innards of an MPI implementation.  This information can be presented to a user to help them more deeply understand the run-time characteristics of their MPI application.


In an effort to keep conversations fresh, Cisco Blogs closes comments after 60 days. Please visit the Cisco Blogs hub page for the latest content.


  1. If nothing else, the addition of remote atomics (e.g. compare-and-swap) to the RMA chapter resolves a huge gap in MPI functionality. The addition of dynamic windows makes it easier to implement interesting data-structures. Finally, many clarifications and additions allow for implementations to deliver better performance.

    • (in case you didn't realize it, Jeff Hammond is in the MPI-3 RMA WG, so his word should definitely be taken over mine :-) )

  2. However, I am a sporadic attender of the MPI Forum and RMA WG telecons, so there are a number of people whose word should be taken over mine :-) Perhaps you should invite Torsten, Jim or Pavan to your podcast to talk about MPI-3 RMA.

    • That is a good idea -- or perhaps a guest blog post...