MPI is the most widely used interface for high-performance computing (HPC) workloads. Its success lies in its embrace of libraries and ability to evolve while maintaining backward compatibility for older codes, enabling them to run on new architectures for many years. In this paper, we propose a new level of MPI compatibility: a standard Application Binary Interface (ABI). We review the history of MPI implementation ABIs, identify the constraints from the MPI standard and ISO C, and summarize recent efforts to develop a standard ABI for MPI. We provide the current proposal from the MPI Forum's ABI working group, which has been prototyped both within MPICH and as an independent abstraction layer called Mukautuva. We also list several use cases that would benefit from the definition of an ABI while outlining the remaining constraints.
翻译:MPI是高性能计算(HPC)工作负载中使用最广泛的接口。其成功之处在于它对各类库的兼容性以及既保持对旧代码的向后兼容性(使老旧代码能在新架构上持续运行多年)、又具备持续演进能力。本文提出MPI兼容性的新层次:标准化应用二进制接口(ABI)。我们回顾了MPI实现ABI的发展历程,识别了MPI标准与ISO C语言带来的约束,并总结了近期制定MPI标准ABI的相关工作。我们提供了MPI论坛ABI工作组当前的提案——该方案已在MPICH内部及名为Mukautuva的独立抽象层中完成原型实现。我们还列举了多个将从ABI定义中受益的用例,同时阐述了尚存的约束条件。