The Case for ABI Interoperability in a Fault Tolerant MPI
Yao Xu, Grace Nansamba, Anthony Skjellum, Gene Cooperman
TL;DR
This work argues for integrating an Application Binary Interface (ABI) into transparent checkpointing to enable true portability across MPI implementations. It presents a three-legged stool where the MPI application, the MPI library, and the checkpointing package can be compiled and chosen independently, demonstrated here with Mukautuva as an ABI wrapper and the MANA checkpointing system across MPICH and Open MPI. The experimental evaluation shows that ABI-enabled checkpointing incurs low runtime overhead on micro-benchmarks and real applications, and supports seamless cross-implementation restart, illustrating practical benefits for portability, resilience, and dynamic resource management in HPC environments. The findings suggest that ABI interoperability can be generalized beyond MANA to other checkpointing packages and pave the way for broader use of ABI standards in MPI, including containerized and vendor-closed ecosystems.
Abstract
There is new momentum behind an interoperable ABI for MPI, which will be a major component of MPI-5. This capability brings true separation of concerns to a running MPI computation. The linking and compilation of an MPI application becomes completely independent of the choice of MPI library. The MPI application is compiled once, and runs everywhere. This ABI allows users to independently choose: the compiler for the MPI application; the MPI runtime library; and, with this work, the transparent checkpointing package. Arbitrary combinations of the above are supported. The result is a "three-legged stool", which supports performance, portability, and resilience for long-running computations. An experimental proof-of-concept is presented, using the MANA checkpointing package and the Mukautuva ABI library for MPI interoperability. The result demonstrates that the combination of an ABI-compliant MPI and transparent checkpointing can bring extra flexibility in portability and dynamic resource management at runtime without compromising performance. For example, an MPI application can execute and checkpoint under one MPI library, and later restart under another MPI library. The work is not specific to the MANA package, since the approach using Mukautuva can be adapted to other transparent checkpointing packages.
