2020 & 2021
Dissertation, RWTH Aachen University, 2020
Veröffentlicht auf dem Publikationsserver der RWTH Aachen University 2021
Genehmigende Fakultät
Fak01
Hauptberichter/Gutachter
; ;
Tag der mündlichen Prüfung/Habilitation
2020-09-22
Online
DOI: 10.18154/RWTH-2021-08729
URL: https://publications.rwth-aachen.de/record/826069/files/826069.pdf
Einrichtungen
Inhaltliche Beschreibung (Schlagwörter)
DSL (frei) ; HPC (frei) ; Molekulardynamik (frei) ; Potentiale (frei) ; Vektorisierung (frei)
Thematische Einordnung (Klassifikation)
DDC: 004
Kurzfassung
Diese Dissertation präsentiert eine domänenspezifische Sprache (DSL) für Mehrkörper-Potentiale, welche bei Molekulardynamik-Simulationen in den Materialwissenschaften verwendet werden. Dabei stellen wir auch einen Übersetzer vor, der die DSL in performanten Programmcode umsetzt, der für moderne Hochleistungsrechner geeignet ist. Wir beginnen, indem wir Möglichkeiten der Optimierung von Potentialen auf Hochleistungsrechnern in zwei Fällen untersuchen: Dem Tersoff und dem AIREBO Potential. In beiden Fällen finden wir eine Reihe von Optimierungen, sowohl MD-bezogen als auch allgemein verwendbar, die letztlich zu einem bis zu 5x schnelleren Programm führen; wir entwickeln auch eine Methode, damit der optimierte Code auf verschiedensten Rechnerarchitekturen lauffähig ist. Während der Behandlung des AIREBO Potentials finden wir Fehler im existierenden Programmcode. Diese Erfahrung motiviert, dass der fehleranfälligste Schritt bei der Erstellung einer Potential-Implementierung, die Ableitung, von unserem Übersetzer automatisch durchgeführt wird. Nachdem wir lohnenswerte Optimiersungsmethoden identifiziert haben, entwerfen wir einen „Potential-Compiler“, kurz PotC, der aus Spezifikationen (geschrieben in unserer DSL), voll funktionsfähige portable Implementierungen generiert. Der DSL-Code ist dabei deutlich kürzer als manuell geschriebener Code (20x bis 30x) und reduziert somit sowohl die manuell zu verrichtenden Arbeit wie auch die Möglichkeiten, Fehler beim Programmieren zu machen. Wir präsentieren Messungen der Leistungsfähigkeit für fünf verschiedene Rechnerarchitekturen: Drei CPUs (Broadwell, Knights Landing und Skylake) und zwei GPUs (Pascal und Volta). Einerseits ist die Leistung des generierten Codes in manchen Fällen deutlich niedriger als der handgeschriebenen Referenz, andererseits gibt es auch Fälle in denen generierte Implementierungen handgeschriebenen ebenbürtig oder gar schneller sind. In diesen Fällen messen wir bis zu 9x schnellere Simulationen verglichen mit einer nicht-vektorisierten Implementierung.This thesis introduces a domain-specific language (DSL) for many-body potentials, which are used in molecular dynamics (MD) simulations in the area of materials science. We also introduce a compiler to translate the DSL into high-performance code suitable for modern supercomputers. We begin by studying ways to speedup up potentials on supercomputers using two case studies: The Tersoff and the AIREBO potentials. In both case studies, we identify a number of optimizations, both domain-specific and general, to achieve speedups of up to 5x; we also introduce a method to keep the resulting code performance portable. During the AIREBO case study, we also discover that the existing code contains a number of errors. This experience motivates us to include the derivation step, the most error-prone step in manual optimization, in our automation effort.After having identified beneficial optimization techniques, we create a “potential compiler”, short PotC, which generates fully-usable performance-portable potential implementations from specifications written in our DSL. DSL code is significantly shorter (20x to 30x) than a manual code, reducing both manual work and opportunities to introduce bugs.We present performance results on five different platforms: Three CPU platforms (Broadwell, Knights Landing, and Skylake) and two GPU platforms (Pascal and Volta). While the performance in some cases remains far below that of hand-written code, it also manages to match or exceed manually written implementations in other cases. For these cases, we achieve speedups of up to 9x compared to non-vectorized code.
OpenAccess:
PDF
(additional files)
Dokumenttyp
Dissertation / PhD Thesis
Format
online
Sprache
English
Externe Identnummern
HBZ: HT021078919
Interne Identnummern
RWTH-2021-08729
Datensatz-ID: 826069
Beteiligte Länder
Germany
|
The record appears in these collections: |