Slurm
Was ist Slurm und wer darf es benutzen
Slurm ist ein sogennantes Batchsystem, d.h. es können Aufgaben (Jobs)
an Slurm geschickt werden und es sorgt dann dafür, die Aufgabe
bestmöglich und nach vordefinierten Regeln auf einem oder mehreren
unserer Rechner auszuführen.
Grundsätzlich ist Slurm für alle Studenten und Mitarbeiter des
Informatikinstituts da. Es ist auch keine weitere Anmeldung erforderlich.
Im allgemeinen gibt es keine Beschränkungen, wann man Jobs abschicken
kann und auf welchen Rechnern man diese laufen lassen möchte.
Allerdings führt Slurm keine neuen Jobs auf Rechnern aus, auf denen
ein User angemeldet ist. Jobs die schon laufen werden, werden
in diesem Fall angehalten.
Wie funktioniert Slurm
Gibt es eine grafische Benutzerschnittstelle
Ja, mit dem Befehl sview gibt es eine grafische Oberfläche für Slurm.
Der Befehl smap ist zwar nicht graphisch, bietet aber eine gute
textuelle Oberfläche zu Slurm.
Welche Rechner sind angeschlossen
Alle Rechner in den studentischen Arbeitsplatzräumen der
Informatik, mit Ausnahme der Clients in Deneb/Terminus, sind in Slurm.
Zusätzlich gibt es noch die Server der abakus Reihe. Diese haben
leistungsfähigere NVIDIA Karten, wesentlich mehr Ram, großen und schnellen lokalen Speicher(SSD) und viele CPU Kerne.
Außerdem sind die nicht als interaktive Arbeitsplatzrechner genutzt, Jobs dort werden also nie suspended.
Welche Limits existieren
- die Anzahl der gleichzeitig laufenden Jobs ist auf 15 pro User limitiert.
- die Anzahl der gleichzeitig aufgegebenen Jobs ist auf 30 pro User limitiert.
- Zugang zu den abakus Servern kann per Mail mit Nutzungsbeschreibung bei der RBG beantragt werden.
- Auf den Abakus Rechnern ist die Default Laufzeit fuer Jobs 1 Tag und die Maximale Laufzeit 5 Tage.
- es können Reservierungen vorhanden sein.
-
- diese können mit “scontrol show reservations” angezeit werden.
-
- User die nicht Teil der Reservierungen sind können keine Jobs auf reservierten Nodes laufen lassen deren Laufzeit sich mit den reservierten Zeiträumen überschneiden würde.
-
- SLURM startet keine Jobs deren Laufzeit nicht vor der nächsten Reservierung endet.
- Ebenso kann man bei der RBG temporär eine höhere Priorität für die eigenen Jobs beantragen. Auch hier ist eine Begründung nötig.
Gute Begründungen sind unter anderem:
- Nutzung bei einer Thesis, Publikation oder einem Projekt. Eine formlose Bestätigung durch den Betreuer ist nötig.
Wie schickt man Jobs ab
Es gibt prinzipiell zwei Wege einen Job an Slurm zu senden. Zum einen
kann man den Job über die Kommandozeilenprogramme srun/sbatch abgeben,
zum anderen kann man dies auch mit der graphischen Benutzerschnittstelle
sview erledigen.
In beiden Fällen gilt, dass man ein Shell-Skript bereitstellen sollte,
das benötigte Parameter setzt,
Slurm unterstützt heterogene Jobs. Allerdings lassen sich diese
Jobs nur packweise anhalten und fortsetzen. Daher raten wir dringend
von der Verwendung solcher Jobs ab, da man sich damit massive
Nachteile bei der Job Ausführung einhandelt.
Wenn man mehrere QOS hat muss man beim submit die zu verwendende(n) QOS
per ‘-q’ angeben. Ähnlich wie die Partition mit -p.
Wie kann ich abgeschickte Jobs bearbeiten
Mit dem Befehl squeue/sview können viele Eigenschaften von bereits abgesendeten Jobs nachgeschaut werden.
Mit scancel kann ein job wieder gelöscht werden. Näheres: “man scancel”
Was mache ich bei Fehlern
- Slurm legt per dafault für jeden Job eine Datei für stdout und stderr an. Diese Datei heißt slurm-jobid.out. Hier sollte die Fehlersuch beginnen. Falsche oder fehlende Pfad Werte usw können hier erkannt werden.
- in sview oder mit squeue kann man bei wartenden Jobs sehen warum diese warten.
- falls Jobs ohne Spuren verschwinden sollte man der RBG dies mitteilen. Wichtig ist dabei wann und welche Partition verwendet wurde.
Welche Art von Aufgaben ist Slurm geeignet
- Aufgaben die die sich in viele unabhängige kleinere Aufgaben zerlegen lassen sind am besten geeignet um auf Slurm ausgeführt zu werden. z.B eine zu rendernde 3D Szene kann pro Frame unabhängig berechnet werden.
- Aufgaben die sehr lange zur Berechnung benötigen. Man sollte in diesen Fall aber check-pointing verwenden, bzw. regelmäßig den Berechnungszustand abspeichern, damit man nach einer Unterbrechung an dieser Stelle weiterarbeiten kann.
Kommandozeilenbefehle-Uebersicht
- Siehe “man -k slurm” bzw. “man slurm”.
- Job für die abaki Partition: “srun -q abaki -p Abaki rechenjob.sh”
Verweise
Externe Infos