OpenMP


Zielgruppe:

Softwareentwickler, die Multithread-/Multicore-Applikationen plattformunabhängig und ohne konkrete Threadprogrammierung entwickeln wollen. Dieser Kurs eignet sich besonders dann, wenn für sequenzielle Ausführung entwickelte Applikationen auf einfache Weise parallelisiert werden sollen, ohne deren prinzipielle Codestruktur zu verändern.

Voraussetzungen:

Kenntnis der Programmiersprache C.

Dauer:

1 Tag

Kursziel:

Der Kursteilnehmer kann plattformunabhängige und portierbare Multithread- und Multicore-Applikationen erstellen, ohne sich explizit um Thread-Programmierung kümmern zu müssen. Darüber hinaus weiß er, wie bestehender Anwendungscode, der für sequenzielle Ausführung entwickelt wurde, ohne prinzipielle Strukturänderung parallelisiert werden kann. Er ist in der Lage, Applikationen so zu entwerfen, dass sie von Leistungssteigerungen durch Hinzufügen weiterer Cores profitieren können, ohne die Anwendung erneut anpassen zu müssen.


Inhalt:

Einführung

  • Threadingmodelle
    • Singlethreaded
    • Multithreaded
      • Singlecore
      • Multicore
  • Was ist OpenMP?
  • Multithreaded "Hello World“

Schleifenparallelisierung

  • parallel_for
  • Threadlokale Variable
  • threadprivate und copyin
  • Private Variable
  • lastprivate
  • Reduktion
  • Scheduling-Strategien
  • static
  • dynamic
  • guided
  • runtime
  • Bedingte Parallelisierung
  • single
  • nowait
  • master
  • copyprivate

Synchronisation

  • Atomarer Zugriff
  • Kritische Bereiche
  • Locks
  • Barrieren
  • Geordnete Ausführung
  • Interthread-Datenkonsistenz
  • Implizite Verwendung von flush

Sonstiges

  • Sections
  • Verwaiste Direktiven
  • Geschachtelte parallele Bereiche
  • Dynamische Anpassung der Anzahl der Threads
  • Zeitmessung

Nicht genau was Sie suchen?