Researchers at Argonne National Laboratory have established an initiative to tackle the problem of maintaining runtime compatibility between message passing interface (MPI) implementations on high-performance computer architectures.
The project, called the MPICH ABI Compatibility Initiative, involves the producers of several notable MPICH-derived message-passing implementations.
MPICH is a high-performance, portable implementation of the MPI-1, MPI-2, and MPI-3 community standards for the message-passing model of parallel computation. Developed by an Argonne team of computer scientists, MPICH has become the de facto standard for scientific research on parallel computers and has been adapted by leading vendors in their commercial platforms.
ABI, or application binary interface, is the low-level interface between two program modules. An ABI determines such details as how functions are called and the size, layout and alignment of datatypes. With ABI compatibility programs conform to the same set of runtime conventions.
“Without such compatibility between implementations,” said Kenneth Raffenetti, a software developer in Argonne’s Mathematics and Computer Science Division, “every new release would require application developers to rebuild and test their code with each available MPI library. Since most systems support multiple MPI libraries, this requires them to build a complete cross-product of MPI implementations and all libraries that depend on them.”
At the outset of the initiative, the Argonne MPICH development team is collaborating with IBM, Intel and Cray. Each of these major vendors has a high-performance implementation of MPI optimized for its individual platforms and environments.
“One of the primary aims of this initiative is for all parties to agree on a schedule for necessary ABI changes,” said Michael Blocksome, who oversees the development of the MPI software implementation at IBM. “We see this initiative as key to ensuring the stability of our product with ongoing release schedules.”
Compatibility has long been a key concern of commercial MPI vendors. “Intel MPI Library has always strived to provide binary compatibility between our product releases, and this is highly valued by our customers. This initiative will provide a binary-compatible upgrade path between the MPI-2 and MPI-3 standards, which will make customers’ MPI-3 transitions easier and more successful. It also will allow our binary compatibility to extend across our collaborators’ MPI implementations, which is important both to our customers and to our vendor partners,” said Dave Poulsen, who leads Intel’s MPI and Parallel Runtimes team.
“Our customers have come to demand a high-quality, well-supported MPI implementation,” said Mark Pagel, engineering manager of the MPI development group at Cray. “We believe this initiative will make it easier for system administrators to better manage their installations.”
“For many years, vendors have been quick to adopt MPICH as the basis of their own implementations of the MPI,” said Pavan Balaji, a computer scientist at Argonne and head of the MPICH development team. “This new initiative will ensure compatibility between evolving MPI libraries, while allowing the flexibility that individual vendors want.”
Balaji emphasized that other collaborators are welcome to participate in the new initiative. “This is not a closed initiative. Ensuring compatibility benefits all parties involved — MPI implementers, application developers and system administrators alike.”