Performanceanalyse und ‑beratung
Das englische High Performance Computing drückt es direkt aus: es geht um die Lösung technisch-wissenschaftlicher Probleme unter Einsatz von Systemen der hohen und höchsten Leistung (englisch: Performance). Die HPC-Methodik ist das strukturierte und methodische Vorgehen in der Ausführung dieser Probleme auf HPC-Systemen und die Messung und Optimierung der erreichten Leistung.
Systemumgebung
CLAIX bietet eine umfangreiche Liste von Werkzeugen für die Softwareentwicklung. Über eine Modulumgebung können die Softwarewerkzeuge in verschiedenen Versionen verfügbar gemacht werden.
- Compiler für gängige Programmiersprachen übersetzen den Programmtext in ausführbaren Maschinencode. Ein wichtiger Schritt dabei ist die zielarchitekturspezifische Optimierung. Dabei bietet CLAIX aktuelle Compiler der Open Source Community (GNU, LLVM-Projekt) ebenso an wie kommerzielle Compiler (Intel, NVIDIA), und zwar jeweils in mehreren aktuellen Versionen, um auch die neuesten Funktionen von Programmiermodellen wir OpenMP zu unterstützen.
- Programmierbibliotheken wie MPI und Frameworks wie pytorch ermöglichen die Parallelprogrammierung über viele Rechenknoten im Cluster hinweg bzw. die effiziente Ausführung von Modellen der künstlichen Intelligenz wie zum Beispiel neuronalen Netzen auf einer oder mehreren GPUs. Diese Werkzeuge bietet CLAIX direkt installiert beziehungsweise via Container verfügbar an.
- Debugger ermöglichen die Fehlersuche in Programmen, zum Beispiel durch die Inspektion von Variablenwerten in der konkreten Programmausführung. Auch hier bietet CLAIX die Werkzeuge der Open Source Community (GNU) ergänzt um kommerzielle Produkte (TotalView, DDT) an. Von besonderer Bedeutung ist dabei die Unterstützung paralleler Programme, die gegeben ist.
- Weiterhin sind mehrere Werkzeuge der Performanceanalyse (Score-P mit Scalasca und Vampir, Intel Studio) und Korrektheitsanalyse (MUST, Archer) vorhanden. Performanceanalysewerkzeuge untersuchen die Ausführung eines (parallelen) Programms und zeigen das Verhalten auf, so dass Verbesserungsmöglichkeiten entwickelt werden können. Korrektheitswerkzeuge überprüfen die Ausführung eines parallelen Programms auf mögliche Fehler, die speziell in parallelen Programm auftreten können, wie Race Conditions und Deadlocks.
Diese und weitere Werkzeuge finden sich in den Modulkategorien „devel“ für Development, „io“ für Input-Output-Bibliotheken, „perf“ für Performancewerkzeuge und tools für weitere Werkzeuge. Die vorhandene Software und mögliche Lizenzbedingungen sind in unserem Dokumentationsportal IT Center Help aufgeführt und erläutert.
CLAIX bietet eine große Auswahl fertiger Software zur Durchführung technisch-wissenschaftlicher Simulationen, sowohl von Open Source Paketen als auch von kommerziellen Anbietern. Über eine Modulumgebung kann die Software verfügbar gemacht werden. Aus Gründen der Übersichtlichkeit haben wir die Softwarepakete in folgende Kategorien eingeteilt:
- cfd: Computational Fluid Dynamics
- chem: Chemie
- Material: Materialwissenschaften
- math: Mathematik
Die vorhandene Software und mögliche Lizenzbedingungen sind in unserem Dokumentationsportal IT Center Help aufgeführt und erläutert. Dabei umfasst unsere Dokumentation auch eine Vielzahl von konkreten Beispielen zur Nutzung dieser Softwarepakete auf CLAIX.
Performanceanalyse und ‑beratung
Für alle Nutzenden von CLAIX bietet die HPC-Methodenunterstützung Unterstützung in Form von HPC-Expertise, die weit über den Basissupport hinausgeht. Die diesem Angebot zugrundeliegende Idee ist die Unterstützung beim Verständnis und bei der Verbesserung der Performance eines Programms auf CLAIX, sowie der Überprüfung der Korrektheit. Diese Angebote und die darin eingesetzten Werkzeuge sind oftmals direkte Ergebnisse der Forschung und die Herausforderungen der Nutzenden liefern gleichzeitig oftmals neue Impulse für die Forschung.
Das nachfolgende skizzierte Angebot ist kostenlos und wird im Rahmen unserer vorhandenen Kapazitäten erbracht.
Performance Assessment
Nach Absprache mit den Nutzenden identifizieren wir gemeinsam für ihre Anwendung einen passenden Datensatz, für den ein Laufzeitprofil erstellt und verschiedene Metriken berechnet werden.
- Das Laufzeitprofil zeigt auf, in welchen Teilen der Anwendung wie viel Zeit verbracht wird, und wie sich die Anwendung auf CLAIX verhält. Oftmals wird dabei bereits eine Reihe von Effekten sichtbar, welche die Ausführungsgeschwindigkeit beziehungsweise Skalierung einer parallelen Anwendung begrenzen. Gemeinsam wird überlegt, wie diese ausgeräumt werden können.
- Die Metriken erlauben die vergleichende Betrachtung der Performance eines Codes über die Zeit, zum Beispiel über verschiedene Versionen oder Generationen von HPC-Systemen hinweg. Die Vorlage ist dabei die Reihe von EU Center of Excellence Projekten POP (Performance Optimization and Productivity), an denen die RWTH beteiligt war und ist. Die Metriken sind auf der Webseite von POP (en) beschrieben.
Veranstaltungen, Kurse und Lehre
Alle diese Angebote werden von passenden Aus- und Weiterbildungsveranstaltungen komplementiert, die hier zu finden sind.
Die HPC-Methodenunterstützung erweitert den Service RWTH High Performance Computing primär unter dem Betriebssystem Linux um die Komponenten
- HPC-Programmierumgebung
- Module-basierte Nutzendenumgebung
- Anwendungssoftwarepakete
- Dokumentation
- Support
- Veranstaltungen, Kurse, Lehre
mit der Zielsetzung
- Erhöhung der Nutzendenproduktivität
- Effizientere Ausnutzung der verfügbaren Hardware
- Kontinuierliche Verbesserung und Innovation des Basisdienstes RWTH High Performance Computing