zum Inhalt springen

Das SLURM-Shell-Skript

Auf dem Hoch­leis­tungs­rech­ner CHE­OPS des RRZK wird die Ver­tei­lung der Auf­trä­ge über das Batchsystem Simple Linux Utility for Resource Management (Slurm) ver­wal­tet.

Das Batchsystem wird über ein Shell-Skript (gegebenfalls mit dem Suf­fix .sh) ad­dres­siert, das in zwei Be­rei­che un­ter­teilt ist: den Header mit dem Pre­fix # und den Body ohne Pre­fix.

Nach­fol­gend ein Bei­spiel für ein Shell-Skript (z.B. mit dem Namen tm7.sh) für eine Turbomole-Rech­nung. Hier werden zwei Knoten mit jeweils 8 Kernen (insgesamt 16 Tasks) angefordert:

#!/bin/bash -l
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=8

#SBATCH --ntasks=16
#SBATCH --mem=10gb
#SBATCH --time=02:00:00
#SBATCH --account=Uni­Koeln

module load turbomole/7.0

/usr/bin/time -p jobex -c 1000 >& out.out

 

Im Header ste­hen die für das Slurm wich­ti­ge In­for­ma­tio­nen. Die Einträge werden mit der Zeichenfolge #SBATCH eingeleitet. Die interpretierende Shell (bash) ignoriert den Zeileninhalt hinter dem Zeichen #, das Batchsystem hingegen wertet den Inhalt aus und reiht den Job entsprechend der Ressourcenanforderungen ein.

Ein­trag

Be­deu­tung

#SBATCH --nodes=2

Be­stimmt die An­zahl der Kno­ten (nodes).

#SBATCH --ntasks-per-node=8

Legt die Anzahl der zu verwendenden Rechenkerne auf den angeforderten Knoten fest.

#SBATCH --mem=2gb

Gibt den Ar­beits­spei­cher an. 

#SBATCH --time=02:00:00

Gibt die Zeit in Stun­de:Mi­nu­te:Se­kun­de an, die für die Rechnung maximal veranschlagt wird.

#SBATCH --account=Uni­Koeln

Legt die Projektgruppe fest. Soll­te für Sie kein Pro­jekt­na­me fest­ge­legt sein, ist UniKoeln zu wählen.

Wei­te­re Be­feh­le für das Slurm-Skript fin­den Sie im Hand­buch.

 

Im Body ste­hen für die Be­feh­le, die für das Aus­füh­ren von Turbomole nötig sind.

Ein­trag

Be­deu­tung

mo­du­le load turbomole/7.0

Lädt die Umgebungsvariablen für Turbomole in der Version 7.0 (weitere Informationen liefert module avail)

/usr/bin/time -p jobex -c 1000 >& out.out

Führt eine Turbomole-Rech­nung aus (Skript jobex) und gibt die Er­geb­nis­da­tei output.out aus. Der Befehl /usr/bin/time -p misst die Zeit (Real-, User- und Systemzeit) für die Ausführung des Jobs und gibt das Ergebnis mit aus.

Der Job wird mit dem Befehl

sbatch tm7.sh

im Batchsystem eingereiht. Der Befehl squeue -u $USER zeigt die unter Ihrem Accountnamen eingereihten oder laufenden Jobs mit ihrer Job-ID an. Die Job-ID kann dann zur Angabe weiterer Informationen herangezogen werden. Hinweise und Befehle für das Batchsystem SLURM finden Sie im Handbuch zur Nutzung von CHEOPS, weitere Beispiele für Job-Skripte für Turbomole sind im CHEOPS Anwendungshandbuch hinterlegt. Beide Dokumente finden Sie auf den CHEOPS-Seiten der HPC-Gruppe.

 Wei­te­re Be­feh­le für Turbomole fin­den Sie im Hand­buch zum Pro­gramm.

Kontakt
Bei Fragen und für eine individuelle Beratung wenden Sie sich bitte an den RRZK-Helpdesk