EMPI: Enhanced Message Passing Interface in Modern C++

Message Passing Interface (MPI) is a well-known standard for programming distributed and HPC systems. While the community has been continuously improving MPI to address the requirements of next-generation architectures and applications, its interface has not substantially evolved. In fact, MPI only...

Full description

Saved in:
Bibliographic Details
Published in2023 IEEE/ACM 23rd International Symposium on Cluster, Cloud and Internet Computing (CCGrid) pp. 141 - 153
Main Authors Beni, Majid Salimi, Crisci, Luigi, Cosenza, Biagio
Format Conference Proceeding
LanguageEnglish
Published IEEE 01.05.2023
Subjects
Online AccessGet full text

Cover

Loading…
Abstract Message Passing Interface (MPI) is a well-known standard for programming distributed and HPC systems. While the community has been continuously improving MPI to address the requirements of next-generation architectures and applications, its interface has not substantially evolved. In fact, MPI only provides an interface to C and Fortran and does not support recent features of modern C++. Moreover, MPI programs are error-prone and subject to different syntactic and semantic errors. This paper introduces EMPI, an Enhanced Message Passing Interface based on modern C++, which is directly mapped to the OpenMPI implementation and exploits modern C++ for safe and efficient distributed programming. EMPI proposes novel C++RAII-based semantics and constant specialization to prevent error-prone code patterns such as parameter mismatch, and reduce the overhead of handling multiple objects and perinvocation time. Consequently, EMPI programs are safer: six out of nine well-known MPI error patterns do not occur while correctly using EMPI semantics. Experimental results on five microbenchmarks and two applications on a large-scale cluster using up to 1024 processes show that EMPI's performance is very similar to native MPI and considerably faster than the MPL C++ interface.
AbstractList Message Passing Interface (MPI) is a well-known standard for programming distributed and HPC systems. While the community has been continuously improving MPI to address the requirements of next-generation architectures and applications, its interface has not substantially evolved. In fact, MPI only provides an interface to C and Fortran and does not support recent features of modern C++. Moreover, MPI programs are error-prone and subject to different syntactic and semantic errors. This paper introduces EMPI, an Enhanced Message Passing Interface based on modern C++, which is directly mapped to the OpenMPI implementation and exploits modern C++ for safe and efficient distributed programming. EMPI proposes novel C++RAII-based semantics and constant specialization to prevent error-prone code patterns such as parameter mismatch, and reduce the overhead of handling multiple objects and perinvocation time. Consequently, EMPI programs are safer: six out of nine well-known MPI error patterns do not occur while correctly using EMPI semantics. Experimental results on five microbenchmarks and two applications on a large-scale cluster using up to 1024 processes show that EMPI's performance is very similar to native MPI and considerably faster than the MPL C++ interface.
Author Crisci, Luigi
Beni, Majid Salimi
Cosenza, Biagio
Author_xml – sequence: 1
  givenname: Majid Salimi
  surname: Beni
  fullname: Beni, Majid Salimi
  email: msalimibeni@unisa.it
  organization: University of Salerno,Department of Computer Science,Salerno,Italy
– sequence: 2
  givenname: Luigi
  surname: Crisci
  fullname: Crisci, Luigi
  email: lcrisci@unisa.it
  organization: University of Salerno,Department of Computer Science,Salerno,Italy
– sequence: 3
  givenname: Biagio
  surname: Cosenza
  fullname: Cosenza, Biagio
  email: bcosenza@unisa.it
  organization: University of Salerno,Department of Computer Science,Salerno,Italy
BookMark eNotjj1PwzAUAI1EByj9Bwh5rxL8_PFss6EolEiN6FDm6pE8F0vgooSFf08lWO62012Ly3IqLMQdqBpAxfum2Ux5dB6DrrXSplbqzAuxij4G45RRADFeCWz7Xfcg2_JOZeBR9jzPdGS5o3nO5Si78s1TooFlLrI_jTwV2azXN2KR6GPm1b-X4vWp3TfP1fZl0zWP2yoDelOxcXogMEkHE7xDcgZUerOalSZywdtEDHj-8YiMmJL1w-iCHq1GYGuW4vavm5n58DXlT5p-DqDAg7NofgHTfEGH
CODEN IEEPAD
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1109/CCGrid57682.2023.00023
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
EISBN 9798350301199
EndPage 153
ExternalDocumentID 10171546
Genre orig-research
GroupedDBID 6IE
6IL
CBEJK
RIE
RIL
ID FETCH-LOGICAL-i1673-e352ca13f2838756a5310fb42e02aa5874fae16350766e66ff47cd582d4261e43
IEDL.DBID RIE
IngestDate Thu Jan 18 11:14:47 EST 2024
IsDoiOpenAccess false
IsOpenAccess true
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-i1673-e352ca13f2838756a5310fb42e02aa5874fae16350766e66ff47cd582d4261e43
OpenAccessLink https://doi.org/10.1109/CCGrid57682.2023.00023
PageCount 13
ParticipantIDs ieee_primary_10171546
PublicationCentury 2000
PublicationDate 2023-May
PublicationDateYYYYMMDD 2023-05-01
PublicationDate_xml – month: 05
  year: 2023
  text: 2023-May
PublicationDecade 2020
PublicationTitle 2023 IEEE/ACM 23rd International Symposium on Cluster, Cloud and Internet Computing (CCGrid)
PublicationTitleAbbrev CCGRID
PublicationYear 2023
Publisher IEEE
Publisher_xml – name: IEEE
Score 1.8551908
Snippet Message Passing Interface (MPI) is a well-known standard for programming distributed and HPC systems. While the community has been continuously improving MPI...
SourceID ieee
SourceType Publisher
StartPage 141
SubjectTerms C++ languages
Computational modeling
Computer architecture
High Performance Computing
Message passing
Message Passing Interface (MPI)
Modern C++
Multiprotocol label switching
Programming
Programming Models
Semantics
Title EMPI: Enhanced Message Passing Interface in Modern C++
URI https://ieeexplore.ieee.org/document/10171546
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV3PS8MwFA5uJ08qTvxNDt5Gtv5IXluvZXMKGzs42G0kzYsOoZOxXfzrfUk3FUHwVkpKmzThfS953_cxdpcotFZnKAoLIKRKjTDaOQFQFCa2uXNBnX88gdFMPs3VfEdWD1wYRAzFZ9jzl-Es366qrd8q6_vpQyEfWqxFmVtD1tqxfuOo6Jflw3ppPYD2DKvES5dG3oboh21KiBrDIzbZv68pFnnrbTemV338kmL89wcds843QY9Pv0LPCTvA-pTBYDx9vOeD-jWc6vOxdzd5oYaEj6kVD5t_TtOjy5o3Hmi87HY7bDYcPJcjsbNFEMsYslQgYaZKx6kjZEDZBmhaRpEzMsEo0VrlmXQaCWYR0gNAAOdkVlmVJ9anSyjTM9auVzWeMw5aIyiVWOdt0NMoN0WmMHMy97JhRXrBOr7Ti_dG-WKx7-_lH_ev2KEf-KYg8Jq1N-st3lDQ3pjb8LM-AT6UlPQ
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV3PS8MwGA06D3pSceJvc_A2svVH8rX1WqabrmOHDXYbSfNFh9DJ2C7-9SbppiII3kpJaUNS3kvyvfcIuYsEai0TZJkGYFzEiilpDAPIMhXq1Bjvzl8MoTfhT1Mx3YjVvRYGEX3xGbbdpT_L14ty7bbKOm76WMiHXbJngV-EtVxro_sNg6yT54_LuXYU2mmsImdeGrggoh_BKR43Hg7JcPvGulzkrb1eqXb58cuM8d-fdESa3xI9OvoCn2Oyg9UJgW4x6t_TbvXqz_Vp4fJNXmxDy5BtK-q3_4y0j84rWqeg0bzVapLJQ3ec99gmGIHNQ0hihpY1lTKMjeUGdr0B0v5IgVE8wiCSUqQJNxIt0bJcDwABjOFJqUUaabdgQh6fkka1qPCMUJASQYhIGxeEHgepyhKBieGpMw7L4nPSdJ2evdfeF7Ntfy_-uH9L9nvjYjAb9IfPl-TADUJdHnhFGqvlGq8thK_UjR-4Tzy1mD0
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2023+IEEE%2FACM+23rd+International+Symposium+on+Cluster%2C+Cloud+and+Internet+Computing+%28CCGrid%29&rft.atitle=EMPI%3A+Enhanced+Message+Passing+Interface+in+Modern+C%2B%2B&rft.au=Beni%2C+Majid+Salimi&rft.au=Crisci%2C+Luigi&rft.au=Cosenza%2C+Biagio&rft.date=2023-05-01&rft.pub=IEEE&rft.spage=141&rft.epage=153&rft_id=info:doi/10.1109%2FCCGrid57682.2023.00023&rft.externalDocID=10171546