forked from CDS/infrastruktur-dok
Update Workstations-Getting-Started.md
This commit is contained in:
parent
ab06e98f9c
commit
330729ac30
@ -42,21 +42,22 @@ Falls Du deutlich mehr als die oben erwähnten Zeitspannen für eine Berechnung
|
|||||||
|
|
||||||
## Slurm Commands
|
## Slurm Commands
|
||||||
|
|
||||||
Slurm auf den Workstations wird nur zwingend benötigt, falls deine Berechnung auf der GPU ausgeführt werden soll. Jobs, die nur auf der CPU rechnen, müssen Slurm nicht verwenden. Bei sehr intensiver und lange anhaltender CPU Belegung, empfehlen wir jedoch eine Nutzung von Slurm, damit eine parallel laufende GPU Berechnung nicht gestört wird.
|
Slurm auf den Workstations wird zwingend benötigt, falls deine Berechnung auf der GPU ausgeführt werden soll. Jobs, die nur auf der CPU rechnen, müssen Slurm nicht verwenden. Bei sehr intensiver und lange anhaltender CPU Belegung, empfehlen wir jedoch eine Nutzung von Slurm, damit eine parallel laufende GPU Berechnung nicht gestört wird indem die CPU oder Memory Resourcen komplett belegt werden
|
||||||
|
|
||||||
Welche Hardware wir auf dem Rechner zur Verfügung haben, können wir uns mit dem Befehl
|
Welche Hardware wir auf dem Rechner zur Verfügung haben, können wir uns mit dem Befehl
|
||||||
|
|
||||||
```
|
```
|
||||||
sinfo -o "%N %c %m %G" | column -t
|
sinfo -o "%N %c %m %G" | column -t
|
||||||
```
|
```
|
||||||
|
|
||||||
in Erfahrung bringen.
|
in Erfahrung bringen.
|
||||||
|
|
||||||
Mit dem Befehl `srun` kann ein Slurmjob auf der Workstation ausgeführt werden. Als simples Beispiel berechnen wir hier die Primfaktoren einer grossen Zahl`
|
Mit dem Befehl `srun` kann ein Slurmjob auf der Workstation ausgeführt werden. Als simples Beispiel berechnen wir hier die Primfaktoren einer grossen Zahl
|
||||||
|
|
||||||
```
|
```
|
||||||
srun -G a100:1 -p students -n 64 factor 1234567890123456789012345678901234567890
|
srun -G a100:1 -p students -n 64 factor 1234567890123456789012345678901234567890
|
||||||
```
|
```
|
||||||
|
|
||||||
Mit der Option `-p` wird die Partition ausgewählt, im obigen Fall die 'students' Partition. Mit der Option `-n` teilen wir Slurm mit, wieviele parallele Tasks (Prozesse) wir ausführen wollen. Da wir pro Computenode 36 physische Cores und pro Core zwei hyperthreading Cores zur Verfügung haben, können wir den Parameter `-n` auf maximal 64 setzen. Die Option `-G a100:1` fordert eine Nvidia A100 GPU für die Berechnung an. Sobald die Computerresource frei ist, wird der Befehl `srun` ausgeführt und es werden auf der CPU 64 Prozesse gestartet. Sobald die Berechnung abgeschlossen ist, wird das Ergebniss auf der Kommandozeile ausgegeben.
|
Mit der Option `-p` wird die Partition ausgewählt, im obigen Fall die 'students' Partition. Mit der Option `-n` teilen wir Slurm mit, wieviele parallele Tasks (Prozesse) wir ausführen wollen. Da wir pro Computenode 36 physische Cores und pro Core zwei hyperthreading Cores zur Verfügung haben, können wir den Parameter `-n` auf maximal 64 setzen. Die Option `-G a100:1` fordert eine Nvidia A100 GPU für die Berechnung an. Sobald die Computerresource frei ist, wird der Befehl `srun` ausgeführt und es werden auf der CPU 64 Prozesse gestartet. Sobald die Berechnung abgeschlossen ist, wird das Ergebniss auf der Kommandozeile ausgegeben.
|
||||||
|
|
||||||
Im obigen Befehl, ist die Option `-G a100:1` nicht nötig und nur als Beispiel aufgeführt, da der Befehl `factor` die GPU nicht nutzen kann.
|
Im obigen Befehl, ist die Option `-G a100:1` nicht nötig und nur als Beispiel aufgeführt, da der Befehl `factor` die GPU nicht nutzen kann.
|
||||||
@ -122,15 +123,11 @@ Um auf die GPUs zuzugreifen, brauchen wir eine Slurm Session. Da unser Programm
|
|||||||
|
|
||||||
`salloc -p students -G a100:1 --ntasks=32 --mem-per-cpu=7G`
|
`salloc -p students -G a100:1 --ntasks=32 --mem-per-cpu=7G`
|
||||||
|
|
||||||
Sobald unser Slurm Job an der Reihe ist um ausgeführt zu werden (siehe `squeue`), können wir zum Testen ob wir Zugriff auf die GPU haben, den folgenden Befehl aufrufen:
|
Sobald unser Slurm Job an der Reihe ist um ausgeführt zu werden (siehe `squeue`), können wir mit den folgenden Befehlen testen ob wir Zugriff auf die GPU haben:
|
||||||
|
|
||||||
```
|
```
|
||||||
apptainer shell --nv "/scratch/${USER}/tensorflow-2.16.1-gpu-modified.sif"
|
apptainer shell --nv "/scratch/${USER}/tensorflow-2.16.1-gpu-modified.sif"
|
||||||
```
|
|
||||||
|
|
||||||
Wir haben nun in den Tensorflow Container gewechselt und können nun ein kurzes Skirpt aufrufen um den Zugriff auf die GPU zu testen:
|
|
||||||
|
|
||||||
```
|
|
||||||
python3 <<- EOF
|
python3 <<- EOF
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
print(tf.config.list_physical_devices('GPU')[0])
|
print(tf.config.list_physical_devices('GPU')[0])
|
||||||
@ -145,18 +142,9 @@ Falls ein Index Error erscheint (IndexError: list index out of range), hat der Z
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Mehr zum Login findet man im 
|
Mehr zum Login findet man im 
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[6]: https://slurm.schedmd.com/
|
[6]: https://slurm.schedmd.com/
|
||||||
[7]: https://slurm.schedmd.com/sched_config.html
|
[7]: https://slurm.schedmd.com/sched_config.html
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user