Process-Oriented Performance Engineering Service Infrastructure for Scientific Software at German HPC Centers
Final Report Abstract
Im ProPE-Projekt wurden die Anforderungen und Komponenten eines einheitlichen Performance Engineering (PE) Ansatzes auf nationaler Ebene erarbeitet. Die am ProPE Projekt beteiligten Zentren haben Bausteine einer verteilten PE-Support-Infrastruktur entworfen, entwickelt und getestet. Die Ergebnisse können als Blaupause für die Integration der bestehenden HPC-PE-Support-Aktivitäten auf der Tier-2/3-Ebene in die im Jahr 2021 etablierte Infrastruktur für das Nationale Hochleistungsrechnen (NHR) dienen. Das vorgeschlagene Konzept zielt darauf ab, verteiltes HPC-Expert*innenwissen zu nutzen, um einen qualitativ hochwertigen, anwendungsspezifischen Benutzendensupport an allen beteiligten Zentren bereitzustellen. Performance Engineering als wohldefinierter und strukturierter Prozess ist ein wesentliches Ergebnis des ProPE Projektes. Hiermit können die Leistungsengpasse einer Anwendung identifiziert werden, um dann entsprechende Codeänderungen oder andere Maßnahmen zur Verbesserung der Systemnutzung abzuleiten. Dazu wurden die Schritte Leistungsmessung und -analyse, Identifizierung von Leistungsproblemen (Testen von Schwellenwerten oder Leistungsmustern, Erstellen von Leistungsmodellen) und Leistungsoptimierung formalisiert. Tatsächlich sind nur wenige HPC-Anwendende auch in der Lage, alle PE-Aufgaben zu übernehmen. Daher wurde der Umfang von PE in der Praxis breiter gefächert und um zunächst einfach scheinende Aktivitäten wie Workflow-Management, Tuning der Ausfuhrungsmodalitäten und Dokumentation der Systemeinstellungen erweitert. Eine adaquate Benutzerunterstützung im PE erfordert zentrumsübergreifende Aktivitäten, die einen Zugriff auf verteilte Kompetenzen erlauben. Nur so kann der Beratungsbedarf sowohl in der technischen Breite als auch in der wissenschaftlichen Tiefe abgedeckt werden. In ProPE wurde daher ein zentrumsübergreifender Support-Prozess erarbeitet, definiert und mehrfach getestet. Dabei war es wichtig, Fälle zunächst über die lokalen Support-Strukturen zu lösen. Erst wenn hier Hilfe benötigt wird, wird zu einer zentralen (zentrumsubergreifenden) Infrastruktur eskaliert und so der Koordinationsaufwand zwischen den Zentren gering gehalten. Für die konkrete Umsetzung dieses Prozesses wurde im vorliegenden Projekt das vorhandene Ticketing-System OTRS des GA-Netzwerks genutzt und dieses an die speziellen Anforderungen des PE angepasst. Der entwickelte Support-Prozess findet aktuell auch im Rahmen des HPC-Kompetenznetzwerkes des Landes Nordrhein-Westfalen (HPC.NRW) Anwendung. Abgerundet wurde dieser formelle Support-Prozess in ProPE durch ein entsprechendes Kostenmodell, das die Möglichkeit bietet den aufgewendeten Support- und PE-Aufwand mit den Gesamtkosten eines effizienter laufenden Programmes in Bezug zu setzen. Zusätzlich zum Performance Engineering Prozess und den genannten Support-Strukturen wurde der Pika Hardware Performance Monitoring Stack entwickelt und an den beteiligten Zentren etabliert. Um diese Daten effektiv visualisieren, analysieren und Nutzenden zugänglich machen zu können, wurden die Webfrontends Pika und ClusterCockpit entwickelt. Weiterhin wurden gemeinsam für die Performancecharakterisierung relevante Metriken (wie z.B. Hauptspeicherbandbreite, FLOP-Raten, Instruktionsdurchsatz, Vektorisierungsraten) identifiziert und ein Austauschformat dieser Monitoringdaten definiert. Dies legt den zentralen Grundstein zur effizienten Nutzung der Daten im zentrumsübergreifenden Support oder der Klassifizierung von Jobs. Fur die Endnutzenden und die Wissensvermittlung wurden Zielgruppen verschiedener Nutzendenklassen gemäß ihres Vorwissens und ihrer HPC-Kompetenzen definiert. Anhand dieser Kategorisierungen wurden vorhandene HPC-Schulungen in Deutschland zusammengetragen, geordnet und mit dem HPC Skill-Tree des HPC Zertifizierungsforums verglichen. Auf dieser Basis konnte eine erste Version eines HPC-Kurrikulums entworfen werden, die als Blaupause fur Folgearbeiten dient (z.B. im Rahmen von HPC.NRW). Von ProPE Projektpartner*innen werden im ProPE-Projektzeitraum ein Vielzahl von Nutzendenschulungen durchgeführt. Um diese Schulungsaktivitäten zu unterstützen, ein Nachschlagewerk bereit zu stellen und auch eigenständig lernende Nutzende zu unterstützen, wurde das HPC-Wiki initiiert. Als zentrumsunabhängige HPC-Dokumentation dient dies als essenzieller erster Schritt, die HPC-Dokumentationen verschiedener Zentren zusammenzuführen und Synergieeffekte zu nutzen. Angelehnt an den Zielgruppen der HPC-Schulungen, wurden hier Materialien zielgruppenorientiert für verschiedene Nutzenden zur Verfügung gestellt. Durch die konsequente Trennung von zentrumsspezifischen und allgemeinen Informationen und die Anbindung an das DFN/edugain Forschungsnetzwerkes ist diese HPC-Dokumentation nicht nur von den an ProPE beteiligten Zentren nutzbar, sondern wird mittlerweile auch von anderen deutschen HPC-Zentren verwendet. Diese Dokumentation wird im Rahmen von NHR weiterhin gepflegt und kontinuierlich erweitert. Sie kann als Kristallisationspunkt einer gemeinsamen technischen Dokumentation aller NHR-Zentren dienen. Mit der Definition der relevanten Prozesse und der Schaffung der oben genannten Infrastruktur hat das ProPE Projekt somit einen wichtigen Beitrag zum Aufbau einer flächendeckenden PE-Infrastruktur geleistet. Die Herausforderung sehr unterschiedlicher PE-Wissensstande der HPC-Support-Mitarbeitenden, Anwendungswissenschaftler*innen und Entwickelnden wurde explizit mit zielgruppenorientiertem Material und Schulungen angegangen. Die Ergebnisse des ProPE-Projekts bilden die Grundlagen für entsprechende Aktivitäten innerhalb des HPC.NRW Programms und des NHR-Verbunds.
Publications
- LIKWID Monitoring Stack: A flexible framework enabling job specific performance monitoring for the masses. In: Proc. HPCMASPA 2017, the Workshop on Monitoring and Analysis for High Performance Computing Systems Plus Applications, held in conjunction with IEEE Cluster 2017, Honolulu, HI, September 5, 2017
T. Röhl, J. Eitzinger, G. Hager, and G. Wellein
(See online at https://doi.org/10.1109/CLUSTER.2017.115) - ClusterCockpit – A web application for job-specific performance monitoring. In: Proc. HPCMASPA 2019, the Workshop for Monitoring and Analysis for High Performance Computing Systems and Applications, September 23, 2019, Albuquerque, NM, USA. Held in conjunction with IEEE Cluster 2019
J. Eitzinger, T. Gruber, A. Afzal, T. Zeiser, and G. Wellein
(See online at https://doi.org/10.1109/CLUSTER.2019.8891017) - PIKA: Center-Wide and Job-Aware Cluster Monitoring. In: Proc. HPCMASPA 2020, Workshop on Monitoring and Analysis for High Performance Computing Systems Plus Applications, September 14, 2020, Kobe, Japan. Held in conjunction with IEEE Cluster 2020
R. Dietrich, F. Winkler, A. Knüpfer and W. Nagel
(See online at https://doi.org/10.1109/CLUSTER49012.2020.00061)