Update Workstations-Getting-Started.md

This commit is contained in:
Thomas Keller 2024-08-21 17:04:14 +02:00
parent f8425ee272
commit 3570e9648f

View File

@ -104,9 +104,53 @@ aufgerufen werden
## Ein Beispiel einer Berechnung ## Ein Beispiel einer Berechnung
Im folgenden Beispiel verwenden wir das MNIST Datenset um ein einfaches Tensorflow Modell zu trainieren.
### Login auf dem Rechner ### Login auf dem Rechner
```ssh <username>@mercury.fhgr.ch``` `ssh <username>@mercury.fhgr.ch`
### Einrichten einer Execution Environment für Tensorflow mit Apptainer
```
mkdir -p ~/build-apptainer/sandboxes/ && cd ~/build-apptainer
apptainer pull tensorflow-2.16.1-gpu.sif docker://tensorflow/tensorflow:2.16.1-gpu
apptainer build --sandbox sandboxes/tensorflow ./tensorflow-2.16.1-gpu.sif
apptainer exec --fakeroot --writable sandboxes/tensorflow/ apt-get update
apptainer exec --writable --fakeroot sandboxes/tensorflow/ apt install -y nvidia-profiler
```
### 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:
`salloc -p student -G a100:1`
Sobald unser Slurm Job an der Reihe ist um ausgeführt zu werden, können wir zum Testen ob wir Zugriff auf die GPU haben, den folgenden Befehl aufrufen:
```
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])
EOF
```
In der letzten Ausgabezeile unseres Skripts steht nun:
`PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')`
Falls ein Index Error erscheint (IndexError: list index out of range), hat der Zugriff auf die GPU nicht geklappt.
Mehr zum Login findet man im ![Lab Login Tutorial](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Lab-Login-Tutorial.md) Mehr zum Login findet man im ![Lab Login Tutorial](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Lab-Login-Tutorial.md)