TU Darmstadt / ULB / TUbiblio

Annotation of Compiler attributes for MPI Functions

Jammer, Tim ; Schmidt, Adrian ; Bischof, Christian (2024)
Annotation of Compiler attributes for MPI Functions.
31st European MPI Users' Group Meeting (EUROMPI’24). Perth, Australia (25.09.2024 - 27.09.2024)
doi: 10.1007/978-3-031-73370-3_2
Konferenzveröffentlichung, Bibliographie

Kurzbeschreibung (Abstract)

This paper explores the use of LLVM IR function and parameter attributes to enhance compiler optimizations for code that uses MPI. As MPI is usually used as a dynamically linked library, the compiler is not able to automatically infer certain function attributes like nofree, which signals that no memory is deallocated in this function. Therefore, we implemented an LLVM compiler pass that annotates the used MPI functions with suitable attributes when compiling the user application. We manually derived applicable attributes based on the semantics described in the MPI standard, so that this approach is applicable to all MPI implementations.

We showcase different cases where this additional annotations impact the code generated by the compiler for the MiniApps from the Exascale Proxy Applications Project. The addition of MPI function annotations allows for a variety of compiler optimizations like reducing unnecessary memory accesses, optimizing register usage, and streamlining control flow.

The code of our annotation pass is available on GitHub: https://github.com/AdrSchm/mpi-attributes-pass.

Typ des Eintrags: Konferenzveröffentlichung
Erschienen: 2024
Autor(en): Jammer, Tim ; Schmidt, Adrian ; Bischof, Christian
Art des Eintrags: Bibliographie
Titel: Annotation of Compiler attributes for MPI Functions
Sprache: Englisch
Publikationsjahr: 25 September 2024
Verlag: Springer
Buchtitel: Recent Advances in the Message Passing Interface
Reihe: Lecture Notes in Computer Science
Band einer Reihe: 15267
Veranstaltungstitel: 31st European MPI Users' Group Meeting (EUROMPI’24)
Veranstaltungsort: Perth, Australia
Veranstaltungsdatum: 25.09.2024 - 27.09.2024
DOI: 10.1007/978-3-031-73370-3_2
Kurzbeschreibung (Abstract):

This paper explores the use of LLVM IR function and parameter attributes to enhance compiler optimizations for code that uses MPI. As MPI is usually used as a dynamically linked library, the compiler is not able to automatically infer certain function attributes like nofree, which signals that no memory is deallocated in this function. Therefore, we implemented an LLVM compiler pass that annotates the used MPI functions with suitable attributes when compiling the user application. We manually derived applicable attributes based on the semantics described in the MPI standard, so that this approach is applicable to all MPI implementations.

We showcase different cases where this additional annotations impact the code generated by the compiler for the MiniApps from the Exascale Proxy Applications Project. The addition of MPI function annotations allows for a variety of compiler optimizations like reducing unnecessary memory accesses, optimizing register usage, and streamlining control flow.

The code of our annotation pass is available on GitHub: https://github.com/AdrSchm/mpi-attributes-pass.

Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
20 Fachbereich Informatik > Scientific Computing
Hinterlegungsdatum: 23 Jan 2025 11:48
Letzte Änderung: 23 Jan 2025 11:48
PPN:
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