Carme kombiniert Maschinelles Lernen mit HPC-Back-End

Open-Source Multi-User Softwarestack Carme für interaktives Maschinelles Lernen

Maschinelles Lernen (ML) bildet einen immer größeren Schwerpunkt sowohl im wissenschaftlichen als auch im industriellen Bereich. Im Zuge dessen investieren Unternehmen und Forschung in neue, vor allem GPU-basierte Hardware. Dabei reicht die Spanne von einfachen Desktoprechnern bis hin zu High Performance Computing Clustern. Rechencluster verarbeiten und analysieren große Datenmengen und simulieren hochkomplexe Systeme  – zum Beispiel das menschliche Gehirn – mit Methoden des Maschinellen Lernens.

ML auf HPC-Clustern stellt eine Herausforderung dar. Dabei ist die reine Beschaffung der einzelnen Hardware-Komponenten nur der erste Schritt.

An dieser Stelle setzen wir mit Carme an. Der Name Carme bezeichnet dabei nicht nur einen Jupitermond bzw. ein Cluster von Jupitermonden, sondern steht hier auch für eine Softwarestruktur, mit deren Hilfe mehrere Nutzer die verfügbaren Ressourcen eines Rechenclusters verwalten. Die Grundidee dabei ist, die Welt des Maschinellen Lernens und der Datenanalyse mit der Welt von HPC-Systemen zu kombinieren. Dazu nutzen wir etablierte Werkzeuge des Maschinellen Lernens, der Datenanalyse sowie HPC-Backends.

Carme verbindet die Welt des Maschinellen Lernens und die von HPC-Clustern

Machine Learning ist ein stetig und schnell wachsender Bereich. Diese Agilität stellt Rechenzentren vor die Herausforderung, sehr unterschiedliche Anwendungen für einzelne User bereitzustellen. Dabei sind die Anforderungen stetig neue Software und Bi­b­lio­theken in dem Maße auf HPC-Systemen noch nie vorgekommen. Damit verbunden ist die Tatsache, dass diese Bi­b­lio­theken meist nicht über das Linuxsystem sondern über Python-Umgebungen installiert werden müssen. Es ist auch nicht ungewöhnlich, dass verschiedene Deep Learning Algorithmen sich ausschließende Abhängigkeiten besitzen. In Carme setzen wir zur Lösung dieser Probleme auf Software-Container. Das erleichtert die Wartung für Administatoren und die Verwendbarkeit für Nutzer. Zudem ist die Nutzung von interaktiven Entwicklungsoberflächen im Bereich Deep Learning und Datenanalyse allgegenwärtig. Mit der Integration einer interaktiven Clusternutzung erhalten die Nutzenden die Chance, auf einem komplexen HPC-Cluster bereits bekannte Tools zu verwenden. Das erleichtert den Umstieg und den Einsatz eines Clusters.

Somit reicht es nicht aus Benutzeroberflächen und Bi­b­lio­theken bereit zu stellen. Es muss darüber hinaus eine reibungslose Integration dieser in vorhandene und entstehende Cluster gegeben sein. Eine intuitive Softwareumgebung auf den Clustern erhöht die Benutzerfreundlichkeit für alle NutzerInnen.

Carme-Dashboard
© Fraunhofer ITWM
Das Carme-Dashboard mit: Statusbar (inklusive History, Help, Messages, dem User-Menu und speziellen Tools für Admins), System-Nachrichten, Cluster-Auslastung mit Vorhersage (alle GPUs oder einzelner GPU-Typ), Informationen zu den auswählbaren GPU-Typen, der Job-Konfiguration mit »Job-Start-Knopf«, Liste der laufenden Jobs (mit verschiedenen Entry Points, Job-Informationen, visuellem Laufzeit-Balken und dem »Job-Start-Knopf«) sowie Links zur Dokumentation und dem lokalen Wiki.
Veranschaulichung des Konzepts von Carme
© Fraunhofer ITWM
Veranschaulichung des Konzepts von Carme: durch die Kombination verschiedener KI- und Data Science-Tools mit bewährten HPC-Tools ermöglicht Carme das einfache und schnelle Nutzen vorhandener HPC-Systeme sowohl für die Entwicklung von KI-Anwendungen als auch für Training und Lehre im KI-Umfeld.

Unsere verwendeten Werkzeuge

Container-Images

Durch die Nutzung von Container-Images stellen wir schnell und unkompliziert, die für die unterschiedlichsten Anwendungen nötige Software bereit und gehen dabei auf die Bedürfnisse der User ein, ohne das Betriebssystem der Rechenknoten zu überladen. Da die Software im Image liegt, kann sie darüber verwaltet und aktualisiert werden.

Interaktive Tools

Für die meisten User ist das Arbeiten mit einer grafischen Benutzeroberfläche viel vertrauter als auf der Kommandozeile eines Linuxsystems. Durch webbasierte Frontends, wie Jupyter Notebooks oder Theia, sind Nutzende nicht dazu gezwungen extra Software auf ihrem Betriebssystem zu installieren, um auf das Cluster zuzugreifen.

 

Batchsystem (SLURM)

Mittels des Batchsystems SLURM (Simple Linux Utility for Resource Management) werden die Ressourcen unter den Usern effektiv und unkompliziert aufgeteilt und zugewiesen. Wir haben das Verfahren soweit vereinfacht, dass der Nutzer nur noch die Anzahl an benötigten GPUs und Rechenknoten angeben muss, den Rest übernimmt Carme.

Verteiltes Dateisystem (BeeGFS)

Durch das bei uns im Haus entwickelte parallele Dateisystem BeeGFS können Daten während der laufenden Simulation schnell und effektiv zur Verfügung gestellt werden.

Wartungs- und Monitoringwerkzeuge

Mithilfe von Monitoringwerkzeugen, wie z.B. Zabbix, kann der Administator des Clusters sowohl GPU-, CPU-, Speicher- und Netzwerkauslastung sehen als auch diese Informationen anhand von Diagrammen an den User weitergeben.