Skip to main navigation Skip to search Skip to main content

MPI Continuations And How To Invoke Them

  • University of Tennessee

Research output: Chapter in Book/Report/Conference proceedingChapterpeer-review

Abstract

Asynchronous programming models (APM) are gaining more and more traction, allowing applications to expose the available concurrency to a runtime system tasked with coordinating the execution. While MPI has long provided support for multi-threaded communication and non-blocking operations, it falls short of adequately supporting the asynchrony of separate but dependent parts of an application coupled by the start and completion of a communication operation. Correctly and efficiently handling MPI communication in differentAPMmodels is still a challenge. We have previously proposed an extension to the MPI standard providing operation completion notifications using callbacks, so-called MPI Continuations. This interface is flexible enough to accommodate a wide range of different APMs. In this paper, we discuss different variations of the callback signature and how to best pass data from the code starting the communication operation to the code reacting to its completion. We establish three requirements (efficiency, usability, safety) and evaluate different variations against them. Finally, we find that the current choice is not the best design in terms of both efficiency and safety and propose a simpler, possibly more efficient and safe interface. We also show how the transfer of information into the continuation callback can be largely automated using C++ lambda captures.

Original languageEnglish
Title of host publicationSustained Simulation Performance 2021
Subtitle of host publicationProceedings of the Joint Workshop on Sustained Simulation Performance, University of Stuttgart (HLRS) and Tohoku University, 2021
PublisherSpringer International Publishing
Pages67-83
Number of pages17
ISBN (Electronic)9783031180460
ISBN (Print)9783031180453
DOIs
StatePublished - Jan 1 2023

Fingerprint

Dive into the research topics of 'MPI Continuations And How To Invoke Them'. Together they form a unique fingerprint.

Cite this