TY - GEN
T1 - Concepts for Designing Modern C++ Interfaces for MPI
AU - Avans, C. Nicole
AU - Correa, Alfredo A.
AU - Ghosh, Sayan
AU - Schimek, Matthias
AU - Schuchart, Joseph
AU - Skjellum, Anthony
AU - Suggs, Evan D.
AU - Uhl, Tim Niklas
N1 - Publisher Copyright:
© The Author(s) 2026.
PY - 2026
Y1 - 2026
N2 - Since the C++ bindings were deleted in 2008, the Message Passing Interface (MPI) community has recently 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 functionality), 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 that underpin the C++ programming language, without compromising on either performance or portability, the core principles upon which MPI was founded. However, there is a tension between idiomatic C++ handling of types and lifetimes and MPI’s loose interpretation of object lifetimes/ownership and insistence on maintaining global states. Instead of proposing “yet another” high-level C++ interface to MPI, overlooking or providing partial solutions to work around the key issues concerning the dissonance between MPI semantics and idiomatic C++, this paper focuses on the three fundamental aspects of a high-level interface: type system, object lifetimes, and communication buffers, while also identifying inconsistencies in the MPI specification. Presumptive solutions can be unrefined, and we hope the broader MPI and C++ communities will engage with us in productive exchange of ideas and concerns.
AB - Since the C++ bindings were deleted in 2008, the Message Passing Interface (MPI) community has recently 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 functionality), 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 that underpin the C++ programming language, without compromising on either performance or portability, the core principles upon which MPI was founded. However, there is a tension between idiomatic C++ handling of types and lifetimes and MPI’s loose interpretation of object lifetimes/ownership and insistence on maintaining global states. Instead of proposing “yet another” high-level C++ interface to MPI, overlooking or providing partial solutions to work around the key issues concerning the dissonance between MPI semantics and idiomatic C++, this paper focuses on the three fundamental aspects of a high-level interface: type system, object lifetimes, and communication buffers, while also identifying inconsistencies in the MPI specification. Presumptive solutions can be unrefined, and we hope the broader MPI and C++ communities will engage with us in productive exchange of ideas and concerns.
KW - C++
KW - Concept-based Interface
KW - Message Passing Interface
UR - https://www.scopus.com/pages/publications/105020390206
U2 - 10.1007/978-3-032-07194-1_10
DO - 10.1007/978-3-032-07194-1_10
M3 - Conference contribution
AN - SCOPUS:105020390206
SN - 9783032071934
T3 - Lecture Notes in Computer Science
SP - 165
EP - 183
BT - Recent Advances in the Message Passing Interface - 32nd European MPI Users' Group Meeting, EuroMPI 2025, Proceedings
A2 - Schuchart, Joseph
A2 - Bouteiller, Aurelien
A2 - Hunold, Sascha
A2 - Jaeger, Julien
A2 - Niethammer, Christoph
A2 - Smith, Brian
PB - Springer Science and Business Media Deutschland GmbH
T2 - 32nd European MPI Users Group Meeting, EuroMPI 2025
Y2 - 1 October 2025 through 3 October 2025
ER -