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.

Text

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

FHNW

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

FHNW

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

FHNW

Ü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

Logos

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