Literatur vom gleichen Autor/der gleichen Autor*in
plus bei Google Scholar

Bibliografische Daten exportieren
 

Domänenspezifische Sprachen zur Umsetzung numerischer Lösungsverfahren für gewöhnliche Differentialgleichungssysteme

Titelangaben

Gleißner, Benedikt:
Domänenspezifische Sprachen zur Umsetzung numerischer Lösungsverfahren für gewöhnliche Differentialgleichungssysteme.
Bayreuth , 2019 . - 63 S. - (Bayreuth Reports on Parallel and Distributed Systems ; 12 )
(Masterarbeit, 2019 , Universität Bayreuth, Fakultät für Mathematik, Physik und Informatik)
DOI: https://doi.org/10.15495/EPub_UBT_00004297

Volltext

Link zum Volltext (externe URL): Volltext

Abstract

Domänenspezifische Sprachen (domain-specific languages, DSLs) werden dazu eingesetzt, Lösungen für ein bestimmtes Problemfeld umzusetzen. Sie sind im Gegensatz zu General Purpose Languages (GPLs), wie Java oder C, speziell für Probleme innerhalb einer Domäne optimiert, wodurch Programme in der Regel einfacher und schneller implementiert werden können. Mögliche Fehlerquellen im Code können durch Validierungsmechanismen und die Struktur der DSL selbst frühzeitig erkannt und behoben werden. Durch automatische Codeerzeugung und Autotuning können aus einem mit einer DSL geschriebenem Programm mehrere Codevarianten erzeugt werden, die auf verschiedene Systeme portierbar sind und gleichzeitig auf dem jeweiligen System eine hohe Performanz erreichen. Im Rahmen dieser Arbeit wurden mehrere DSLs zur Implementierung numerischer Lösungsverfahren für gewöhnliche Differentialgleichungssysteme (ordinary differential equations, ODEs) entwickelt. Die verbreiteten Lösungsverfahren für ODEs lassen sich durch Datenflussgraphen beschreiben, in dem die Berechnungen des Verfahrens durch Basisoperationen als Knoten abgedeckt sind. Als ersten Schritt hin zu einem fertigen Programm wird die Struktur des Datenflussgraphen in einer DSL spezifiziert. In einer weiteren DSL können dann Verfahrenskoeffizienten, wie die Stufenzahl oder ein Butcher-Tableau, deklariert werden. Mit diesen beiden Sprachen ist das Verfahren bereits vollständig beschrieben. Zwei weitere DSLs befassen sich mit einer möglichst effizienten Implementierung auf Grafikprozessoren (graphics processing units, GPUs). Lösungsverfahren von ODEs sind durch die Eigenschaften von GPUs, wie kleinen Caches oder weitem SIMD, oft durch den Speicher limitiert. Daher gilt es für eine möglichst hohe Performanz die Anzahl an Speicherzugriffen zu minimieren, was durch die Fusion mehrerer Basisoperationen zu einem Kernel erreicht werden kann. Eine DSL befasst sich daher mit der Abbildung von Knoten des Datenflussgraphen auf Kernel. Durch Transformationen auf dem Graphen als vorbereitenden Schritt kann die Anzahl an Speicherzugriffen noch stärker reduziert werden. Diese Transformationen können in einer weiteren DSL deklariert werden.

Abstract in weiterer Sprache

Domain-specific languages (DSLs) are used to implement solutions for a specific problem area. In contrast to general purpose languages (GPLs), such as Java or C, they are specifically optimized for problems within a domain, which usually makes it easier and faster to implement programs. Possible sources of errors in the code can be detected and corrected in an early stage by validation mechanisms and the structure of the DSL itself. Through automatic code generation and autotuning, several code variants can be generated from a program written with a DSL. These code variants can be ported to different systems and simultaneously achieve high performance on the respective system. In this work several DSLs for the implementation of numerical solution methods for ordinary differential equations (ODEs) have been developed. All common ODE solvers can be described by data flow graphs, in which all calculations of the method are covered by basic operations as nodes. As a first step towards a finished program, the structure of the data flow graph is specified in a DSL. In a second DSL, method coefficients such as the number of steps or a butcher tableau can then be declared. With these two languages the procedure is already completely described. Two further DSLs are concerned with an efficient implementation on graphics processing units (GPUs). ODE solvers are often limited by the properties of GPUs, such as small caches or large SIMD. Therefore it is important to minimize the number of memory accesses in order to achieve the highest possible performance. This can be achieved by fusing several basic operations into one kernel. A DSL therefore deals with the mapping of nodes of the data flow graph to kernels. By transformations on the graph as a preparatory step, the number of memory accesses can be reduced even more. These so-called enabling transformations can be declared in an additional DSL.

Weitere Angaben

Publikationsform: Master-, Magister-, Diplom- oder Zulassungsarbeit (Masterarbeit)
Keywords: DSL; gewöhnliche Differentialgleichungssysteme; numerische Verfahren; Datenflußgraph; Kernel-Fusion
Institutionen der Universität: Fakultäten > Fakultät für Mathematik, Physik und Informatik
Fakultäten > Fakultät für Mathematik, Physik und Informatik > Institut für Informatik
Fakultäten > Fakultät für Mathematik, Physik und Informatik > Institut für Informatik > Lehrstuhl Angewandte Informatik II
Fakultäten > Fakultät für Mathematik, Physik und Informatik > Institut für Informatik > Lehrstuhl Angewandte Informatik II > Lehrstuhl Angewandte Informatik II - Univ.-Prof. Dr. Thomas Rauber
Fakultäten
Titel an der UBT entstanden: Ja
Themengebiete aus DDC: 000 Informatik,Informationswissenschaft, allgemeine Werke > 004 Informatik
Eingestellt am: 06 Apr 2019 21:00
Letzte Änderung: 06 Apr 2019 21:00
URI: https://eref.uni-bayreuth.de/id/eprint/48604