HPC-Software-Ökosystem
Die Bereitstellung von Software wie geeigneten Simulationsprogrammen aber auch Komponenten wie optimierten numerischen Bibliotheken sowie Softwareentwicklungstools wie sequentiellen und parallelen Debuggern, Werkzeugen zur Performanceanalyse und allgemeinen Werkzeugen sind essentiell für die effiziente Nutzung von HPC-Ressourcen.
Bei der Anschaffung von Software sind mehrere Punkte zu bedenken:
1. Ermittlung des Softwarebedarfes: Initial und auch periodisch wiederholt erhebt HPC.NRW die benötigten Softwarepakete und Softwaretypen. Dabei ist die Perspektive entscheidend, da sich die Sichten von Rechenzentrumsbetrieb, HPC-Support und den Forschern selbst bezüglich benötigter oder gewünschter Software durchaus stark unterscheiden können.
Wir verfolgen zu diesem Zweck mehrere Erhebungsmechanismen:
- Bedarfsangaben der Support-Mitarbeiter: Die Hauptinformationen über durch Nutzer benötigte Software sind die gegenüber HPC-Support-Mitarbeitern in Beratungsgesrächen und Anfragen geäußerten Bedarfe. Durch die Vertrautheit des Supportes mit dem Projekt des Nutzers können dann auch direkt entweder schon verfügbare Alternativen oder möglicherweise besser geeignete Programme und Werkzeuge vorgeschlagen oder für den Zweck des Nutzers evaluiert werden. Die Bedarfe werden regelmäßig durch HPC.NRW durch Umfragen bei den HPC-Support-Mitarbeitern erhoben.
- Bedarfsangaben der Rechenzentern: Durch regelmäßige Umfragen bei den beteiligten Rechenzentren erhebt HPC.NRW den Bedarf von Software bei den beteiligten Rechenzentren. Zusätzlich können hier falls verfügbar Software-Bedarfsangaben aus Rechenzeitanträgen mit einfließen.
- Kurzumfragen bei der gesamten Nutzerschaft: Um eine möglicherweise verzerrte Wahrnehmung der Softwarebedarfs zu verhindern, unterstützt HPC.NRW die beteiligten Rechenzentren bei Kurzumfragen zum Softwarebedarf bei allen Nutzern der Systeme. Diese Umfragen sind absichtlich extrem kurz um eine möglichst hohe Teilnahmewahrscheinlichkeit zu erreichen.
- Bedarfsumfrage bei den Nutzern im Rahmen der großen Nutzerbefragung: Die regelmäßige große Nutzerbefragung wird zusätzlich dazu benutzt um ausführlichere Informationen zur benutzten Software, gewünschten/benötigten Software und Softwareproblemen einzusammeln, die dann mit weiteren Antworten in der Nutzerbefragung korreliert werden können. Die Auswertung der Nutzerbefragung 2020 ist unter https://hpc.dh.nrw/nutzerbefragung-1 zu finden.
2. Evaluierung möglicher Alternativen: Falls es zum benötigten Zweck mehrere geeignete Softwarepakete existieren sollten, werden diese in Zusammenarbeit mit den Rechenzentren oder Nutzern evaluiert und wenn sinnvoll Alternativen vorgeschlagen.
3. Verfügbarmachung einer Software: Bei der Verfügbarmachung von Software wird ein Augenmerk auf die Verwendung von frei verfügbaren Paketen gelegt und bei kommerzieller Software mindestens eine Dual-Vendor-Strategie verfolgt und einen Vendor-Lock-in zu vermeiden. Vorgeschlagegen Anschaffung werden in den regelmäßigen Videokonferenzen diskutiert und es wird insbesondere versucht Bedarfe zu bündeln um über Lizenzpakete für mehrere oder gar alle Standorte kosteneffizientere Anschaffungen zu erreichen. Zusätzlich unterstützt HPC.NRW weitere Initiativen zur landesweiten Softwareanschaffung wie zum Beispiel die Landeslizenz für MAG Kompiler und bibliotheken.
4. Softwareinstallation und -pflege: Die lokale Installation von Softwarepaketen und Problembehandlung wird durch das Kompetenznetzwerk für Betriebsfragen direkt unterstützt.
Über HPC.NRW bereits erfolgreich verhandelte Landeslizenzen und damit über HPC.NRW inkl. Support für alle Standorte verfügbar sind:
- Intel Parallel Studio XE
- Totalview HPC Debugger
- PGI Compiler
- ARM Software (DDT, MAP, Performance Reports)
Falls nur eine begrenzte Lizenzanzahl in einer Landeslizenz verfügbar ist, wird diese durch gemeinsame und redundant betriebene Lizenzserver verwaltet, sodass eine möglichst große Anzahl an Lizenztoken jedem Standort zur Verfügung steht um möglichst große HPC-Jobs mit dem Programmen oder Werkzeugen ausführen zu können. Um die Wahrscheinlichkeit von Konflikten zu reduzieren sind jedem Standort eine gewisse ANzahl von Lizenztoken garantiert.
Außerdem konnten auch schon weitere Anschaffungen einzelner Standorte oder kleinerer Gruppen von Standorten über HPC.NRW erfolgreich durchgeführt werden.
Die Anschaffung von Simulationsprogrammen stellt eine zusätzliche Herausforderung dar. Zum einen sind die Lizenzmodelle oftmals auf Arbeitsgruppen statt auf Rechenzentren ausgelegt und eine Anschaffung für alle Nutzer eines Rechenzentrums vom Softwarehersteller nicht vorgesehen. Zum anderen sind Simulationsprogramme natürlich sehr spezifisch für einzelne Forschungsrichtungen. HPC.NRW versucht diese Probleme auf zwei Wegen zu lösen bzw. zu umgehen:
- Verhandlung mit Softwareherstellern, die ein Arbeitsgruppenmodell verfolgen, um die Umstellung/Erweiterung auf ein Rechenzentrumsmodell oder zumindest die Einführung kostenfreier Support- und Wartungslizenzen zu erreichen. Diese Support- und Wartungslizenzen würden es einem Rechenzentrum erlauben die Software systemweit zu installieren und zu warten/optimieren wobei sie nur für Nutzer mit Arbeitsgruppenlizenzen zugänglich gemacht wird. Erfolgreich konnte HPC.NRW einen Hersteller eines in der Festkörperphysik sehr weit verbreiteten Simulationsprogrammes bereits dazu bewegen kostenfreie Support- und Wartungslizenzen einzuführen.
- Bündelung von Bedarfen auf einzelne Standorte durch Verbesserung der Mobilität der Nutzer und Dokumentation.
- Angebot von Migrationshilfe von kommerziellen Programmen zu kostenfreien Alternativen in enger Zusammenarbeit mit dem HPC-Support und den Fachberatungen. Ein Beispiel für eine soclhe Aktivität ist die ”International Winter School on Electronic Structure Calculations 2020” (https://pc2.de/go/winterschool2020), die mit Unterstützung von HPC.NRW in Paderborn durchgeführt worden ist. Kernidee dieser einwöchigen Winterschule war die Einführung von Nutzern aus dem Bereich der Quantenchemie und Festkörperphysik in Anwendungen aus dem Bereich, u.a. ORCA und CP2K. Dabei kann das ORCA als kostenfreie Alternative zu kommerziellen Prorgammen wie Gaussian oder Turbomole und CP2K als kostenfreie Alternative zu kommerziellen Programmen wie FHI-aims oder VASP gesehen werden kann.
Die Softwareumgebung eines HPC Clusters ist neben der Hardware einer der wichtigstes Aspekte eines HPC Systems. Um die Mobilität von Nutzern zwischen Systemen und insbesondere zwischen verschiedenen Ebene der HPC-Versorgungspyramide (zwischen Arbeitsgruppenclustern, Tier-3 Systemen, Tier-2 Systemen, Tier-0/1 Systemen) zu verbessern und Nutzer damit zu befähigen höhere Ebenen effizient zu Nutzen, ist eine Harmonisierung der Softwareumgebung nahezu notwendige Voraussetzung. Das Kompetenznetzwerk HPC.NRW verfolgt in Bezug auf die Harmonisierung einen impliziten Weg: Durch die Bereitstellung von Best-Practice Guides und anderen Hilfestellungen für den HPC-Betrieb soll eine ”schleichende” Harmonisierung erreicht werden, die jedoch noch genügend Flexibilität bietet um lokale Besonderheiten wie zum Beispiel Anforderungen spezieller Hardware oder spezieller Nutzergruppen mit einfließen zu lassen.
Der HPC-Sicherheitsvorfall im Frühjahr 2020 von dem Systeme weltweit und auch Systeme in NRW betroffen waren hat gezeigt, dass Best-Practice Guides vor allem im Bereich der Sicherheit von HPC-Systemen notwendig und auch außerhalb von NRW dankend angenommen werden.
Die best-Practice Guides werden in HPC.NRW zuerst intern entwickelt und sobald sie einen gewissen Reifezustand erreicht haben über das weltweit zugreifbare und editierbare HPC-Wiki (https://hpc-wiki.info/hpc/HPC_Wiki) im Unterbereich ”HPC-Admin” veröffentlicht. Dieser öffentliche Weg erlaubt die weltweite Kollaboration und Weiterentwicklung der Guides.
Eine notwendige Voraussetzung für die Bündelung von Softwarebedarfen oder Harmonisierung ist eine zentrumsübergreifende Sicht auf das HPC-Software-Ökosystem. Dabei sind mehrere Aspekte relevant:
- Welche Software ist verfügbar/installiert?
- Welche Beratungskompetenz ist für die Software bzw. das Fachgebiet am Standort vorhanden?
- Welche Software wird überhaupt von den Forschern genutzt?
Im Kompetenznetzwerk HPC.NRW versuchen wir diese Fragen durch die Kombination mehrere Methoden zu beantworten:
- Zur Frage welche Software installiert/verfügbar ist haben wir ein Werkzeug entwickelt, das Umgebungsmodule und optional zusätzliche Softwareordner, die auf einem HPC-System zur Verfügung stehen, sammelt und zentral zur Analyse ablegt. Die Auswertung im Sommer 2020 hat zum Beispiel gezeigt, dass von dem rund 700 gefundenen verschiedenen Softwarepaketen durchschnittlich 120 installiert sind und je nach System bis zu 300 verfügbar sind. Die Ergebnisse der Auswertung nach der Verbreitung einer Software geben wichtige Hinweise darauf für welche Programme der Support ausgebaut werden sollte. Durch die Modulauswertung konnten auch repräsentative Informationen über die Verwendung von Namenkonventionen in dem Umgebungsmodulen gesammelt werden, die auch Eingang in die Best-Practice Guides gefunden haben um eine einfacherer Harmonisierung zu ermöglichen.
- von uns entwickelte Online-Suchfunktion erlaubt es in den gesammelten Modulinformationen nach Standorten zu suchen, die eine bestimmte Anwendung installiert haben. Daurch können Nutzer direkt zu diesem Standort geleitet werden falls die Software lokal zum Beispiel aus Kostengründen nicht verfügbar gemacht werden kann. Andererseits können so direkt Standorte identifiziert werden die potentiell Erfahrung mit einer spezifischen Software haben und so im Rahmen des Kompetenznetzwerks bei Support-Fällen direkt angesprochen werden.
- Neben der schon erwähnten impliziten Suche nach Beratungskompetenz über die Verfügbarkeit der Software an den Standorten haben wir eine Liste der jeweiligen HPC-Kompetenzen der Support-Mitarbeiter erstellt, die intern zur Verfügung steht.
- Die Erfassung der Nutzung von Software auf HPC-Systemen ist eine herausfordernde Aufgabe. Wichtige Kriterien für eine sinnvolle Lösung dieses Problems sind:
- Eine zuverlässige Funktionsweise, die auch mit verschiedenen Containertechnologien, die im HPC-Umfeld Einzug halten, kompatibel ist.
- Eine für den Nutzer transparente Umsetzung, die HPC-Jobs in der Leistung nicht beeinflusst und auch keine zusätzlichen befehle in Job-Skripts erfordert.
- Eine datenschutzkonforme Umsetzung nach Möglichkeit mit Opt-Out und lokaler Verarbeitung der möglicherweise personenbeziehbaren Daten.
- Eine möglichst zuverlässige und automatische Klassifikation von Programmen, sodass ein laufender Prozess, die CPU-Zeit konsumiert, einer Software zugeordnet werden kann.
- Eine transparente Integration in existierende Clustersysteme mit verschiedenen Schedulern und Betriebskonzepten.
- Geladene Umgebungsmodule und benutzt dynamisch geladene Bibliotheken werden auch mit erfasst.
- Die Programmbinaries stehen wenn gewünscht zur späteren manuellen oder automatischen Analyse bereit, damit nach Möglichkeit detektiert werden kann ob das Programm richtig, sprich mit den passenden Befehlssatzerweiterungen der CPU kompiliert worden ist.
Nach detaillierter Evaluation konnte leider keines der existierenden Lösungen all diese Kriterien erfüllen und ein Neues, möglichst schlankes System wurde in HPC.NRW neu entwickelt. Es umfasst bereits alle notwendigen Features und befindet sich seit Frühjahr 2020 im Testbetrieb auf ausgewählten HPC-Systemen. Eine automatische Analyse der in Programbinaries benutzten Befehlssatzerweiterungen, z.B. wenn nur AVX2 auf einer AVX512-fähigen CPU benutzt wird, ist implementiert und im Testbetrieb. Eine Integration der gewonnen Informationen in das System zum Job-spezifischen Monitoring und das automatische Empfehlungssystem für HPC-Support und Nutzer, das in HPC.NRW entwickelt wird, ist geplant.