forked from CDS/infrastruktur-dok
Update Workstations-Getting-Started.md
This commit is contained in:
parent
c28940cb5b
commit
955514cd91
@ -106,7 +106,7 @@ aufgerufen werden
|
|||||||
|
|
||||||
Im folgenden Beispiel verwenden wir das MNIST Datenset um ein einfaches Tensorflow Modell zu trainieren.
|
Im folgenden Beispiel verwenden wir das MNIST Datenset um ein einfaches Tensorflow Modell zu trainieren.
|
||||||
|
|
||||||
### Login auf dem Rechner
|
### Login auf einer der Workstations
|
||||||
`ssh <username>@mercury.fhgr.ch`
|
`ssh <username>@mercury.fhgr.ch`
|
||||||
|
|
||||||
### Einrichten einer Execution Environment für Tensorflow mit Apptainer
|
### Einrichten einer Execution Environment für Tensorflow mit Apptainer
|
||||||
@ -119,9 +119,9 @@ apptainer exec --writable --fakeroot sandboxes/tensorflow/ apt install -y nvidia
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Starten eines Slurmjobs
|
### Starten eines Slurmjobs
|
||||||
Um auf die GPUs zuzugreifen, brauchen wir eine Slurm Session. Da unser Programm nur für eine GPU ausgelegt ist, fordern wir auch nur eine GPU mit Slurm an (die zweite GPU kann von einem weiteren Benutzer für eine gleichzeitig laufende Berechnung angefordert werden):
|
Um auf die GPUs der Workstations zuzugreifen, brauchen wir eine Slurm Session. Da unser Programm nur für eine GPU ausgelegt ist, fordern wir auch nur eine GPU mit Slurm an (die zweite GPU kann von einem weiteren Benutzer für eine gleichzeitig laufende Berechnung angefordert werden):
|
||||||
|
|
||||||
`salloc -p students -G a100:1 --ntasks=32 --mem-per-cpu=7G`
|
`salloc -p students --time=2:00:00 -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 mit den folgenden Befehlen testen ob wir Zugriff auf die GPU haben:
|
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:
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ In der letzten Ausgabezeile unseres Skripts sollte im Falle eines Erfolgs nun
|
|||||||
|
|
||||||
stehen. Falls anstatt der obigen Meldung ein Index Error erscheint (IndexError: list index out of range), hat der Zugriff auf die GPU nicht geklappt.
|
stehen. Falls anstatt der obigen Meldung ein Index Error erscheint (IndexError: list index out of range), hat der Zugriff auf die GPU nicht geklappt.
|
||||||
|
|
||||||
Als nächstes berechnen wir ein kleines . Dazu kopieren wir den folgenden Code in eine Datei im Homeverzeichnis mit dem Namen ml.py:
|
Als nächstes berechnen wir ein kleines . Dazu kopieren wir den folgenden Code in eine Datei im Homeverzeichnis mit dem Namen *ml.py*:
|
||||||
|
|
||||||
```
|
```
|
||||||
# https://www.tensorflow.org/tutorials/quickstart/beginner
|
# https://www.tensorflow.org/tutorials/quickstart/beginner
|
||||||
@ -189,7 +189,7 @@ Danach starten wir unseren Tensorflow Container mit dem Befehl
|
|||||||
|
|
||||||
Der Kommandozeilen Prompt wechselt nun sein Aussehen zu *Apptainer>*
|
Der Kommandozeilen Prompt wechselt nun sein Aussehen zu *Apptainer>*
|
||||||
|
|
||||||
Da unser Skript (ml.py) im Homeverzeichnis liegt, können wir dieses mit dem Befehl
|
Da unser Skript (ml.py) im Homeverzeichnis liegt, können wir unser ml.py Skript mit dem Befehl
|
||||||
|
|
||||||
`python3 "$HOME/ml.py"`
|
`python3 "$HOME/ml.py"`
|
||||||
|
|
||||||
@ -197,10 +197,7 @@ aufstarten. Eine erfolgreiche Berechnung sieht so aus:
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
Falls während der Initialisierung des Skripts der Fehler `failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected` auftaucht, wurde die Berechnung auf der CPU ausgeführt und nicht auf der GPU. In diesem Fall nochmals überprüfen ob der Container in einer Slurm Session gestartet wurde (Slurm Session wurde zuerst gestartet und der Container als Zweites) und ob die Slurm Session immer noch aktiv ist (Mit dem Befehl `squeue``.
|
Falls während der Initialisierung des Skripts der Fehler `failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected` auftaucht, wurde die Berechnung auf der CPU ausgeführt und nicht auf der GPU. In diesem Fall nochmals überprüfen ob der Container in einer Slurm Session gestartet wurde (und nicht in einer zweiten Konsole ohne Slurm) und ob die Slurm Session immer noch aktiv ist (Mit dem Befehl `squeue``.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[6]: https://slurm.schedmd.com/
|
[6]: https://slurm.schedmd.com/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user