Skip to main navigation Skip to search Skip to main content

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
  • Tennessee Technological University
  • Lawrence Livermore National Laboratory
  • Pacific Northwest National Laboratory
  • Karlsruhe Institute of Technology

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

1 Scopus citations

Abstract

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.

Original languageEnglish
Title of host publicationRecent Advances in the Message Passing Interface - 32nd European MPI Users' Group Meeting, EuroMPI 2025, Proceedings
EditorsJoseph Schuchart, Aurelien Bouteiller, Sascha Hunold, Julien Jaeger, Christoph Niethammer, Brian Smith
PublisherSpringer Science and Business Media Deutschland GmbH
Pages165-183
Number of pages19
ISBN (Print)9783032071934
DOIs
StatePublished - 2026
Event32nd European MPI Users Group Meeting, EuroMPI 2025 - Charlotte, United States
Duration: Oct 1 2025Oct 3 2025

Publication series

NameLecture Notes in Computer Science
Volume15977 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference32nd European MPI Users Group Meeting, EuroMPI 2025
Country/TerritoryUnited States
CityCharlotte
Period10/1/2510/3/25

Keywords

  • C++
  • Concept-based Interface
  • Message Passing Interface

Fingerprint

Dive into the research topics of 'Concepts for Designing Modern C++ Interfaces for MPI'. Together they form a unique fingerprint.

Cite this