Supercomputing Akademie: Paralleles Programmieren mit OpenMP

Mit OpenMP lassen sich Programme für Shared-Memory-Architekturen erstellen. Ziel ist es, seriellen Quellcode mit ausgewählten OpenMP-Direktiven zu parallelisieren, um die Ausführung des Codes zu beschleunigen. In diesem Kurs lernen Sie mit OpenMP Teile eines Programms zu parallelisieren. Hierzu setzen Sie verschiedene Direktiven ein. Die so adressierten Teile werden auf mehrere Threads verteilt, die auf mehreren Kernen gerechnet werden. Neben dem initialen Thread ("Master") stehen weitere Threads zur Verfügung, die zusammen ein „Team“ formen. OpenMP erlaubt es Ihnen, sich auf die rechenintensiven Teile eines Programms zu konzentrieren. Die umgebenden Bereiche können weitgehend unverändert bestehen bleiben. OpenMP gilt daher als einfachste Methode der Parallelisierung, der Parallelisierungsaufwand hält sich vergleichsweise in Grenzen. Dieser Kurs bietet darüber hinaus die Möglichkeit zum intensiven Austausch mit den Dozenten sowie den anderen Kursteilnehmern.

Location

Online course
Organizer: HLRS, University of Stuttgart, Germany

Start date

Apr 15, 2024

End date

Apr 26, 2024

Language

German

Entry level

Basic

Course subject areas

Parallel Programming

Supercomputing Academy

Topics

OpenMP

Back to list

Inhalt

  • Was ist HPC? Hardware und Herausforderungen
  • Rechenknoten
  • Paralleles Denken
  • Parallelisierbarkeit von Software, Berechnungen und Anforderungen
  • Einführung in OpenMP
  • Programmier- und Ausführungsmodell
    • Parallele Regionen: Team von Threads
    • Syntax
    • Datenumgebung
    • Umgebungsvariablen
    • Runtime Library Routinen
  • Worksharing Direktiven
    • Welcher Thread führt welches Statement oder welche Operation aus?
    • Tasks
    • Synchronisationskonstrukte, z. B. kritische Regionen
    • Nesting und Binding
  • Datenumgebung und kombinierte Konstrukte
    • Private und Shared Variablen, Reduction Clause
    • Kombinierte parallele Worksharing Direktiven
  • Zusammenfassung der OpenMP-API
  • OpenMP Pitfalls & Optimierungsprobleme

Dozenten

Dr.-Ing. Martin Bernreuther (HLRS)

Preise

30,00€ Student:innen ohne Masterabschluss (oder äquivalentem Abschluss)

60,00€ Mitarbeiter:in oder Doktorand:in an einer deutschen Universität oder einem deutschen öffentlichen Forschungsinstitut

120,00€ Mitarbeiter:in oder Doktorand:in an einer Universität oder einem öffentlichen Forschungsinstitut in einem anderen EU-, EU-assoziierten oder PRACE-Land als Deutschland

240,00€ Mitarbeiter:in oder Doktorand:in an einer Universität oder einem öffentlichen Forschungsinstitut außerhalb eines EU-, EU-assoziierten oder PRACE-Landes

600,00€ Andere Teilnehmer:innen, z. B. aus der Industrie, von anderen öffentlichen Einrichtungen oder private Teilnahme

Link zu den EU und EU-assoziierten (Horizon Europe), und PRACE Ländern.

Zielgruppen

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

Vorkenntnisse

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.

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.

Technische Voraussetzungen

  • 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).

Zeitaufwand

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

Flexibles Lernen

Sie lernen in komfortabler und effektiver 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. Bei Wahl des unbetreuten Kurses entfallen die virtuellen Seminare!

Qualifizierte Teilnahmebestätigung

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.

Zertifikat

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.

Weitere Informationen

Für weitere Informationen zur Supercomputing Akademie besuchen Sie unsere Website: https://www.supercomputing-akademie.de/

Related training

All training

May 06 - 07, 2024

Online


June 03 - 07, 2024

Hybrid Event - Stuttgart, Germany


October 14 - 18, 2024

Stuttgart, Germany