Abstractions for Performance Programming on Multi-Core Architectures with Hierarchical Memory

  • Abstraktionen zur performanten Programmierung von Multi-Core Architekturen mit hierarchischem Speicher

Terboven, Christian; Müller, Mathias S. (Thesis advisor); Bischof, Christian (Thesis advisor); Chapman, Barbara (Thesis advisor)

1. Auflage. - Aachen : Apprimus Verlag (2016)
Doktorarbeit

In: Ergebnisse aus der Informatik 7
Seite(n)/Artikel-Nr.: 1 Online-Ressource (ii, 160 Seiten) : Illustrationen, Diagramme

Dissertation, RWTH Aachen University, 2016

Kurzfassung

Parallelprogrammierung für Systeme mit gemeinsamem Speicher (Shared Memory) scheint auf den ersten Blick oftmals recht einfach, wie zum Beispiel das Einfügen von OpenMP Pragmas in den Programmcode. Dabei hängt die für Anwendungen erreichbare Leistung von bestimmten Eigenschaften der Systemarchitektur ab - beispielsweise die erreichbare Speicherbandbreite innerhalb der Speicherhierarchie - und in wie weit diese in der Anwendungsentwicklung berücksichtigt wurden. Diese Arbeit präsentiert Lösungen um Shared Memory-parallele Anwendungen mittels eines methodischen Ansatzes für aktuelle und kommende Architekturen auszulegen. Für dieses Ziel wird eine erfolgreiche Strategie aus dem Software-Engineering eingesetzt: die Einführung von Abstraktionen.Mit dem uneinheitlichen Speicherzugriffsverhalten auf großen Shared Memory Systemen sowie bei der Berücksichtigung von Energieeffizienz wurde der Ausdruck und die Verwaltung von Datenlokalität wichtig auf aktuellen Systemarchitekturen, mit weiter steigender Bedeutung. Weder wurden die de facto Parallelisierungsstandards MPI und OpenMP dafür ausgelegt, noch ist diese Aufgabe interessant und geeignet für Anwendungswissenschaftler. Geeignete Abstraktionen für Parallelität und Datenlokalität müssen um erfolgreich zu sein gleichzeitig leistungsfähig und einfach in der Anwendung in bestehende Programmcodes sein. Die Bedeutung des Wortes Abstraktion in dieser Arbeit ist zweifältig: zum einen ist damit die methodische Auswahl der Systemarchitektureigenschaften gemeint die wichtig sind um Anwendungsperformance zu erreichen, und zum zweiten, bezeichnet es den Entwurf von Konzepten und Softwarekomponenten für die Parallelprogrammierung und Parallelisierung von Simulationsanwendungen.Damit die Abstraktion vom Endnutzer akzeptiert werden können, müssen vorhandene Daten- und Programmstrukturen soweit wie möglich unverändert bestehen bleiben können, insbesondere in Objekt-orientierten Programmen. Entsprechend müssen die Abstraktionen in einer allgemein verwendbaren Form ausgedrückt werden, beispielsweise müssen sie sich mit üblichen Designmustern integrieren lassen. Um dieses Ziel zu erreichen, werden in dieser Arbeit im ersten Schritt Speicherverwaltungsstrategien für NUMA Systeme identifiziert. Anschließend wird ein leistungsfähiges und dennoch einfach anzuwendendes Thread-Affinity Modell für OpenMP entwickelt. Schließlich wird für die Speicherverwaltungsstrategien und das Thread-Affinity Modell gezeigt, wie sie auch für die Parallelisierung mit Objekt-orientierten Abstraktionen geeignet sind. Um dies zu unterstützen werden mehrere Benchmarks und Experimente gezeigt um das Verhalten von OpenMP Implementierungen zu analysieren. In ihrer Gesamtheit liefert diese Arbeit somit einen methodischen Ansatz zur Entwicklung paralleler technisch-wissenschaftlicher Software für Multi- und Many-Core-Architekturen.

Einrichtungen

  • Lehrstuhl für Informatik 12 (Hochleistungsrechnen) [123010]
  • Fachgruppe Informatik [120000]

Identifikationsnummern