Publikation

Pattern-based abstractions for parallel programs

  • Muster-basierte Abstraktionen für parallele Programme

Miller, Julian; Müller, Matthias S. (Thesis advisor); Bischof, Christian H. (Thesis advisor)

Aachen : RWTH Aachen University (2023)
Doktorarbeit

Dissertation, RWTH Aachen University, 2023

Kurzfassung

Die Rechenanforderungen in den Natur- und Ingenieurwissenschaften steigen mit der zunehmenden Komplexität von Simulationen und der Verfügbarkeit umfangreicher Daten rasch an. Diese Nachfrage wird mit großen Computerclustern und spezialisierten Hardwarebeschleunigern befriedigt. Die Programmierung solcher Systeme ist jedoch herausfordernd und zeitaufwändig, und die massive Nebenläufigkeit ist fehleranfällig. Die Softwareentwickler stehen dabei vor der Aufgabe, eine gut skalierbare Lösung zu finden und dabei die Korrektheit zu bewahren. Diese Softwareentwicklungsherausforderungen werden durch die sich schnell entwickelnde Hardware-Landschaft von High-Performance Computing (HPC) noch verstärkt. In dieser Arbeit werden die wichtigsten Herausforderungen bei der Entwicklung hochproduktiver und leistungsfähiger paralleler Programme untersucht. Diese Analyse basiert auf umfangreichen Studien mit einer Vielzahl von parallelen Programmen und Programmierern, die von menschlichen Probanden durchgeführt wurden. Sie deckt quantitative und messbare Produktivitätsmetriken, die wichtigsten Einflussfaktoren für die effiziente Entwicklung paralleler Programme und Methoden zur Kostenschätzung für die Softwareentwicklung auf. Auf der Grundlage dieser Analyse wird ein abstraktes Modell für parallele Algorithmen vorgeschlagen, um diese Herausforderungen zu entschärfen. Es basiert auf einer strikten Trennung zwischen der algorithmischen Struktur eines Programms und seinen ausgeführten Funktionen. Durch die Zerlegung von parallelen Programmen in eine hierarchische Struktur von parallelen Mustern werden effektive und globale Optimierungspotenziale aufgedeckt. Ein statisches Leistungsmodell sowie Optimierungs- und Scheduling-Algorithmen werden eingeführt, um diese Optimierungspotenziale zu nutzen. Es wird eine Proof of Concept (POC) Entwicklungspipeline vorgeschlagen, um Softwareentwicklern diesen musterbasierten Programmieransatz näherzubringen: Zunächst können parallele Programme in der vorgeschlagenen Parallel Pattern Language (PPL) spezifiziert werden, die sich eng an die mathematische Definition paralleler Algorithmen anlehnt. Alternativ dazu können vorhandene Codes mithilfe von Mustererkennungsmethoden in die vorgeschlagene hierarchische Musterstruktur übersetzt werden. Zweitens wird die hierarchische Struktur paralleler Muster extrahiert und globale Transformationen werden angewendet, um die Gesamtlaufzeit für eine Zielhardwarearchitektur zu minimieren. Drittens werden der optimierte Code und sein Scheduling in einer Source-to-Source-Methode für heterogene Systeme mit gemeinsamem und verteiltem Speicher und Beschleunigern generiert. Der vorgeschlagene Ansatz und die POC-Implementierung werden an realen parallelen Algorithmen evaluiert.

Einrichtungen

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