Schritt für Schritt Anleitungen
Hier sind einige Schritt für Schritt Anleitungen zu verschiedenen Themen und Anwendungsfällen in Verbindung mit Machine Learning auf den HPC Cluster des ZIH. Alle Anleitungen setzen ein ZIH Login und eine erfolgreiche Anmeldung auf das HPC Cluster voraus.
Hello World CNN
Dieses Beispiel zeigt den Workflow, wie man handgeschriebene Zahlen mit Hilfe eines CNN´s erkennen kann. Das Beispiel ist einfach adaptierbar auf eigene Anwendungsfälle. Das Beispiel baut auf den MNIST Datensatz auf, welcher häufig für Benchmarking und Teaching verwendet wird. Das Beispiel ist in einem Jupyter Notebook geschrieben.
- MNIST Learner Notebookipynb - 12,31 kB
Weitere Dokumente/ Antragsformulare finden Sie hier: https://www.htw-dresden.de/hochschule/fakultaeten/info-math/forschung/smart-production-systems/projekte/anleitungen
1. Jupyter Notebook Datei herunterladen
2. VPN Verbindung in die TU-Dresden aufbauen und in das JupyterHub einloggen
5. Notebook öffnen und dieses Schritt für Schritt ausführen
Eigene Python Environment mit Anaconda erstellen
- Notebook Semantic Segmenationipynb - 2,71 kB
Weitere Dokumente/ Antragsformulare finden Sie hier: https://www.htw-dresden.de/hochschule/fakultaeten/info-math/forschung/smart-production-systems/projekte/anleitungen
Das folgende Beispiel erstellt eine eigene Anaconda Enviroment und installiert die fast.ai Library. Anschließend kann ein Notebook mit einer Semantic Segmentation über das Jupyter Hub ausgeführt werden.
1. VPN Verbindung in die TU-Dresden aufbauen und mittels einer Shell auf den Login-Knoten des ZIH anmelden.
2. Interaktive Session mit dem Alpha Centauri Cluster starten
srun -p alpha-interactive -N 1 -n 1 --mem-per-cpu 11000 -c 2 --time=02:00:00 --pty bash
3. Python Packetverwaltung Anaconda laden
module load Anaconda3
4. Neue Anaconda Enviroment erstellen
conda create --name myEnv python=3.7
5. Enviroment aktivieren
conda activate myEnv
6. Fast.ai Library installieren
conda install -c fastai -c pytorch fastai cudatoolkit=11.0.221 ipykernel ipywidgets
7. Enviroment in JupyterHub registrieren
python -m ipykernel install --user --name myEnv --display-name="myEnv"
8. In das JupyterHub einloggen
12. Notebook Schritt für Schritt durchgehen
Workspace erstellen
Mit einem Workspaces beantragt man Zugriff auf verschiedene Speichersysteme des ZIH, welche sich sich in Bezug auf Kapazität, Streaming-Bandbreite, IOPS-Rate usw. unterscheiden. Man kann nicht alles in allem haben. Deswegen gibt es für verschiedene Anwendungsfälle jeweils passende Speichersysteme. Ein Überblick über die verschiedenen Systeme ist hier zu finden. Die nachfolgende Anleitung zeigt auf wie man diese Speichersysteme beantragt, überwacht und wieder löscht. Eine Umfassende Anleitung ist hier zu finden.
Verfügbare Speichersystem anzeigen:
"ws_find -l"
Aktuell verwendete Workspaces anzeigen:
"ws_list"
Neuen Workspace anlegen
- "ws_allocate -F beegfs myWorkspace 30" Erzeugt einen neuen Workspace auf dem "beegfs" Speichersystem mit dem Namen "myWorksapce" und einer Dauer von 30 Tagen
Workspace löschen
- "ws_release -F beegfs myWorkspace" Löscht den Workspace "myWorkspace"
Singularity Container ausführen
- Notebook Question/Answering BERTipynb - 23 kB
Weitere Dokumente/ Antragsformulare finden Sie hier: https://www.htw-dresden.de/hochschule/fakultaeten/info-math/forschung/smart-production-systems/projekte/anleitungen
Containerisierung kapselt oder verpackt Softwarecode und alle seine Abhängigkeiten, um einheitlich und konsistent auf jeder Infrastruktur zu laufen. Auf ZIH-Systemen wird Singularity als Standard-Container-Lösung eingesetzt. Singularity ermöglicht es den Benutzern, die volle Kontrolle über ihre Umgebung zu haben. Das folgende Beispiel zeigt, wie man einen Docker Container aus dem Nvidia NGC Catalog importiert und anschließend ein Beispiel darin ausführt. Das Beispiel ist ein sogennantes Question/Answering Modell, basierend auf der BERT Architektur, welches mit dem SQuAD Datensatz vortrainiert wurde. Weitere Informationen zu Singularity Containern auf ZIH Systemen sind hier zu finden.
1. VPN Verbindung in die TU-Dresden aufbauen und mittels einer Shell auf den Login-Knoten des ZIH anmelden.
2. Eine Session mit dem AlphaCentauri Cluster starten
srun -p alpha-interactive -N 1 -n 1 --gres=gpu:1 --mem-per-cpu 11000 -c 6 --time=08:00:00 --pty bash
3. Workspace für Container anlegen
ws_allocate -F scratch ContainerTest 30
4. In das Workspace Verzeichnis wechseln
cd /scratch/ws/1/[your scratch]/
5. Tensorflow Container aus Nvidia NGC importieren
singularity build tensorflow.sif docker://nvcr.io/nvidia/tensorflow:22.01-tf1-py3
6. Den Container mit einer Shell starten (--nv startet den Container mit Nvidia GPU Unterstützung)
singularity shell --nv tensorflow.sif
8. Einen JupyterLab Server starten. Dabei ist der Port und der Token wichtig. Der Port wird für die Portweiterleitung in Schritt 9 und der Token für die Browseranmeldung in Schritt 11 benötigt.
jupyter lab
9. Um auf den Jupyter Server zugreifen zu können, muss auf dem lokalen PC eine Portweiterleitung zu dem ZIH Compute-Node eingerichtet werden
ssh -fNL <local_port>:<zih_node>:<remote_port> <zih_user>@taurus.hrsk.tu-dresden.de
10. Browser öffnen und mit folgender Adresse den Jupyter Server aufrufen:
localhost:<local_port>
11. Token aus Schritt 8 eingeben
12. Jupyter Notebook Datei herunterladen und über den Upload Button in das Jupyter hochladen
13. Notebook Schritt für Schritt ausführen und staunen!