h1

h2

h3

h4

h5
h6
000967905 001__ 967905
000967905 005__ 20251020082356.0
000967905 0247_ $$2HBZ$$aHT030352386
000967905 0247_ $$2Laufende Nummer$$a42543
000967905 0247_ $$2datacite_doi$$a10.18154/RWTH-2023-08320
000967905 037__ $$aRWTH-2023-08320
000967905 041__ $$aEnglish
000967905 082__ $$a004
000967905 1001_ $$0P:(DE-82)IDM01129$$aMiller, Julian$$b0$$urwth
000967905 245__ $$aPattern-based abstractions for parallel programs$$cvorgelegt von Julian Sebastian Miller, Master of Science$$honline
000967905 246_3 $$aMuster-basierte Abstraktionen für parallele Programme$$yGerman
000967905 260__ $$aAachen$$bRWTH Aachen University$$c2023
000967905 300__ $$a1 Online-Ressource : Illustrationen, Diagramme
000967905 3367_ $$02$$2EndNote$$aThesis
000967905 3367_ $$0PUB:(DE-HGF)11$$2PUB:(DE-HGF)$$aDissertation / PhD Thesis$$bphd$$mphd
000967905 3367_ $$2BibTeX$$aPHDTHESIS
000967905 3367_ $$2DRIVER$$adoctoralThesis
000967905 3367_ $$2DataCite$$aOutput Types/Dissertation
000967905 3367_ $$2ORCID$$aDISSERTATION
000967905 500__ $$aVeröffentlicht auf dem Publikationsserver der RWTH Aachen University
000967905 502__ $$aDissertation, RWTH Aachen University, 2023$$bDissertation$$cRWTH Aachen University$$d2023$$gFak01$$o2023-08-18
000967905 5203_ $$aDie 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.$$lger
000967905 520__ $$aThe computational demands in sciences and engineering are quickly rising with the increasing complexities of simulation and the availability of extensive data. This demand is satisfied with large clusters of computers and specialized hardware accelerators. However, programming such systems is challenging and time-consuming, and the massive concurrency is error-prone. The software developers are faced with deriving a well-scaling solution while preserving correctness. These development challenges are aggravated by the quickly evolving hardware landscape of High-Performance Computing (HPC). This work investigates the key challenges when developing highly productive and performant parallel programs. This analysis is based on extensive human-subject studies with a diverse set of parallel programs and programmers. It uncovers quantitative and measurable productivity metrics, the main impact factors for developing parallel programs efficiently, and cost estimation methods for developing software. Based on this analysis, an abstract model of parallel algorithms is proposed to mitigate these challenges. It is based on a strict separation between the algorithmic structure of a program and its executed functions. Rich and high-level optimization potentials are revealed by decomposing parallel programs into a hierarchical structure of parallel patterns. A static performance model and optimization and scheduling algorithms are introduced to leverage these optimization potentials. A Proof of Concept (POC) development pipeline is proposed exposing this pattern-based programming approach to software developers: First, parallel programs may be specified in the proposed Parallel Pattern Language (PPL) that closely follows the mathematical definition of parallel algorithms. Alternatively, existing codes can be translated into the proposed hierarchical pattern structure with pattern-detection methods. Second, the hierarchical pattern structure is extracted and global transformations are applied to minimize the overall runtime for a target hardware architecture. Third, the optimized code and its scheduling are generated in a source-to-source fashion for heterogeneous systems with shared and distributed memory and accelerators. The proposed approach and POC implementation are evaluated on real-world parallel algorithms.$$leng
000967905 588__ $$aDataset connected to Lobid/HBZ
000967905 591__ $$aGermany
000967905 653_7 $$aDSL
000967905 653_7 $$aHPC
000967905 653_7 $$aabstraction
000967905 653_7 $$aoptimization
000967905 653_7 $$aparallel patterns
000967905 653_7 $$aproductivity
000967905 7001_ $$0P:(DE-82)IDM01074$$aMüller, Matthias S.$$b1$$eThesis advisor$$urwth
000967905 7001_ $$0P:(DE-82)003917$$aBischof, Christian H.$$b2$$eThesis advisor
000967905 8564_ $$uhttps://publications.rwth-aachen.de/record/967905/files/967905.pdf$$yOpenAccess
000967905 8564_ $$uhttps://publications.rwth-aachen.de/record/967905/files/967905_source.zip$$yRestricted
000967905 909CO $$ooai:publications.rwth-aachen.de:967905$$pdnbdelivery$$pdriver$$pVDB$$popen_access$$popenaire
000967905 9101_ $$0I:(DE-588b)36225-6$$6P:(DE-82)IDM01129$$aRWTH Aachen$$b0$$kRWTH
000967905 9101_ $$0I:(DE-588b)36225-6$$6P:(DE-82)IDM01074$$aRWTH Aachen$$b1$$kRWTH
000967905 9141_ $$y2023
000967905 915__ $$0StatID:(DE-HGF)0510$$2StatID$$aOpenAccess
000967905 9201_ $$0I:(DE-82)123010_20140620$$k123010$$lLehrstuhl für Informatik 12 (Hochleistungsrechnen)$$x0
000967905 9201_ $$0I:(DE-82)120000_20140620$$k120000$$lFachgruppe Informatik$$x1
000967905 961__ $$c2023-10-09T10:49:01.411232$$x2023-08-28T10:56:24.985492$$z2023-10-09T10:49:01.411232
000967905 9801_ $$aFullTexts
000967905 980__ $$aI:(DE-82)120000_20140620
000967905 980__ $$aI:(DE-82)123010_20140620
000967905 980__ $$aUNRESTRICTED
000967905 980__ $$aVDB
000967905 980__ $$aphd