Batchbetrieb mit SLURM
Batchbetrieb
Der Linux-Cluster ist ein Verbund vernetzter Computer (Nodes), der im sogenannten Batchbetrieb arbeitet.
Um ein Programm auf dem Cluster auszuführen, müssen Sie zunächst Ressourcen wie Rechenzeit, die Anzahl der Prozessoren oder die Größe des Hauptspeichers reservieren. Dafür erstellen Sie eine Submit-Script-Datei, die an den Workload Manager SLURM (Simple Linux Utility for Resource Management) übergeben wird.
In dieser Datei definieren Sie sowohl die gewünschten Ressourcen als auch die Befehle zum Starten Ihres Programms.
Zum Erstellen eines Submit-Scripts können Sie unseren grafischen Script-Generator verwenden. Das Abschicken des Auftrags erfolgt anschließend über den Server its-cs1.its.uni-kassel.de.
Sobald Ihr Script an SLURM übergeben wurde, wird Ihr Rechenauftrag als sogenannter Job in eine Warteschlange (Queue) eingereiht. Der Job startet automatisch, sobald die benötigten Ressourcen verfügbar sind. Während der Laufzeit Ihres Jobs bleibt Ihr persönliches Homeverzeichnis auf allen beteiligten Nodes verfügbar. Programme können dort gestartet, Daten gelesen und Ergebnisse geschrieben werden. Auf Wunsch können Sie sich per E-Mail benachrichtigen lassen, sobald Ihr Job beendet ist.
Im Batchbetrieb erfolgt keine direkte Benutzereingabe. Stattdessen werden alle Ausgaben Ihres Programms in eine Datei umgeleitet, die Sie im Submit-Script angeben.
Alternativ zum klassischen Batchbetrieb ist es möglich, Nodes für die interaktive Nutzung zu reservieren. Dies ist sinnvoll, wenn während der Programmausführung grafische Oberflächen angezeigt oder Benutzereingaben erforderlich sind. Beachten Sie jedoch, dass das interaktive Arbeiten deutlich aufwändiger ist, da alle Ressourcenangaben jedes Mal manuell auf der Kommandozeile erfolgen müssen.
Gehen Sie so vor, wenn sie ein rechenaufwändiges Programm starten wollen:
- Informieren Sie sich über die vorhandene Knoten und Partitionen (sinfo)
- Definieren Sie welche Hardware-Ressourcen und Module Sie benötigen und wie das Programm ausgeführt werden soll (Submit-Script)
- Lassen Sie das Submit-Script von Slurm ausführen (sbatch)
- Beobachten Sie Ihren Job (squeue) oder lassen Sie sich informieren, wenn der Job beendet ist (email im Submit-Script eintragen)
Diese einzelnen Schritte werden in den weiteren Kapiteln genauer erklärt.
Job Priorität
Die Nodes im Cluster sind in verschiedene Partitionen eingeteilt. Einige Partitionen teilen sich dieselben Nodes. Dabei haben Jobs in bestimmten Partitionen Vorrang gegenüber anderen.
Batchjobs, die in der Partition minijobs eingereicht werden, erhalten eine höhere Priorität als Jobs in den Partitionen public, exec, mpi und mpi1.
Zusätzlich steigt die Priorität eines Jobs automatisch mit zunehmender Wartezeit in der Queue. Gleichzeitig versucht der Ressourcenmanager, die vorhandenen Ressourcen optimal auszunutzen: Jobs werden bevorzugt gestartet, wenn sie die verfügbaren Ressourcen effizient nutzen, selbst wenn andere Jobs mit höherer Priorität noch warten müssen.