Update Workstations-Getting-Started.md

This commit is contained in:
Thomas Keller 2024-08-23 13:02:03 +02:00
parent 07796b52e2
commit 3acb24e48b

View File

@ -76,13 +76,13 @@ Mit der Option `-p` wird die Partition ausgewählt, im obigen Fall die 'debug' P
Für nicht-interaktive und länger laufende Jobs ist es sinnvoll den Befehl `sbatch` zu verwenden. Damit muss nicht gewartet werden bis die Workstation frei wird, sondern der Jobscheduler übernimmt das Skript und bringt es zur Ausführung sobald die Hardwareresourcen frei sind. An welcher Reihe sich mein Job in der Jobqueue befindet, kann mit dem Befehl
```squeue```
```squeue -l```
angezeigt werden.
Ein weiterer Vorteil von sbatch ist, dass der Job beim Unterbruch der Netzwerkverbindung nicht abgebrochen wird wie zum Beispiel mit srun. Wenn Du srun oder andere interaktive Befehle ausführen möchtest, die sehr lange laufen, dann empfiehlt es sich ![screen](https://wiki.ubuntuusers.de/Screen/) zu nutzen, damit bei einem Netzwerkunterbruch dein Befehl nicht abgebrochen wird.
Ein weiterer Vorteil von *sbatch* ist, dass der Job beim Unterbruch der Netzwerkverbindung nicht abgebrochen wird wie zum Beispiel mit *srun*. Wenn Du trotz den Vorteilen von *sbatch* mit *srun* oder andere interaktive Befehlen arbeiten möchtest, dann empfiehlt es sich ![screen](https://wiki.ubuntuusers.de/Screen/) zu nutzen, damit bei einem Netzwerkunterbruch dein Befehl nicht abgebrochen wird.
Für `sbatch` muss ein Shellskript geschrieben werden das einerseits einen Abschnitt enthält mit Informationen für Slurm (diese Befehle sind mit `#SBATCH` gekenntzeichnet) andererseits einen Abschnitt der den Befehl zum Starten der Berechnungen enthält. Dies könnte zum Beispiel so aussehen:
Für *sbatch* muss ein Shellskript geschrieben werden das einerseits einen Abschnitt enthält mit Informationen für Slurm (diese Befehle sind mit `#SBATCH` gekenntzeichnet) andererseits einen Abschnitt der den Befehl zum Starten der Berechnungen enthält. Dies könnte zum Beispiel so aussehen:
```
#!/bin/bash
@ -95,13 +95,13 @@ Für `sbatch` muss ein Shellskript geschrieben werden das einerseits einen Absch
#SBATCH --cpus-per-task=1 ## Die Anzahl Threads die Slurm starten soll
#SBATCH --ntasks-per-node=64 ## Die Anzahl Prozesse die gestartet werden sollen
# Ausführen des effektiven Befehls in der Shell. Bei einer Berechnung würde hier typischerweise ein Python Skript aufgerufen
# Ausführen des effektiven Befehls in der Shell. Bei einer Berechnung würde hier typischerweise ein Python Skript aufgerufen werden
srun -G a100:1 -p students -n 64 factor 1234567890123456789012345678901234567890
```
Ob das Skript nun aktiv ist (oder einfach nur hängt ohne etwas zu machen) ist nicht immer ganz eindeutig festzustellen. Jedoch sieht man mit dem Befehl ```top``` oder ```sudo nvtop``` ob das gestartete Skript CPU oder GPU Resourcen verwendet. Weiter kann in den Logfiles die im sbatch Skript angegeben wurden, nachgeschaut werden ob es Fehler bei der Skriptausführung gegeben hat. Zum Beispiel für den Job 101 mit dem Befehl `cat slurm-101*`.
Ob das Skript nun aktiv ist (oder einfach nur hängt ohne etwas zu machen) ist nicht immer ganz eindeutig festzustellen. Jedoch sieht man mit dem Befehl ```top``` oder ```sudo nvtop``` ob das gestartete Skript CPU oder GPU Resourcen verwendet. Weiter kann in den Logfiles die im sbatch Skript angegeben wurden nachgeschaut werden ob es Fehler bei der Skriptausführung gegeben hat. Zum Beispiel für den Job 101 mit dem Befehl `cat slurm-101*`.
Es ist auch möglich eine interaktive Slurm Session zu nutzen. Dazu kann zum Beispiel der folgende Befehl am Workstation-Prompt eingegeben werden:
Es ist auch möglich eine interaktive Slurm Session zu nutzen. Dazu kann zum Beispiel der folgende Befehl am Workstation Prompt eingegeben werden:
```
salloc -p students --time=00:01:00