Fakultät Informatik/Mathematik

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.

       1. Jupyter Notebook Datei herunterladen

       2. VPN Verbindung in die TU-Dresden  aufbauen und in das JupyterHub einloggen

       3. Eine neue Session wie auf dem Bild starten

       4. Notebook Datei über den Upload Button hochladen

       5. Notebook öffnen und dieses Schritt für Schritt ausführen

Eigene Python Environment mit Anaconda erstellen

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

       9. Session mit dem AlphaCentauri Cluster starten

       10. Notebook Datei in das JupyterHub hochladen und starten

       11. Zuvor erstelle Environment über die Environment Auswahl auswählen.

       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.

  1. Verfügbare Speichersystem anzeigen: 
    • "ws_find -l"
  2. Aktuell verwendete Workspaces anzeigen:
    • "ws_list"
  3. 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
  4. Workspace löschen
    • "ws_release -F beegfs myWorkspace" Löscht den Workspace "myWorkspace"

Singularity Container ausführen

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

 

       7. Für die spätere Portweiterleitung den aktuellen Hostname des ZIH-Nodes anzeigen

              hostname

       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!