Verifying Self-consistent MPI Performance Guidelines
Verifying Self-consistent MPI Performance Guidelines
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Message-passing interface (MPI),
High-performance computing,
Software and system benchmarking,
Performance guidelines,
Performance analysis,
Self-consistent performance guidelines
Das Message-Passing Interface (MPI) ist die am weitesten verbreitete Schnittstelle für Anwendungsentwicklung im Bereich des Hochleistungsrechnens (HPC). MPI ist eine paradigmatische Schnittstelle, und jeder neue Ansatz muss mindestens so leistungsfähig, vollständig und exibel wie MPI sein. MPI Implementierungen erreichen in vielen Fällen für viele Systeme eine hohe bzw. ausreichende Effzienz (Systemnutzung), und unterstützen in hohem Maße die Portierbarkeit von Anwendungen. Weiters haben MPI Bibliotheken typischerweise auch Bereiche, die untereinander eine inkonsistente Leistung aufweisen, zB. ähnliche Funktionen mit sehr unterschiedlicher Leistung, oder schwer nachvollziehbare Leistungssprünge innerhalb der gleichen Operation für unterschiedliche Problemgrößen. Dies beeinflusst negativ die Leistungsportabilität ("performance portability") von Anwendungen. Insbesonders verleitet eine solche Inkonsistenz manchmal den Nutzer, spezielle Abhilfekonstruktionen händisch zu implementieren, die zwar für ein gegebenes System und MPI Bibliothek produktiv, für andere Systeme und Implementierungen aber ausgeprägt negative Auswirkungen haben können. Das hier vorgeschlagene Projekt zielt darauf ab, solche Probleme automatisch zu identifizieren und trägt damit indirekt zur Verbessung der Qualiät von MPI Implementierungen bei. Mit einem neuen, statistisch soliden, fundierten MPI Benchmark und automatischen Prozederen zur Datenanalyse, basierend auf sogenannten selbst- konsistenten Leistungsrichtlinien ("self-consistent performance guidelines"), die sich aus der MPI Spezifikation ableiten lassen, können für jede beliebige MPI Implementierung automatisch Bereiche erkannt werden, wo die Leistungsprotabilität gefährdet sein kann. Dies wird durch die Formulierung eines möglichst vollständigen Satzes von selbst-konsistenten Leistungserwartungen erreicht, der Teile der MPI Spezifikation in Relation zueinander setzen und dadurch die Suche nach problematischen Bereichen vereinfachen und steuern kann. Da es in der "MPI community" keine flächendeckenden und weitgehend akzeptierten Benchmarks gibt, und dies ein großer und bekannter Mangel ist, zielt das Projekt ferner darauf ab, ein solches Benchmark (und damit die Gruppe der TU Wien) zu etablieren. Dies ist ein ambitioniertes und längerfristiges Unterfangen. Die Entwicklung von neuen Algorithmen zur allgemeinen Verbesserung von MPI Implementierungen soll als natürliche Ergänzung des Projektes angesehen werden. Das Projekt basiert auf der anerkannten Arbeit der Antragssteller über die letzten Jahre und wird diese an der TU Wien konsolidieren.
Parallel- und Hochleistungsrechner werden häufig mit Hilfe von geeigneten Programmierschnittstellen programmiert, die konventionelle, sequentielle Sprachen erweitern mit Konstrukten und Algorithmen für verschiedene Arten von Datenkommunikation. Solche Schnittstellen sollen die Aufgabe der Entwickler erleichtern, in denen sie ihm geeignete Denkwerkzeuge zur Verfügung stellen, und gleichzeitig die effiziente Nutzung von den gegebenen, oft sehr großen und teuren Parallelrechnersystemen, ermöglichen. Erfüllen die Schnittstellen solche Anforderungen nicht, werden Ressourcen in zweierlei Hinsichten verschwendet: a) Zeit, um zu Lösungen zu kommen, wenn das gegebene System nicht so ausgenutzt wird, wie es möglich erscheint, b) Aufwand von Seiten des Programmierers, der möglicherweise versucht, selber das zu erreichen, was die Schnittstelle nicht leistet, aber leisten sollte. Das abgeschlossene Projekt Verifying Self-consistent MPI Performance Guidelines baute auf eine Idee auf, die möglicherweise zu besseren und überprüfbaren Erfüllung von solchen Erwartungen führen kann, spezifisch für die weitverbreitete Schnittstelle MPI (das Message-Passing Interface). Diese Idee besteht darin, Erwartungen überprüfbar zu formulieren als Relationen zwischen verschiedenen Arten innerhalb der Schnittstelle, die gleiche Funktionalität auszudrücken; als Beispiel einer solchen Performance Guideline kann erwartet werden, dass eine spezielle Operation nicht langsamer ist als eine allgemeinere Operation, wenn diese für den spezialisierten Zweck eingesetzt wird. Wenn eine ganze Reihe von solchen Erwartungen erfüllt sind, gewährleistet dies a) konsistente Leistung der Operationen der Schnittstelle, und b) dass Verbesserungen von speziellen Operationen seitens der Programmierer nicht notwendig sind, weil diese zu keinen Verbesserungen mehr führen können. Um die Leistung der Operationen genau beurteilen zu können, in besonderem um entscheiden zu können, ob eine Operation oder Implementierung wirklich besser ist als eine andere, werden offensichtlich verlässliche, genaue und reproduzierbare Benchmarks benötigt. Dies ist selbst für MPI ein überraschend intrikates Problem. Das Projekt hat bisher weniger beachtete experimentelle Faktoren identifiziert und zu Lösungen beigetragen, auch in Form von veröffentlichter Software. Mittels neuen Benchmarking Verfahren sind Performance Guidelines für die sogenannten kollektiven Operationen von MPI formuliert und ausgewertet worden auf verschiedene Systeme, oft mit dem Ergebnis, dass viele Erwartungen in der Tat verletzt werden. Es liegt aber dann nahe, bei solchen Verletzungen die Vergleichsoperation stattdessen zu verwenden, und diese Substitution automatisch durchzuführen. Auch dieser Ansatz wurde im Projekt verfolgt, und es wurde gezeigt, dass Performance Guidelines mit einem geeigneten Benchmarking-Verfahren für automatische Leistungsverbesserung verwendet werden können. MPI ist eine sehr reichhaltige Schnittstelle mit vielen, nicht immer offensichtlichen oder beachteten Querverbindungen, die ausgenutzt werden können um Leistungserwartungen zu formalisieren. Das Projekt hat eine Reihe von solchen Erwartungen neu formalisiert für Teile von MPI wo Guidelines weniger offensichtlich sind, zum Beispiel für Kommunikation mit strukturierten Daten mittels sogenannten benutzerdefinierten Datentypen, für kollektive Kommunikation über dünne Nachbarschaften, und für kollektive Kommunikation, wo unterschiedliche Datengrößen zwischen Prozessen ausgetauscht werden können. Besonders für das letzte Problemfeld, wo die algorithmischen Probleme für sich schwierig sind, wurden neue Algorithmen vorgeschlagen und implementiert, und es konnte gezeigt werden, dass diese die Erwartungen viel besser erfüllen können, was bekannte Verfahren nicht konnten.
- Technische Universität Wien - 100%
- Peter Sanders, Universität Karlsruhe - Deutschland
- Thomas Worsch, Universität Karlsruhe - Deutschland
- Torsten Hoefler, Eidgenössische Technische Hochschule Zürich - Schweiz
- Rajeev Thakur, Argonne National Laboratory - Vereinigte Staaten von Amerika
- Robert A. Van De Geijn, The University of Texas at Austin - Vereinigte Staaten von Amerika
- William D Gropp, University of Illinois - Vereinigte Staaten von Amerika
Research Output
- 205 Zitationen
- 17 Publikationen
-
2016
Titel Reproducible MPI Benchmarking is Still Not as Easy as You Think DOI 10.1109/tpds.2016.2539167 Typ Journal Article Autor Hunold S Journal IEEE Transactions on Parallel and Distributed Systems Seiten 3617-3630 -
2016
Titel On the Expected and Observed Communication Performance with MPI Derived Datatypes DOI 10.1145/2966884.2966905 Typ Conference Proceeding Abstract Autor Carpen-Amarie A Seiten 108-120 -
2016
Titel Automatic Verification of Self-consistent MPI Performance Guidelines DOI 10.1007/978-3-319-43659-3_32 Typ Book Chapter Autor Hunold S Verlag Springer Nature Seiten 433-446 -
2015
Titel Specification Guideline Violations by MPI_Dims_create DOI 10.1145/2802658.2802677 Typ Conference Proceeding Abstract Autor Träff J Seiten 1-2 -
2015
Titel Efficient, Optimal MPI Datatype Reconstruction for Vector and Index Types DOI 10.1145/2802658.2802671 Typ Conference Proceeding Abstract Autor Kalany M Seiten 1-10 -
2017
Titel On expected and observed communication performance with MPI derived datatypes DOI 10.1016/j.parco.2017.08.006 Typ Journal Article Autor Carpen-Amarie A Journal Parallel Computing Seiten 98-117 -
2017
Titel Micro-benchmarking MPI Neighborhood Collective Operations DOI 10.1007/978-3-319-64203-1_5 Typ Book Chapter Autor Lübbe F Verlag Springer Nature Seiten 65-78 -
2017
Titel Practical, linear-time, fully distributed algorithms for irregular gather and scatter DOI 10.1145/3127024.3127025 Typ Conference Proceeding Abstract Autor Träff J Seiten 1-10 Link Publikation -
2016
Titel Polynomial-time Construction of Optimal MPI Derived Datatype Trees DOI 10.1109/ipdps.2016.13 Typ Conference Proceeding Abstract Autor Ganian R Seiten 638-647 -
2018
Titel Autotuning MPI Collectives using Performance Guidelines DOI 10.1145/3149457.3149461 Typ Conference Proceeding Abstract Autor Hunold S Seiten 64-74 -
2014
Titel Implementing a classic DOI 10.1145/2597652.2597662 Typ Conference Proceeding Abstract Autor Träff J Seiten 135-144 -
2014
Titel Optimal MPI Datatype Normalization for Vector and Index-block Types DOI 10.1145/2642769.2642771 Typ Conference Proceeding Abstract Autor Träff J Seiten 33-38 -
2014
Titel Reproducible MPI Micro-Benchmarking Isn't As Easy As You Think DOI 10.1145/2642769.2642785 Typ Conference Proceeding Abstract Autor Hunold S Seiten 69-76 -
2014
Titel MPI Collectives and Datatypes for Hierarchical All-to-all Communication DOI 10.1145/2642769.2642770 Typ Conference Proceeding Abstract Autor Träff J Seiten 27-32 -
2014
Titel Zero-copy, Hierarchical Gather is not possible with MPI Datatypes and Collectives DOI 10.1145/2642769.2642772 Typ Conference Proceeding Abstract Autor Träff J Seiten 39-44 -
2015
Titel Isomorphic, Sparse MPI-like Collective Communication Operations for Parallel Stencil Computations DOI 10.1145/2802658.2802663 Typ Conference Proceeding Abstract Autor Träff J Seiten 1-10 -
2018
Titel Practical, distributed, low overhead algorithms for irregular gather and scatter collectives DOI 10.1016/j.parco.2018.04.003 Typ Journal Article Autor Träff J Journal Parallel Computing Seiten 100-117