nächster Kurslauf

21. Februar - 28. März 2022

KURSINFORMATIONEN

  • Was ist Performance?

  • Skalierbarkeit

  • Performance Optimierung als iterativer Prozess

  • Performance Messmethoden

  • Einführung zur Anwendung 3DFD

  • Parallele Effizienz-Metriken

  • Anatomie der MPI Kommunikation

  • Asynchrone Kommunikation

  • Hybride MPI+OpenMP

  • Lastbalance

  • Aggregierung von Nachrichten

  • MPI Kommunikationspattern

  • Kollektive Operationen

  • Prozess Pinning und Mapping

  • Sie besitzen ein grundlegendes Verständnis von Performance als zentrale Herausforderung bei der Entwicklung von Programm-Code für Hochleistungsrechner.
  • Sie kennen die wichtigsten Metriken zur quantitativen Beurteilung der Performance einer Anwendung.
  • Sie verstehen Performance Optmimierung als einen iterativen strukturierten Prozess, dem sogenannten Performance Engineering Workflow.
  • Sie kennen grundlegende Instrumente zur Messung der Performance sowohl der Anwendung als ganzen, Änderungen im Verlauf der Zeit, oder als Funktion einzelner Code-Abschnitte.
  • Sie sind in der Lage, Optimierungsverfahren in einfachen Anwendungskontexten einzusetzen.
  • Sie besitzen ein grundlegendes Verständnis des Ablaufs von Kommunikationsoperationen in MPI.
  • Sie kennen und verstehen die grundlegenden Beiträge zur Kommunikation in HPC Anwendungen und können prinzipiell deren Effizienz bestimmen.
  • Sie kennen Tools zur Messung der Kommunikationszeit und deren Beiträge.
  • Sie kennen grundlegende Herangehensweisen für die Optimierung der Kommunikation.
  • Sie setzen fortgeschrittene MPI-Techniken zur Optimierung ein. Sie besitzen ein grundlegendes Verständnis des Ablaufs von Kommunikationsoperationen in MPI.

 
Dr. Jose Gracia
High-Performance Computing Center Stuttgart (HLRS)
Head of Scalable Programming Models & Tools
Universität Stuttgart
Nobelstraße 19, 70569 Stuttgart

 
Christoph Niethammer
High-Performance Computing Center Stuttgart (HLRS)
Scalable Programming Models & Tools
Universität Stuttgart
Nobelstraße 19, 70569 Stuttgart
 

  • Software-Entwickler
  • Software-Architekten
  • Informatiker
  • IT-Interessierte
  • Simulationsingenieure

Linux

Die Kursteilnehmer besitzen erweiterte Grundkenntnisse des freien Betriebssystems Linux und Kenntnisse in Linux-Anwendung. Der Hintergrund von Linux sowie die wichtigsten Konzepte und Werkzeuge von Linux wie die

  • Shell und Shell-Befehle (→sicherer Umgang mit der Kommandozeile),

  • Secure Shell,

  • den Umgang mit Dateien und Skripten,

  • die Struktur des Systems,

  • die Benutzer- und Rechteverwaltung und

  • das Erstellen von einfache Batch-Skripten mit einem Editor wie nano, vi oder emacs.

sollten bekannt sein. Eine Anleitung zur Arbeit auf dem Trainingscluster wird zur Verfügung gestellt.

Falls Sie bei sich in dieser Hinsicht noch Defizite feststellen, verweisen wir an dieser Stelle auf https://www.tuxcademy.org/product/lxes/

Programmierkenntnisse

  • Sie verfügen über solide Programmierkenntnisse in einer Programmiersprache (z.B. C, Fortran oder Python).

  • Sie können weitere Programmiersprachen und deren Konstrukte verstehen.

  • Sie sind in der Lage mit Compilern und Linker umzugehen.

  • Sie besitzen Kenntnisse über make-Files und können diese erstellen.

Umgang mit Plot-Tools

Ein sicherer Umgang mit einem Programm zur grafischen Darstellung von Messdaten und mathematischen Funktionen sowie der Umgang mit CSV-Dateien wird benötigt.

Grundlegendes Hardwareverständnis

Die Teilnehmer verstehen wie die Hardware eines klassischen Computers aufgebaut ist. Das beinhaltet vor allem das grundlegende Verständnis von

  • Prozessoren (CPU),

  • Arbeitsspeichern (RAM-Speicher) und

  • Verbindung zwischen diesen beiden Komponenten,

  • Netzwerktechnik,

  • Festplatten und

  • Rechenbeschleuniger.

MPI

Modul Paralleles Programmieren mit MPI.

  • Rechner mit ssh-Zugang zum Trainingscluster (mit ssh-Key).

    • Ggf. muss Software installiert werden. Dafür notwendige Rechte müssen vorhanden sein.

    • Netzverbindungen nach außen zu fremden Clustern müssen aufgebaut werden können.

  • Eine stabile Internetverbindung für das Bearbeiten der Lerninhalte und Übungen wird empfohlen.

  • Zugang zu Videokonferenz-Tool mit Kamera und Mikrofon (ein Headset wird aus Qualitätsgründen empfohlen).

Der Zeitaufwand pro Modul beträgt insgesamt 50 Stunden bei wochenweise freier Zeiteinteilung sowie feste Termine für virtuelle Seminare (abends) und Prüfung (tagsüber). Die Dauer erstreckt sich über 5 Wochen mit einem ungefähren wöchentlichen Aufwand von 10 Stunden.

Sie lernen in einem komfortablen und effektiven Mix aus Präsenz- und Onlinelehre und erwerben so HPC-Fähigkeiten auf höchstem Niveau. Ergänzt werden die Online-Phasen durch regelmäßige Online-Meetings im virtuellen Klassenraum. Bei freier Zeiteinteilung wenden die Teilnehmerinnen und Teilnehmer das Gelernte in Übungen auf dem Trainingscluster an. Die Fachexperten des HLRS, welche die Lerneinheiten entwickelt haben, stehen in wöchentlichen virtuellen Seminaren für Fragen zur Verfügung. Ein Forum ermöglicht den fachlichen Austausch der Teilnehmerinnen und Teilnehmer untereinander.

Für die Teilnahme an dem Modul erhalten Sie vom Höchstleistungsrechenzentrum Stuttgart eine Teilnahmebestätigung. Wenn Sie zudem sämtlich Lerninhalte des Moduls bearbeitet, regelmäßig an den virtuellen Seminaren teilgenommen und die Lernaufgaben fachgerecht beantwortet haben, erhalten Sie eine qualifizierte Teilnahmebestätigung.

Sie erhalten ein Zertifikat, wenn Sie die Voraussetzungen für die qualifizierte Teilnahmebestätigung erfüllen und die Abschlussprüfung des Moduls bestehen. Mit der erfolgreichen Prüfung weisen Sie nach, dass Sie Kompetenzen erworben haben, das erlernte Wissen selbständig anzuwenden.

Haben Sie Fragen? Wir sind für Sie da.