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 |
Optionen (nur für Redakteure)
Redaktionelle Details anzeigen |