Concepts for designing modern C++ interfaces for MPI
C. Nicole Avans, Alfredo A. Correa, Sayan Ghosh, Matthias Schimek, Joseph Schuchart, Anthony Skjellum, Evan D. Suggs, Tim Niklas Uhl

TL;DR
This paper discusses the design considerations and challenges in creating modern, high-level C++ interfaces for MPI, emphasizing robust abstractions, performance, and compatibility with contemporary heterogeneous computing models.
Contribution
It identifies core issues in integrating MPI with modern C++ idioms and proposes focusing on type systems, object lifetimes, and buffers to guide future interface development.
Findings
Highlights dissonance between MPI semantics and C++ idioms
Identifies inconsistencies in MPI specification
Proposes fundamental aspects for high-level interface design
Abstract
Since the C++ bindings were deleted in 2008, the Message Passing Interface (MPI) community has revived efforts in building high-level modern C++ interfaces. Such interfaces are either built to serve specific scientific application needs (with limited coverage to the underlying MPI functionalities), or as an exercise in general-purpose programming model building, with the hope that bespoke interfaces can be broadly adopted to construct a variety of distributed-memory scientific applications. However, with the advent of modern C++-based heterogeneous programming models, GPUs and widespread Machine Learning (ML) usage in contemporary scientific computing, the role of prospective community-standardized high-level C++ interfaces to MPI is evolving. The success of such an interface clearly will depend on providing robust abstractions and features adhering to the generic programming principles…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
