Algorithm Engineering für Prozess Mapping
Algorithm Engineering for Process Mapping
Wissenschaftsdisziplinen
Informatik (40%); Mathematik (60%)
Keywords
-
Process Mapping,
Graph Algorithms,
Algorithms Engineering,
Distributed And Parallel Algorithms
Die Kommunikationsleistung zwischen Anwendungsprozessen in Hochleistungsrechnersystemen hängt von zahlreichen Faktoren ab. Zum Beispiel von der Leistung oder der Topologie des zugrunde liegenden Kommunikationssystems, von der erforderlichen Kommunikation zwischen Prozessen in den gegebenen Anwendungen und der Software sowie den Algorithmen zur Realisierung der entsprechenden Kommunikation. Beispielsweise ist Kommunikation in der Regel schneller, wenn kommunizierende Prozesse auf demselben physikalischen Prozessorknoten liegen, im Vergleich zu dem Fall, in denen sich die Prozesse auf verschiedenen, entfernten, Knoten befinden. Dieser Effekt verstärkt sich auf großen Systemen bei denen Prozessoren in hierarchische Einheiten organisiert sind, die Kommunikationsverbindungen gleicher Qualität aufweisen, z.B. in Inseln, Racks, Knoten, ..., . Wenn nun ein Kommunikationsmuster zwischen Prozessen und eine Beschreibung der Topologie der Hardware gegeben ist, so sucht man also eine Zuweisung von Prozessen zu Prozessoren so dass viel kommunizierende Prozesspaare nah~beieinander~liegen. Das Projekt wendet in erster Linien die Algorithm Engineering Methode auf das Prozessmappingproblem an und verbessert dadurch bekannte Verfahren -- insbesondere für große Rechensysteme und Anwendungen. Es werden zwei zentrale Annahmen getroffen, die typischerweise für moderne Supercomputer und darauf laufenden Anwendungen gültig sind. Erstens, nehmen wir an das die zugrundeliegenden Kommunikationsmuster dünn sind, da nicht alle Prozesse miteinander kommunizieren müssen. Zweitens, nehmen wir an das die untersuchte Hardwaretopologie hierarchisch organisiert ist, und zwar so das Verbindungen auf dem gleichen Level der Hierarchie die gleiche Kommunikationsleistung haben. Die im Projekt entstehenden Algorithmen und Implementierungen werden robuster und flexibler sein, bessere Lösungen berechnen, auf massiv parallelen Maschinen skalieren, und in der Lage sein Instanzen zu bearbeiten, die vorher nicht bearbeitet werden konnten. Insgesamt werden wir deutlich bessere Algorithmen für Prozessmappingprobleme sowie für dünn besetzte quadratische Zuweisungsprobleme entwickeln. Die erfolgreichsten Implementierungen werden als einfach zu benutzende Open-Source Software zur Verfügung gestellt.
Moderne Hochleistungsrechnensysteme sind stark inhomogen aufgebaut, selbst wenn die einzelnen Prozessor-kerne alle gleich aussehen: die Zugriffszeiten auf den Haupt- und Zwischenspeicher sind stark davon abhängig, welche Teile im Speicher von welchem Prozessor-kern adressiert werden, und insbesondere auch davon, wie und wie viele Prozessoren überhaupt gleichzeitig arbeiten. Ebenso unterscheiden sich die Kommunikationszeiten zwischen den Prozessoren, da diese vom Aufbau des Kommunikationsnetzwerk und der Kommunikationsmuster der parallelen Anwendungen abhängen. Das Projekt hatte als Ziel, Lastunterschiede bei Kommunikationsoperationen zu untersuchen und diese ggf. auszugleichen, insbesonders für hoch-parallelisierte Anwendungen auf großen HPC-Systemen. Für die Entwicklung dieser Anwendungen wird typischerweise die Kommunikationsschnittstelle MPI (das "Message-Passing Interface") verwendet, welche eine Anzahl von Möglichkeiten bietet, das Kommunikationsnetzwerk besser und strukturierter zu nutzen, z.B. können Prozesse in mehrere, kleinere Gruppen aufgeteilt werden, um diese dann an vorhandene Prozessoren zuzuordnen. Zu Projektbeginn wurde dieses traditionelle Zuordnungsproblem von Prozessen auf Ressourcen untersucht. Dafür wurden mehrere Heuristiken für bestimmte, sogenannte kartesische Kommunikationsmuster vorgeschlagen. Heuristiken waren nötig, da es sich um schwierige Optimierungsprobleme handelt, für die eine bestmögliche Lösung oft nicht in praktikabler Zeit gefunden werden kann. Um nachträglich die Güte der Lösungen in der Praxis zu evaluieren, wurde ein Analysewerkzeug ("Profiler") entwickelt. Mit diesem Werkzeug war es möglich, die Kommunikationlast in parallelen Anwendungen für einzelne Prozessgruppen zu analysieren. In der zweiten Hälfte des Projekt wurde das gleichzeitige Ausführen mehrerer paralleler Anwendungen auf HPC-Systemen untersucht. Es zeigt sich, dass, wenn die Rechenressourcen (Kerne) effizient zwischen den verschiedenen Anwendungen aufgeteilt sind, sich die Systemauslastung erhöhen und die Gesamtlaufzeit der Anwendungen reduziert werden kann. Diese Ergebnisse bilden eine gute Grundlage, um in weiterer Folge, die automatisierte Auswahl und Anpassung von gleichzeitig laufenden Anwendungen auf HPC-Systeme zu untersuchen und zu ermöglichen.
- Technische Universität Wien - 100%
- Henning Meyerhenke, Karlsruhe Institue for Technology - Deutschland
- Mathias J. Krause, Universität Karlsruhe - Deutschland
- Peter Sanders, Universität Karlsruhe - Deutschland
- Torsten Hoefler, Eidgenössische Technische Hochschule Zürich - Schweiz
- William D Gropp, University of Illinois - Vereinigte Staaten von Amerika
Research Output
- 26 Zitationen
- 19 Publikationen
- 1 Wissenschaftliche Auszeichnungen
-
2024
Titel Exploring Mapping Strategies forCo-allocated HPC Applications; In: Euro-Par 2023: Parallel Processing Workshops - Euro-Par 2023 International Workshops, Limassol, Cyprus, August 28 - September 1, 2023, Revised Selected Papers, Part II DOI 10.1007/978-3-031-48803-0_31 Typ Book Chapter Verlag Springer Nature Switzerland -
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 Improved Parallel Application Performance and Makespan by Colocation and Topology-aware Process Mapping DOI 10.1109/ccgrid59990.2024.00023 Typ Conference Proceeding Abstract Autor Hunold S Seiten 119-124 -
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 -
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 -
2021
Titel MPI collective communication through a single set of interfaces: A case for orthogonality DOI 10.1016/j.parco.2021.102826 Typ Journal Article Autor Träff J Journal Parallel Computing Seiten 102826 Link Publikation -
2020
Titel Better Process Mapping and Sparse Quadratic Assignment DOI 10.1145/3409667 Typ Journal Article Autor Von Kirchbach K Journal Journal of Experimental Algorithmics (JEA) Seiten 1-19 Link Publikation -
2023
Titel Library Development with MPI: Attributes, Request Objects, Group Communicator Creation, Local Reductions, and Datatypes DOI 10.1145/3615318.3615323 Typ Conference Proceeding Abstract Autor Träff J Seiten 1-10 -
2021
Titel An MPI-based Algorithm for Mapping Complex Networks onto Hierarchical Architectures; In: Euro-Par 2021: Parallel Processing - 27th International Conference on Parallel and Distributed Computing, Lisbon, Portugal, September 1-3, 2021, Proceedings DOI 10.1007/978-3-030-85665-6_11 Typ Book Chapter Verlag Springer International Publishing -
2021
Titel An MPI-based Algorithm for Mapping Complex Networks onto Hierarchical Architectures DOI 10.48550/arxiv.2107.02539 Typ Preprint Autor Predari M Link Publikation -
2019
Titel Scalable Graph Algorithms DOI 10.48550/arxiv.1912.00245 Typ Preprint Autor Schulz C Link Publikation -
2023
Titel Uniform Algorithms for Reduce-scatter and (most) other Collectives for MPI DOI 10.1109/cluster52292.2023.00031 Typ Conference Proceeding Abstract Autor Hunold S Seiten 284-294 -
2023
Titel Using Mixed-Radix Decomposition to Enumerate Computational Resources of Deeply Hierarchical Architectures DOI 10.1145/3624062.3624109 Typ Conference Proceeding Abstract Autor Hunold S Seiten 405-415 -
2020
Titel Efficient Process-to-Node Mapping Algorithms for Stencil Computations DOI 10.48550/arxiv.2005.09521 Typ Preprint Autor Hunold S Link Publikation -
2020
Titel High-Quality Hierarchical Process Mapping DOI 10.48550/arxiv.2001.07134 Typ Preprint Autor Faraj M Link Publikation -
2020
Titel Load-Balanced Bottleneck Objectives in Process Mapping DOI 10.48550/arxiv.2001.09645 Typ Preprint Autor Langguth J Link Publikation -
2020
Titel High-Quality Hierarchical Process Mapping DOI 10.4230/lipics.sea.2020.4 Typ Conference Proceeding Abstract Autor Faraj M Konferenz LIPIcs, Volume 160, SEA 2020 Seiten 4:1 - 4:15 Link Publikation -
2020
Titel Load-Balanced Bottleneck Objectives in Process Mapping DOI 10.5445/ir/1000117914 Typ Other Autor Langguth J Link Publikation -
2020
Titel Efficient Process-to-Node Mapping Algorithms for Stencil Computations DOI 10.1109/cluster49012.2020.00011 Typ Conference Proceeding Abstract Autor Von Kirchbach K Seiten 1-11 Link Publikation
-
2020
Titel Best paper award, IEEE Cluster 2020 conference Typ Poster/abstract prize Bekanntheitsgrad Continental/International