Tools für HPC und KI im Maschinenbau

Inhalt

Die Vorlesung vermittelt die Grundlagen über das für die Bearbeitung der Themenfelder Künstliche Intelligenz und High Performance Computing notwendige Handwerkszeug.

Es wird insbesondere auch auf die Rahmenbedingungen und die Infrastruktur, welche das KIT zur Verfügung stellt, eingegangen.

Es werden folgende Themen und Fragestellung behandelt:

  • Hardware und Betriebssystem
    Über welche (relevanten) Komponenten verfügt ein Computer? Wie können mit unterschiedlichen Betriebssystemen (Windows, MacOS, Linux) KI-Anwendungen ausgeführt werden? Wie kann von unterschiedlichen Betriebssystemen aus auf Supercomputer zurückgegriffen werden?
  • Kommandozeile
    Was ist die Kommandozeile und warum existiert diese (immernoch)? Welche Möglichkeiten bieten die unterschiedlichen Betriebssysteme, auf die Kommandozeile zurückzugreifen? Welche Shells existieren, welche sind auf HPC-Einrichtungen typisch? Welches sind die grundlegenden Befehle, um sich auf einem Supercomputer zurechtzufinden?
  • Fernzugriff
    Wie greift man auf einen Supercomputer zu, welche Arten der Authentifizierung gibt es? Wie richtet man SSH-Keys ein und welche Formen der 2-Faktor Authentifizierung sind üblich? Wie funktioniert ein Dateitransfer zwischen Supercomputer und lokalem Rechner?
  • Supercomputer und HPC
    Wie unterscheidet sich ein Supercomputer von normalen PCs? Welche HPC-Ressourcen bietet das KIT? Wie wird auf diese zugegriffen und welche Besonderheiten hat die KIT-Infrastruktur gegenüber anderen Systemen? Welche Infrastruktur ist landes- und bundesweit verfügbar, für welche Zwecke? Wie muss eine Software beschaffen sein, damit diese kompatibel zu Supercomputern ist?
  • Versionsverwaltung
    Was ist das und warum benötigt man das? Welche Dienste für das Code-Hosting existieren? Wie greift man auf die von KIT betriebene Gitlab-Instanz zu? Welche Möglichkeiten des CI/CD existieren am KIT?
  • Editoren
    Wie bearbeitet man Programmcode, lokal oder remote? Welche Möglichkeiten bietet Visual Studio Code, KI-Anwendungen oder HPC-Workflows auf den KIT-Supercomputern zu debuggen? Wie kann mit code-server auf Compute-Knoten Code entwickelt werden? Wie kann dokumentiert werden? Wie ist der aktuelle Stand von Pair-Programming mit KI?
  • Python und Jupyter
    Welche Python Distributionen existieren? Welche eignen sich für die KIT-HPC-Ressourcen? Wie können Python Pakete installiert und genutzt werden? Was sind Virtual Environments und wofür werden diese benötigt? Wie können mit Jupyter Machine Learning Anwendungen entwickelt werden, lokal und remote?
  • Maschinelles Lernen
    Welche typischen Softwarepakete werden für KI-Anwendungen benötigt? Wie werden diese installiert und verwendet? Wie sieht ein typischer Workflow aus, um ML-Anwendungen zu entwickeln/zu nutzen? Was sind Beschleuniger, über welche Spezialhardware verfügt die KIT-Infrastruktur?
  • Remote Visualisierung
    Wie kann man grafische Anwendungen auf entfernten Rechnern verwenden? Welche Möglichkeiten der Remote-Visualisierung gibt es? Wie kann am Beispiel von Paraview eine Strömungssimulation interaktiv/nicht interaktiv grafisch ausgewertet werden?
  • Spezielle Themen
    Was sind Container und Virtuelle Maschinen? Welchen Nutzen haben Container insbesondere für Machine Learning Anwendungen? Welche Container-Lösungen können auf KIT-Supercomputern verwendet werden? Was ist WSL 2? Welche (kommerziellen) Cloud-Dienste für HPC und KI existieren? Welche Cloud-Dienste stehen am KIT kostenlos zur Verfügung?

Lernziele
Ein wesentliches Lernziel der Vorlesung ist eine Übersicht über verfügbare und geeignete Software-Werkzeuge (Editoren, Zugriffsmöglichkeiten, Versionsverwaltung, Infrastruktur (am KIT)) für HPC und KI zu schaffen. Gegebenenfalls existierende Berührungsängste gegenüber dem Betriebssystem Linux und der komplex scheinenden Nutzung von Supercomputern werden beseitigt. Die Studierenden werden nach erfolgreichem Besuch der Vorlesung in der Lage sein, Abschlussarbeiten, welche die Themenfelder Künstliche Intelligenz oder High Performance Computing berühren, zu bearbeiten.


Leistungskontrolle
Mündliche Prüfung: 30 min

VortragsspracheDeutsch