User: Guest  Login
Original title:
Template-based code generation for a customizable high-performance hyperbolic PDE engine 
Translated title:
Template-basierte Code-Generierung für eine anpassbare High Performance Engine für hyperbolische partielle Differentialgleichungen 
Year:
2021 
Document type:
Dissertation 
Institution:
Fakultät für Informatik 
Advisor:
Bader, Michael Georg (Prof. Dr.) 
Referee:
Bader, Michael Georg (Prof. Dr.); Weinzierl, Tobias (Prof. Dr.) 
Language:
en 
Subject group:
DAT Datenverarbeitung, Informatik; MAT Mathematik 
Keywords:
ExaHyPE, Code generation, High-order discontinuous Galerkin, Hyperbolic PDE systems, Model-View-Controller, Jinja2, Optimization, Vectorization, Array-of-Struct-of-Array 
Translated keywords:
ExaHyPE, Code-Generierung, High-order discontinuous Galerkin, hyperbolische PDE, Model-View-Controller, Jinja2, Optimierung, Vektorisierung, Array-of-Struct-of-Array 
TUM classification:
MAT 650; DAT 532 
Abstract:
We discuss the use of code generation in the ADER-DG solver ExaHyPE to streamline application development and optimize its performance-critical kernels. The code generation relies on the Jinja2 template engine, with custom template macros isolating low-level optimizations from the algorithms described in the templates. We optimize for Intel Skylake CPUs using Loop-over-GEMM, memory footprint reduction and hybrid data layouts, with benchmarks reaching 30% of peak performance on SuperMUC-NG. 
Translated abstract:
Wir zeigen wie Code-Generierung im ADER-DG-Solver ExaHyPE die Anwendungsentwicklung und Optimierung der leistungsrelevanten Kernel unterstützt. Die Code-Generierung nutzt die Jinja2 Template-Engine, wobei spezielle Makros Low-Level-Optimierungen von den in Templates beschriebenen Algorithmen isolieren. Wir optimieren für Intel Skylake Prozessoren mit Loop-over-GEMM, Reduzierung des Speicherbedarfs und hybriden Datenlayouts, wobei Benchmarks 30% der Spitzenleistung auf SuperMUC-NG erreichen. 
Oral examination:
22.10.2021 
File size:
6694204 bytes 
Pages:
193 
Last change:
21.12.2021