Das SLURM-Shell-Skript
Auf dem Hochleistungsrechner CHEOPS des RRZK wird die Verteilung der Aufträge über das Batchsystem Simple Linux Utility for Resource Management (Slurm) verwaltet.
Das Batchsystem wird über ein Shell-Skript (gegebenfalls mit dem Suffix .sh) addressiert, das in zwei Bereiche unterteilt ist: den Header mit dem Prefix # und den Body ohne Prefix.
Nachfolgend ein Beispiel für ein Shell-Skript (z.B. mit dem Namen tm7.sh) für eine Turbomole-Rechnung. 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=UniKoeln
module load turbomole/7.0
/usr/bin/time -p jobex -c 1000 >& out.out
Im Header stehen die für das Slurm wichtige Informationen. 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.
Eintrag | Bedeutung |
---|---|
#SBATCH --nodes=2 | Bestimmt die Anzahl der Knoten (nodes). |
#SBATCH --ntasks-per-node=8 | Legt die Anzahl der zu verwendenden Rechenkerne auf den angeforderten Knoten fest. |
#SBATCH --mem=2gb | Gibt den Arbeitsspeicher an. |
#SBATCH --time=02:00:00 | Gibt die Zeit in Stunde:Minute:Sekunde an, die für die Rechnung maximal veranschlagt wird. |
#SBATCH --account=UniKoeln | Legt die Projektgruppe fest. Sollte für Sie kein Projektname festgelegt sein, ist UniKoeln zu wählen. |
Weitere Befehle für das Slurm-Skript finden Sie im Handbuch.
Im Body stehen für die Befehle, die für das Ausführen von Turbomole nötig sind.
Eintrag | Bedeutung |
---|---|
module 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-Rechnung aus (Skript jobex) und gibt die Ergebnisdatei 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 der HPC-Seite.
Weitere Befehle für Turbomole finden Sie im Handbuch zum Programm.
Contact
If you have any questions or problems, please contact the RRZK-Helpdesk