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