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.

Vereinfachte Darstellung der wichtigsten Systemkomponenten von Carme und deren Verbindungen untereinander.
© Fraunhofer ITWM

Vereinfachte Darstellung der wichtigsten Systemkomponenten von Carme und deren Verbindungen untereinander.

Um HPC-Systeme für NutzerInnen von Methoden des Maschinellen Lernens oder der Datenanalyse attraktiv und nutzbar zu machen, muss man auf HPC-Clustern einen etwas anderen Weg gehen. Dazu verbindet unser Open-Source-Framework Carme, das beste aus zwei Welten: Auf der einen Seite solide und erprobte HPC-Tools – wie z.B. Batch-System und paralleles Dateisystem – und neue Tools auf der anderen Seite – wie Container-Lösungen und Web IDEs.
 
Aus dem Bestreben einer solchen Verbindung ergeben sich mehrere Fragen:
  • Wie verwaltet man die vorhandenen Ressourcen?
  • Wie stellt man den Nutzern/Nutzerinnen die benötigte Software zur Verfügung?
  • Wie skalieren die Anwendungen auf mehreren GPUs?
  • Wie löst man die Herausforderung, Daten zu speichern und kontinuierlich ins Programm zu laden?
  • Wie bringt man User dazu, die Hardware effektiv zu nutzen?
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-Dashboard (für normale Nutzer)
© Fraunhofer ITWM

Das Carme-Dashboard (für normale Nutzer) mit: Statusbar (inklusive Session Timeout und "Logout-Knopf"), System-Nachrichten, Cluster-Auslastung, Job-Status-Nachrichten, Job-Konfiguration mit "Job-Start-Knopf", Liste der laufenden Jobs (mit verschiedenen Entry Points, Job-Informationen und dem "Job-Stop-Knopf") und die zusätzlichen Carme Werkzeuge (Links zur Dokumentation, dem Gruppenchat, dem lokalen Wiki, dem Passwort-Management und der Job Histrory).

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.

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.