ICC (Informatik Compute Cloud)

Die ICC ist wieder im Beta-Betrieb verfügbar. Die Beta-Phase wird bis Anfang des nächsten Semesters dauern. In dieser Zeit wollen wir die ICC weiter ausbauen und weitere CPU- und die GPU-Nodes hinzufügen. Außerdem arbeiten wir an einem neuem System für die Quotierung und Priorisierung von Ressourcen im Cluster. Login und Dokumentation könnt ihr unter folgendem Link finden: https://icc.informatik.haw-hamburg.de/ Der Login funktioniert jetzt über den Informatik Account (infw…). Bitte beachtet, dass die ICC API nur aus dem HAW Netz (oder über das HAW VPN) erreichbar sind. Weltöffentliche Dienste dürfen wie immer aus Sicherheitsgründen nur mit Genehmigung erstellt werden. Das bedeutet, alle Ingress Ressourcen müssen auf den HAW IP-Adressbereich begrenzt werden. https://icc.informatik.haw-hamburg.de/docs/fortgeschritten/usage-ingress/ Für weitere Informationen folgen Sie bitte den Teams-Supportkanal des Informatik-Departments!

Die ICC („Informatik Compute Cloud“) ist ein vom AI-Labor betriebenes Kubernetes-Cluster.

Lehrende, Studierende und Forschungsgruppen des Departments Informatik haben Zugriff auf das Cluster und können dort selbstverwaltet ihre Anwendungen betreiben. Weitere Informationen zum Zugriff sowie ein Tutorial finden sich auf der ICC-Homepage unter https://icc.informatik.haw-hamburg.de.

Kubernetes (https://kubernetes.io) ist eine Cloud-Computing Umgebung, um containerbasierte Workloads auszuführen. Dies können prinzipiell beliebige Dienste sein (Datenbanken, Webserver, REST-APIs …), die in Form von (Docker-)Containern ausgeliefert werden. Die ICC ist stark mit dem GitLab (https://git.haw-hamburg.de) verknüpft und ermöglicht u.a. die Verwendung von CI/CD-Pipelines zur automatisierten Bereitstellung von Anwendungen.

Für Fragen, Anregungen und Feedback existiert bei MS Teams ein ICC-Unterkanal in dem „Support Dept. Informatik IT-Dienste“-Raum (Code: qwlqb91).

JupyterHub

Der JupyterHub (auch „JupyterLab“ genannt) unter https://jupyterhub.informatik.haw-hamburg.de ist einer der Dienste, die innerhalb der ICC betrieben werden. Dabei handelt es sich um eine Browser-basierte Experimentier- und Ausführungsumgebung für Programmcode (in erster Linie Python). Bei dem Jupyter-Projekt (nähere Infos unter https://jupyter.org) werden Programmcode, deren Ausführung/Ausgaben und Dokumentation in einer Datei kombiniert, sogenannten Notebooks.

Die Bündelung von Programmcode, Ergebnissen und Kommentaren eignet sich gut für die forschungsgetriebene Lehre und wird vor allem im Kontext des maschinellen Lernens (Bilderkennung, neuronale Netze etc.) stark verwendet.

Der Login erfolgt mit der HAW-Kennung, anschließend stehen diverse Server zur Auswahl. Diese Server (bzw. „Kernel“ im JupyterHub/Python-Sprachgebrauch) stellen eine vorkonfigurierte Auswahl von Sprachkomponenten und Bibliotheken dar, die aufeinander abgestimmt sind, und werden dediziert pro Nutzer in Form von Kubernetes-Pods in der ICC gestartet. (Jede/r hat also seinen bzw. ihren eigenen Server zur Laufzeit.) Da die zugrundeliegenden Containerabbilder unveränderlich und flüchtig sind, wird die Speicherung der Benutzerdaten in Form von Cloud-Volumes realisiert. Jeder Benutzer bekommt bei dem initialen Login ein frisches 20GB-Volumes bereitgestellt; sollte dieser Speicher nicht ausreichen, ist eine Vergrößerung problemlos möglich. Dazu einfach per MS-Teams beim Informatik-Support anfragen (Teamcode qwlqb91), Unterkanal JupyterHub.

Außerdem lässt sich bei der Serverauswahl festlegen, ob man seinen Code mit Grafikkartenunterstützung starten möchten („GPU“ im Namen der Images) oder ohne. Die GPU-Ausführung ist insbesondere für das Trainieren mit ML-Framworks (Tensorflow, Keras, Pytorch) interessant, dort lassen sich große Geschwindigkeitsvorteile im Vergleich zur reinen CPU-Ausführung erzielen. Hierfür stehen 12 Nvidia Tesla V100 Karten im Cluster zur Verfügung. Man beachte allerdings, dass die Nutzung dieser Karten einen exklusiven Zugriff darstellt, d.h. sie nur von einem Nutzer zur Zeit verwendet werden können. Insofern sollte mit diesen Ressourcen mit Bedacht umgegangen werden und man sollte sie nur bei Bedarf allokieren (nicht etwa für Vorbereitung und erste Tests) und nach der Nutzung auch wieder freigeben (Control Panel → Shutdown Server).