English

A C++20 Interface for MPI 4.0

Distributed, Parallel, and Cluster Computing 2023-06-22 v1

Abstract

We present a modern C++20 interface for MPI 4.0. The interface utilizes recent language features to ease development of MPI applications. An aggregate reflection system enables generation of MPI data types from user-defined classes automatically. Immediate and persistent operations are mapped to futures, which can be chained to describe sequential asynchronous operations and task graphs in a concise way. This work introduces the prominent features of the interface with examples. We further measure its performance overhead with respect to the raw C interface.

Cite

@article{arxiv.2306.11840,
  title  = {A C++20 Interface for MPI 4.0},
  author = {Ali Can Demiralp and Philipp Martin and Niko Sakic and Marcel Krüger and Tim Gerrits},
  journal= {arXiv preprint arXiv:2306.11840},
  year   = {2023}
}

Comments

To appear in SC '22: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis

R2 v1 2026-06-28T11:10:06.576Z