Update Workstations-Getting-Started.md

Signed-off-by: Thomas Keller <thomas.keller@fhgr.ch>
This commit is contained in:
Thomas Keller 2024-08-26 10:27:15 +02:00
parent c74b3779b4
commit d69fc127be

View File

@ -25,16 +25,16 @@ Alle Workstations für das Studium sind nach dem folgenden Muster aufgebaut:
|Was|Beschreibung|
|---|---|
|Login auf den Workstations|Für das Login mit SSH verwendest Du deinen FH Graubünden Benutzernamen und Passwort|
|Homeverzeichnis und Quota|Dein Homeverzeichnis ist auf 80 GB Speicherplatz beschränkt. Welche Möglichkeiten Du hast falls dein Homeverzeichnis voll belegt ist, siehst Du hier ![Troubleshooting](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Installation-Tensorflow.md#troubleshooting)|
|Homeverzeichnis und Quota|Dein Homeverzeichnis ist auf 80 GB Speicherplatz beschränkt. Welche Möglichkeiten Du hast falls dein Homeverzeichnis voll belegt ist, siehst Du hier [Troubleshooting](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Installation-Tensorflow.md#troubleshooting)|
|Speicherplatz unter ```/scratch```|Für temporäre Dateien die die Quota von 80 GB überschreiten, kann unter /scratch Speicherplatz verwendet werden. In diesem Verzeichnis bitte **keine vertrauliche Daten** ablegen |
|Slurm für den Zugriff auf die GPUs|Die GPUs können nur mit Slurm verwendet werden. Wie das funktioniert steht im Abschnitt [Job Scheduler und Partitionen](#job-scheduler-und-partitionen)|
|Installation zusätzlicher Software|Python Module, Entwicklungs Bibliotheken etc. können über die Software Anaconda/Miniconda oder Pip installiert werden. Wie das am Beispiel von Tensorflow funktioniert ist im Dokument ![Installation Tensorflow](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Installation-Tensorflow.md) beschrieben|
|Verwendung von Containeren|Für die Arbeit mit Containern ist die Software Apptainer installiert. Wie mit Apptainer Software installiert werden kann (auch für Software die Rootrechte benötigt) ist im Dokument ![Softwareinstalltionen auf den Workstations](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Installation-Tensorflow.md) beschrieben oder in der ![Apptainer Dokumentation](https://apptainer.org/docs/user/latest/)|
|Installation zusätzlicher Software|Python Module, Entwicklungs Bibliotheken etc. können über die Software Anaconda/Miniconda oder Pip installiert werden. Wie das am Beispiel von Tensorflow funktioniert ist im Dokument [Installation Tensorflow](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Installation-Tensorflow.md) beschrieben|
|Verwendung von Containeren|Für die Arbeit mit Containern ist die Software Apptainer installiert. Wie mit Apptainer Software installiert werden kann (auch für Software die Rootrechte benötigt) ist im Dokument [Softwareinstalltionen auf den Workstations](https://gitea.fhgr.ch/CDS/infrastruktur-dok/src/branch/main/Installation-Tensorflow.md) beschrieben oder in der [Apptainer Dokumentation](https://apptainer.org/docs/user/latest/)|
## Job Scheduler und Partitionen
Da alle Workstation an der FH Mehrbenutzersysteme sind, können deren Resourcen (wie die GPUs) nicht jederzeit frei verwendete werden. Daher kommt ein Jobscheduler zum Einsatz, der Rechenjobs mit den zur Verfügung stehenden Ressourcen möchglichst optimal zur Ausführung bringt. Daher musst Du bei einer Berechnung mit GPUs zwingend ![Slurm](https://slurm.schedmd.com/quickstart.html) verwenden.
Da alle Workstation an der FH Mehrbenutzersysteme sind, können deren Resourcen (wie die GPUs) nicht jederzeit frei verwendete werden. Daher kommt ein Jobscheduler zum Einsatz, der Rechenjobs mit den zur Verfügung stehenden Ressourcen möchglichst optimal zur Ausführung bringt. Daher musst Du bei einer Berechnung mit GPUs zwingend [Slurm](https://slurm.schedmd.com/quickstart.html) verwenden.
Grundsätzlich folgt Slurm auf den Workstations dem [FIFO mit Backfill][7] Prinzip. Vereinfacht gesagt bedeutet das, dass der erste eingereichte Job zuerst abgearbeitet wird. Weiter wird die Ressourcennutzung durch sogenannte Partitionen eingeschränkt. Diese bestimmen wie lange ein Benutzer einen Slurm-Job ausführen darf. Die möglichen Partitionen kannst Du dir mit dem Befehl ```sinfo``` anzeigen lassen. Typischerweise gibt es für die Studierenden die foglenden zwei Partition:
@ -50,7 +50,7 @@ Falls deine Berechnung weniger als sieben Tage benögtigt, sind dir deine Mitstu
Eine Berechnung die länger als die durch die Partition vorgegebene Zeit läuft wird **abgebrochen**. Diese Limite ist dazu da, damit ein Benutzer nicht irrtümlich den Cluster für eine unbegrenzte Zeit blockieren kann. Daher empfiehlt es sich dringend, im Skript sogenannte 'Checkpoints' zu implementieren. Wie Checkpoints im Falle von Tensorflow oder Keras implementiert werden, findest Du [hier][11]. Checkpoints schützen übrigens auch vor einem Datenverlust der Berechnung bei einem Stromausfall oder Diskausfall.
Falls Du deutlich mehr als die oben erwähnten Zeitspannen für eine Berechnung brauchst oder ein Slurmjob die GPUs für sehr lange Zeit blockiert, melde dich bitte beim ![DAViS Admin](mailto:davis-admin@fhgr.ch).
Falls Du deutlich mehr als die oben erwähnten Zeitspannen für eine Berechnung brauchst oder ein Slurmjob die GPUs für sehr lange Zeit blockiert, melde dich bitte beim [DAViS Admin](mailto:davis-admin@fhgr.ch).
## Slurm Commands
@ -123,7 +123,7 @@ scontrol show node
kann angezeigt werden, welche Hardware Resourcen noch frei sind. Im folgenden Fall wären noch ca. 500GB RAM und exakt 32 Cores für eine sofortige Ausführung eines weiteren Slurms vorhanden:
![Resourcen](./images/workstations-2.png)
[Resourcen](./images/workstations-2.png)
Etwas genauer gerechnet: 508'486 MB RAM (515'654(7×1'024))
@ -178,7 +178,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.
Als nächstes berechnen wir ein kleines ![Machine Learning Model](https://www.tensorflow.org/tutorials/quickstart/beginner). Dazu kopieren wir den folgenden Code in eine Datei im Homeverzeichnis mit dem Namen *ml.py*:
Als nächstes berechnen wir ein kleines [Machine Learning Model](https://www.tensorflow.org/tutorials/quickstart/beginner). Dazu kopieren wir den folgenden Code in eine Datei im Homeverzeichnis mit dem Namen *ml.py*:
```
# https://www.tensorflow.org/tutorials/quickstart/beginner
@ -236,7 +236,7 @@ Da unser Skript (ml.py) im Homeverzeichnis liegt, können wir unser ml.py Skript
aufstarten. Eine erfolgreiche Berechnung sieht so aus:
![Workstations](./images/workstations-1.png)
[Workstations](./images/workstations-1.png)
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 überprüfe nochmals ob der Container tatsächlich 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`).