TU Darmstadt / ULB / TUbiblio

Automatic Partitioning of MPI Operations in MPI+OpenMP Applications

Jammer, Tim ; Bischof, Christian (2021)
Automatic Partitioning of MPI Operations in MPI+OpenMP Applications.
36th ISC High Performance Conference. virtual Conference (24.06.2021-02.07.2021)
doi: 10.1007/978-3-030-90539-2_12
Konferenzveröffentlichung, Bibliographie

Kurzbeschreibung (Abstract)

The new MPI 4.0 standard includes a new chapter about partitioned point-to-point communication operations. These partitioned operations allow multiple actors of one MPI process (e.g. multiple threads) to contribute data to one communication operation. These operations are designed to mitigate current problems in multithreaded MPI programs, with some work suggesting a substantial performance benefit (up to 26%) when using these operations compared to their existing non-blocking counterparts.

In this work, we explore the possibility for the compiler to automatically partition sending operations across multiple OpenMP threads. For this purpose, we developed an LLVM compiler pass that partitions MPI sending operations across the different iterations of OpenMP for loops. We demonstrate the feasibility of this approach by applying it to 2D stencil codes, observing very little overhead while the correctness of the codes is sustained. Therefore, this approach facilitates the usage of these new additions to the MPI standard for existing codes.

Our code is available on github: https://github.com/tudasc/CommPart.

Typ des Eintrags: Konferenzveröffentlichung
Erschienen: 2021
Autor(en): Jammer, Tim ; Bischof, Christian
Art des Eintrags: Bibliographie
Titel: Automatic Partitioning of MPI Operations in MPI+OpenMP Applications
Sprache: Englisch
Publikationsjahr: 13 November 2021
Verlag: Springer
Buchtitel: High Performance Computing
Reihe: Lecture Notes in Computer Science
Band einer Reihe: 12761
Veranstaltungstitel: 36th ISC High Performance Conference
Veranstaltungsort: virtual Conference
Veranstaltungsdatum: 24.06.2021-02.07.2021
DOI: 10.1007/978-3-030-90539-2_12
Kurzbeschreibung (Abstract):

The new MPI 4.0 standard includes a new chapter about partitioned point-to-point communication operations. These partitioned operations allow multiple actors of one MPI process (e.g. multiple threads) to contribute data to one communication operation. These operations are designed to mitigate current problems in multithreaded MPI programs, with some work suggesting a substantial performance benefit (up to 26%) when using these operations compared to their existing non-blocking counterparts.

In this work, we explore the possibility for the compiler to automatically partition sending operations across multiple OpenMP threads. For this purpose, we developed an LLVM compiler pass that partitions MPI sending operations across the different iterations of OpenMP for loops. We demonstrate the feasibility of this approach by applying it to 2D stencil codes, observing very little overhead while the correctness of the codes is sustained. Therefore, this approach facilitates the usage of these new additions to the MPI standard for existing codes.

Our code is available on github: https://github.com/tudasc/CommPart.

Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > Scientific Computing
Zentrale Einrichtungen
Zentrale Einrichtungen > Hochschulrechenzentrum (HRZ)
Zentrale Einrichtungen > Hochschulrechenzentrum (HRZ) > Hochleistungsrechner
Hinterlegungsdatum: 18 Jul 2022 09:27
Letzte Änderung: 12 Dez 2022 15:08
PPN: 502516410
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen