Untersuchung eines HPC Clusters für den Hochschulbetrieb
Optimierung der Ressourcen innerhalb eines HPC-Clusters. Im Fokus stehen: GPU-Sharing, Job-Priorisierung und Cloud-Bursting für eine effiziente, skalierbare Nutzung im Hochschulbetrieb.
Ausgangslage
Ab September 2025 wird an der FHNW die Studienrichtung "Artificial Intelligence High Performance Computing" angeboten. Wie der Name vermuten lässt, werden Studierende in dieser Studienrichtung vermehrt mit HPC und somit auch mit dem Slurm-Cluster der FHNW in Berührung kommen. Da künftig im Unterricht vermehrt mit HPC und GPUs gearbeitet wird, ist zu erwarten, dass die Auslastung des Clusters steigt und es zu Lastspitzen kommt.
Zielsetzung
Im Fokus stehen drei zentrale Herausforderungen:
- Reduzierung von GPU-Unterauslastung durch GPU-Sharing für HPC-Jobs
- Verbesserung der Ressourcen-Reservierung und Priorisierung für den Hochschulbetrieb
- flexible Erweiterung des existierenden HPC-Clusters durch Cloud-Ressourcen
Ziel dieser Arbeit ist es, für jede dieser Herausforderungen Lösungsansätze zu entwickeln, die später im produktiven HPC-Cluster der FHNW implementiert werden können.
GPU-Sharing
Das Tool nvshare überschreibt Funktionen der CUDA-API und ermöglicht so mithilfe eines Schedulers ein GPU-Sharing. Durch ein zusätzliches Plugin kann nvshare auch in Slurm genutzt werden.
Job-Priorisierung
Die bordeigenen Mittel von Slurm ermöglichen eine granulare Priorisierung von Jobs. Mithilfe von Reservierungen stehen zuvor definierte Ressourcen während konkreten Zeiten einer Benutzergruppe zur Verfügung.
Cloud Bursting
Über das Power Saving Plugin kann Slurm VMs in einer Public-Cloud starten, wenn Ressourcen benötigt werden. Die VMs treten automatisch dem HPC-Cluster bei.
Ergebnisse
GPU-Sharing
Durch eine angepasste Version des Tools nvshare wird ein GPU-Sharing ermöglicht, das Out-of-Memory-Fehler verhindert. In Kombination mit einem Slurm-Plugin entsteht eine Lösung, die es erlaubt, mehrere Slurm-Jobs gleichzeitig derselben GPU zuzuweisen. Diese Lösung eignet sich sowohl für das Ausführen und Debuggen regulärer CUDA-Programme als auch für interaktive Anwendungen wie Jupyter-Notebooks.
Job-Priorisierung
Die Priorisierung von Jobs kann mithilfe von Slurm-Konzepten bewerkstelligt werden. Durch Priorisierungsfaktoren können wichtige Jobs vor anderen gestartet werden. Bei Bedarf können Jobs unterbrochen und Ressourcen an wichtigere Jobs freigegeben werden. Reservierungen stellen klar definierte Ressourcen während einer bestimmten Zeit einer Gruppe von Benutzern zur Verfügung. Werden diese Faktoren kombiniert, können freie Ressourcen bei Bedarf voll ausgelastet werden und stehen trotzdem für wichtige Jobs bereit.
Cloud-Bursting
Auf Microsoft Azure werden drei verschiedene Ansätze für eine Cloud-Bursting Lösung implementiert und verglichen. Alle Ansätze ermöglichen es, automatisch die Ressourcen des existierenden Slurm-Clusters durch Cloud-VMs zu erweitern und diese wieder freizugeben, wenn die Ressourcen nicht mehr benötigt werden. Die Ansätze unterscheiden sich jedoch deutlich in Kosten, Abhängigkeiten (Vendor Lock-In) und Verwaltungsaufwand.
Technische Schlüsselbegriffe
- HPCHigh Performance Computing: Einsatz von Hochleistungsrechnern für rechenintensive Aufgaben
- SlurmHPC-Cluster Software
- nvshareGPU-Sharing Tool für NVIDIA-GPUs
- NVIDIA CUDAPlattform und Programmierschnittstelle für GPU-Computing
Kund:in

FHNW Institut für Data Science
Simon Marcin & Manuel Stutz
Bahnhofstrasse 6
5210 Windisch
I4DS
Team
Robin Asprion
Christoph Möri
Betreuerin
Simon Marcin
Manuel Stutz