From 330729ac30d2523205207c978a3db65f2f95959e Mon Sep 17 00:00:00 2001 From: Thomas Keller Date: Thu, 22 Aug 2024 10:23:00 +0200 Subject: [PATCH] Update Workstations-Getting-Started.md --- Workstations-Getting-Started.md | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/Workstations-Getting-Started.md b/Workstations-Getting-Started.md index 5145e1a..7c33b16 100644 --- a/Workstations-Getting-Started.md +++ b/Workstations-Getting-Started.md @@ -42,21 +42,22 @@ Falls Du deutlich mehr als die oben erwähnten Zeitspannen für eine Berechnung ## 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 ``` - sinfo -o "%N %c %m %G" | column -t +sinfo -o "%N %c %m %G" | column -t ``` 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 ``` + 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. @@ -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` -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" -``` -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 import tensorflow as tf 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 ![Lab Login Tutorial](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Lab-Login-Tutorial.md) -### - - [6]: https://slurm.schedmd.com/ [7]: https://slurm.schedmd.com/sched_config.html