Offline- und Online-Autotuning von Parallelen Programmen
Offline and Online Autotuning of Parallel Applications
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Autotuning,
MPI,
Benchmarking,
Reproducibility,
Performance Models
Viele wissenschaftliche Anwendungen, z.B. Klima- oder Erdbebensimulationen, werden auf großen Parallelrechnern ausgeführt, um die Rechenzeit zu verkürzen. Diese Parallelrechner bestehen aus hunderten oder tausenden von Rechnerknoten, wobei jeder dieser Knoten einem normalen Desktop-Computer ähnlich ist. Die meisten dieser parallelen Anwendungen verwenden das Message Passing Interface (MPI) als Schnittstelle für die notwendige Datenkommunikation über das Netzwerk. Aus diesem Grund ist die Laufzeit von Anwendungen stark von der Güte der jeweiligen MPI-Bibliothek abhängig. Deshalb ist es wichtig, die bestmögliche MPI-Bibliothek für einen Rechner zur Verfügung zu stellen. In den letzten zwei Jahrzehnten wurden viele effiziente Algorithmen für MPI entwickelt, welche auch in den entsprechenden MPI-Bibliotheken zu finden sind. Das Problem ist jedoch, dass nicht jeder Algorithmus für jedes Problem geeignet ist. Aus diesem Grund muss man eine MPI-Bibliothek an ein System anpassen. Der Prozess der Optimierung soll natürlich möglichst automatisiert erfolgen. Aus diesem Grund hat unser Projekt das Ziel, die Parameter von MPI-Bibliotheken so zu optimieren, dass für jede Anwendung und Maschine effiziente Einstellungen gesetzt werden können. Das Problem hierbei ist, dass MPI-Bibliotheken mehrere hundert Parameter besitzen, welche diverse Systemeigenschaften und die Algorithmenauswahl steuern. Der Suchraum ist damit viel zu groß, um alle Parameterkombinationen mit vertretbarem Aufwand auszuprobieren. Statistische Methoden können uns helfen, die Anzahl der wichtigen Parameter zu verkleinern. Um die Auswahl der intern verwendeten Algorithmen zu optimieren, werden zusätzlich moderne Verfahren des maschinellen Lernens eingesetzt. Als Gesamtprodukt erhält man dann eine Software, die sich automatisiert an einen Parallelrechner anpasst.
Wissenschaftliche Anwendungen, die auf Supercomputern laufen, basieren fast ausschließlich auf dem Message Passing Interface (MPI), das eine Reihe von Funktionen definiert, mit denen Prozesse miteinander kommunizieren können. Eine spezielle Art der Kommunikation ist die kollektive Kommunikation, bei der eine Gruppe von Prozessen zusammenarbeitet, um eine Aufgabe zu lösen. Zum Beispiel ermöglicht die Broadcast-Operation einem Prozess, Daten an alle anderen Prozesse in der Gruppe zu senden. Das Autotune-Projekt konzentriert sich auf Strategien zur automatischen Optimierung kollektiver MPI-Operationen. Das Tuning einer kollektiven Operation bedeutet, den besten Algorithmus und die besten Parameter für eine gegebene Operation auszuwählen. Wir haben einen Tuning-Prototyp entwickelt, der die Leistung verschiedener Algorithmen und Parameter für kollektive Operationen überwacht und basierend auf der aktuellen Arbeitslast und den Hardwareeigenschaften die beste Variante auswählt. Zwei Hauptprobleme mussten gelöst werden: 1. Wie beeinflussen Prozessankunftsmuster die Leistung kollektiver Operationen? 2. Wie wirkt sich die Synchronisierung von Prozessen mittels Broadcast während des Benchmarkings auf die Benchmark-Ergebnisse aus? Benchmarking unter Berücksichtigung von Ankunftsmustern: Wir optimieren kollektive MPI-Operationen, indem wir Prozessankunftsmuster berücksichtigen. Ungleiche Prozessankunftszeiten kommen in realen Anwendungen häufig vor und beeinflussen die Leistung kollektiver Algorithmen erheblich. Mittels Simulationen und Mikro-Benchmarking zeigen wir, dass die Laufzeit von wurzelbasierten Operationen wie MPI_Reduce stärker als die von nicht-wurzelbasierten Operationen wie MPI_Allreduce durch Ankunftsmuster beeinflusst wird. Wir schlagen eine Methodik vor, um die Algorithmusauswahl zu verbessern, indem der leistungsstärkste Algorithmus für viele unterschiedliche Ankunftsmuster ermittelt wird. Anhand der FT-Anwendung der NAS Parallel Benchmarks zeigen wir, dass die Berücksichtigung von Ankunftsmustern die Leistung von Anwendungen deutlich verbessern kann. Benchmarking mit synchronisierten Uhren: Wir schlagen MPIX_Harmonize vor, eine Erweiterung des MPI-Standards, die Prozesse sowohl räumlich als auch zeitlich synchronisiert und dadurch Ankunftsmuster während des Benchmarkings eliminiert. Dieser Ansatz erreicht eine Synchronisationsgenauigkeit von etwa einer Mikrosekunde und ist damit erheblich besser geeignet als eine Prozesssynchronisation mittels MPI_Barrier. Durch die Eliminierung von Ankunftsmuster-Artefakten gewährleistet MPIX_Harmonize zuverlässigere Benchmarks für MPI-Kollektivoperationen. Unsere Analyse zeigt die Effektivität unseres Ansatzes bei der Erstellung genauer und konsistenter Leistungsbewertungen kollektiver MPI-Operationen. Optimierung von HPC-Anwendungen zur Laufzeit: Wir haben eine Online-Tuning-Strategie für MPI-Kollektivoperationen entwickelt, die kollektive Algorithmen dynamisch basierend auf Leistungsdaten auswählt, die während realer Anwendungsdurchläufe gesammelt werden. Dieser Ansatz eliminiert die Notwendigkeit vorherigen Offline-Benchmarkings und ist damit geeignet, in dynamischen Umgebungen eingesetzt zu werden. Ein zentraler Bestandteil dieser Strategie ist das globale Leistungsmodell, das zur Laufzeit iterativ aktualisiert wird. Das Modell überwacht die Leistung verschiedener Algorithmen und passt deren Auswahlwahrscheinlichkeiten an, um die Effizienz zu optimieren. Wenn beispielsweise ein bestimmter Algorithmus unter bestimmten Bedingungen konstant gut abschneidet, erhöht sich seine Wahrscheinlichkeit, ausgewählt zu werden. Unsere Experimente mit der miniAMR-Anwendung zeigten signifikante Leistungssteigerungen für MPI_Allreduce-Operationen.
- Universität Wien - 50%
- Technische Universität Wien - 50%
- Siegfried Benkner, Universität Wien , assoziierte:r Forschungspartner:in
- Balazs Gerofi, Reserach Center for Computational Science - Japan
- George Bosilca, University of Tennessee - Vereinigte Staaten von Amerika
Research Output
- 29 Zitationen
- 16 Publikationen
- 1 Datasets & Models
- 1 Software
- 1 Wissenschaftliche Auszeichnungen
-
2024
Titel Improved Parallel Application Performance and Makespan by Colocation and Topology-aware Process Mapping DOI 10.1109/ccgrid59990.2024.00023 Typ Conference Proceeding Abstract Autor Vardas I Seiten 119-124 -
2024
Titel MPI Collective Algorithm Selection in the Presence of Process Arrival Patterns DOI 10.1109/cluster59578.2024.00017 Typ Conference Proceeding Abstract Autor Beni M Seiten 108-119 -
2024
Titel Exploring Scalability in C++ Parallel STL Implementations DOI 10.1145/3673038.3673065 Typ Conference Proceeding Abstract Autor Laso R Seiten 284-293 Link Publikation -
2025
Titel Mpisee: Communicator-Centric Profiling of MPI Applications DOI 10.1002/cpe.70158 Typ Journal Article Autor Vardas I Journal Concurrency and Computation: Practice and Experience Link Publikation -
2023
Titel A Novel Triangular Space-Filling Curve for Cache-Oblivious In-Place Transposition of Square Matrices DOI 10.1109/ipdps54959.2023.00045 Typ Conference Proceeding Abstract Autor Alves J Seiten 368-378 -
2022
Titel OMPICollTune: Autotuning MPI Collectives by Incremental Online Learning DOI 10.1109/pmbs56514.2022.00016 Typ Conference Proceeding Abstract Autor Hunold S Seiten 123-128 -
2022
Titel mpisee: MPI Profiling for Communication and Communicator Structure DOI 10.1109/ipdpsw55747.2022.00092 Typ Conference Proceeding Abstract Autor Vardas I Seiten 520-529 -
2022
Titel An Overhead Analysis of MPI Profiling and Tracing Tools DOI 10.1145/3526063.3535353 Typ Conference Proceeding Abstract Autor Hunold S Seiten 5-13 Link Publikation -
2024
Titel Modes, Persistence and Orthogonality: Blowing MPI Up DOI 10.1109/scw63240.2024.00061 Typ Conference Proceeding Abstract Autor Träff J Seiten 404-413 -
2024
Titel Exploring Mapping Strategies for Co-allocated HPC Applications DOI 10.1007/978-3-031-48803-0_31 Typ Book Chapter Autor Vardas I Verlag Springer Nature Seiten 271-276 Link Publikation -
2024
Titel Analysis and prediction of performance variability in large-scale computing systems DOI 10.1007/s11227-024-06040-w Typ Journal Article Autor Salimi Beni M Journal The Journal of Supercomputing Seiten 14978-15005 Link Publikation -
2022
Titel Cache-oblivious Hilbert Curve-based Blocking Scheme for Matrix Transposition DOI 10.1145/3555353 Typ Journal Article Autor Alves J Journal ACM Transactions on Mathematical Software Seiten 1-28 Link Publikation -
2023
Titel A Quantitative Analysis of OpenMP Task Runtime Systems DOI 10.1007/978-3-031-31180-2_1 Typ Book Chapter Autor Hunold S Verlag Springer Nature Seiten 3-18 -
2023
Titel Verifying Performance Guidelines for MPI Collectives at Scale DOI 10.1145/3624062.3625532 Typ Conference Proceeding Abstract Autor Hunold S Seiten 1264-1268 Link Publikation -
2023
Titel Synchronizing MPI Processes in Space and Time DOI 10.1145/3615318.3615325 Typ Conference Proceeding Abstract Autor Schuchart J Seiten 1-11 -
2021
Titel MicroBench Maker: Reproduce, Reuse, Improve DOI 10.1109/pmbs54543.2021.00013 Typ Conference Proceeding Abstract Autor Hunold S Seiten 69-74
-
2022
Link
Titel Dataset: An Overhead Analysis of MPI Profiling and Tracing Tools DOI 10.5281/zenodo.6535636 Typ Database/Collection of data Öffentlich zugänglich Link Link
-
2024
Link
Titel Exploring Scalability in C++ Parallel STL Implementations - ICPP 2024 Artifact DOI 10.5281/zenodo.12187770 Link Link
-
2022
Titel Best Short Paper Award Typ Research prize Bekanntheitsgrad Continental/International