Search NASA⌕ Search

DOE OSTI · 1827284

RMACXX: An Efficient High-Level C++ Interface over MPI-3 RMA

Abstract

Parallel scientific applications can benefit from de- coupling communication and synchronization. One-sided pro- gramming abstractions, which separate communication from syn- chronization, have in fact served as a motivation for partitioned global address space (PGAS) models. However, the use of PGAS models in application codes in a manner that fully exploits the benefit of these programming models requires significant development effort. Meanwhile, a vast majority of scientific codes already use the Message Passing Interface (MPI) and need convenient features to support application-specific one-sided communication scenarios. MPI Remote Memory Access (RMA) can be employed for this purpose. MPI is a low-level API, however, and developing applications with MPI RMA requires programmers to be well versed in its nuances. We present RMACXX, a compact set of C++ bindings to MPI-3 RMA, to ease the use of MPI RMA. Unlike other PGAS models, which may have interoperability issues with MPI, RMACXX is written on top of MPI and uses the same runtime as MPI. The basic functionality of RMACXX adds only a relatively small number of extra instructions (about 20) to the critical communication path. Moreover, RMACXX provides an intuitive API for building a wide variety of scientific applications while enjoying performance matching handwritten MPI-3 RMA codes.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Ghosh, Sayan, Guo, Yanfei, Balaji, Pavan, Gebremedhin, Assefaw. 2021-05-11. RMACXX: An Efficient High-Level C++ Interface over MPI-3 RMA. https://www.osti.gov/biblio/1827284

Cite the original work for its findings. Save a collection to share your selection of sources.