Automatic code generation for high-performance Discontinuous Galerkin methods on modern architectures

SIMD vectorization has lately become a key challenge in high-performance computing. However, hand-written explicitly vectorized code often poses a threat to the software’s sustainability. In this publication, we solve this sustainability and performance portability issue by enriching the simulation...

Full description

Saved in:
Bibliographic Details
Main Authors: Kempf, Dominic (Author) , Heß, René (Author) , Müthing, Steffen (Author) , Bastian, Peter (Author)
Format: Article (Journal)
Language:English
Published: December 2020
In: ACM transactions on mathematical software
Year: 2020, Volume: 47, Issue: 1, Pages: 1-31
ISSN:1557-7295
DOI:10.1145/3424144
Online Access:Verlag, lizenzpflichtig, Volltext: https://doi.org/10.1145/3424144
Get full text
Author Notes:Dominic Kempf, René Heß, Steffen Müthing, and Peter Bastian

MARC

LEADER 00000caa a2200000 c 4500
001 1789487293
003 DE-627
005 20220820125800.0
007 cr uuu---uuuuu
008 220213s2020 xx |||||o 00| ||eng c
024 7 |a 10.1145/3424144  |2 doi 
035 |a (DE-627)1789487293 
035 |a (DE-599)KXP1789487293 
035 |a (OCoLC)1341441590 
040 |a DE-627  |b ger  |c DE-627  |e rda 
041 |a eng 
084 |a 28  |2 sdnb 
100 1 |a Kempf, Dominic  |d 1986-  |e VerfasserIn  |0 (DE-588)1130605868  |0 (DE-627)884815528  |0 (DE-576)486859231  |4 aut 
245 1 0 |a Automatic code generation for high-performance Discontinuous Galerkin methods on modern architectures  |c Dominic Kempf, René Heß, Steffen Müthing, and Peter Bastian 
264 1 |c December 2020 
300 |a 31 
336 |a Text  |b txt  |2 rdacontent 
337 |a Computermedien  |b c  |2 rdamedia 
338 |a Online-Ressource  |b cr  |2 rdacarrier 
500 |a Gesehen am 13.02.2022 
520 |a SIMD vectorization has lately become a key challenge in high-performance computing. However, hand-written explicitly vectorized code often poses a threat to the software’s sustainability. In this publication, we solve this sustainability and performance portability issue by enriching the simulation framework dune-pdelab with a code generation approach. The approach is based on the well-known domain-specific language UFL but combines it with loopy, a more powerful intermediate representation for the computational kernel. Given this flexible tool, we present and implement a new class of vectorization strategies for the assembly of Discontinuous Galerkin methods on hexahedral meshes exploiting the finite element’s tensor product structure. The performance-optimal variant from this class is chosen by the code generator through an auto-tuning approach. The implementation is done within the open source PDE software framework Dune and the discretization module dune-pdelab. The strength of the proposed approach is illustrated with performance measurements for DG schemes for a scalar diffusion reaction equation and the Stokes equation. In our measurements, we utilize both the AVX2 and the AVX512 instruction set, achieving 30% to 40% of the machine’s theoretical peak performance for one matrix-free application of the operator. 
650 4 |a Code generation 
650 4 |a Galerkin methods 
700 1 |a Heß, René  |e VerfasserIn  |0 (DE-588)125171921X  |0 (DE-627)1789487277  |4 aut 
700 1 |a Müthing, Steffen  |e VerfasserIn  |0 (DE-588)1072062577  |0 (DE-627)826828302  |0 (DE-576)433524367  |4 aut 
700 1 |a Bastian, Peter  |d 1964-  |e VerfasserIn  |0 (DE-588)1045599794  |0 (DE-627)774643374  |0 (DE-576)399098224  |4 aut 
773 0 8 |i Enthalten in  |a Association for Computing Machinery  |t ACM transactions on mathematical software  |d New York, NY : ACM, 1975  |g 47(2020), 1, Artikel-ID 6, Seite 1-31  |h Online-Ressource  |w (DE-627)320454134  |w (DE-600)2006421-4  |w (DE-576)09088986X  |x 1557-7295  |7 nnas 
773 1 8 |g volume:47  |g year:2020  |g number:1  |g elocationid:6  |g pages:1-31  |g extent:31  |a Automatic code generation for high-performance Discontinuous Galerkin methods on modern architectures 
856 4 0 |u https://doi.org/10.1145/3424144  |x Verlag  |x Resolving-System  |z lizenzpflichtig  |3 Volltext 
951 |a AR 
992 |a 20220213 
993 |a Article 
994 |a 2020 
998 |g 1045599794  |a Bastian, Peter  |m 1045599794:Bastian, Peter  |d 700000  |d 708000  |e 700000PB1045599794  |e 708000PB1045599794  |k 0/700000/  |k 1/700000/708000/  |p 4  |y j 
998 |g 1072062577  |a Müthing, Steffen  |m 1072062577:Müthing, Steffen  |d 700000  |d 708000  |e 700000PM1072062577  |e 708000PM1072062577  |k 0/700000/  |k 1/700000/708000/  |p 3 
998 |g 125171921X  |a Heß, René  |m 125171921X:Heß, René  |d 700000  |d 708000  |e 700000PH125171921X  |e 708000PH125171921X  |k 0/700000/  |k 1/700000/708000/  |p 2 
998 |g 1130605868  |a Kempf, Dominic  |m 1130605868:Kempf, Dominic  |d 700000  |d 708000  |e 700000PK1130605868  |e 708000PK1130605868  |k 0/700000/  |k 1/700000/708000/  |p 1  |x j 
999 |a KXP-PPN1789487293  |e 4056339481 
BIB |a Y 
SER |a journal 
JSO |a {"origin":[{"dateIssuedDisp":"December 2020","dateIssuedKey":"2020"}],"relHost":[{"physDesc":[{"extent":"Online-Ressource"}],"note":["Gesehen am 16.06.20"],"origin":[{"dateIssuedKey":"1975","publisher":"ACM","dateIssuedDisp":"1975-","publisherPlace":"New York, NY"}],"id":{"zdb":["2006421-4"],"eki":["320454134"],"issn":["1557-7295"]},"titleAlt":[{"title":"TOMS"},{"title":"ACM TOMS"},{"title":"Transactions on mathematical software"}],"recId":"320454134","disp":"Association for Computing MachineryACM transactions on mathematical software","title":[{"title":"ACM transactions on mathematical software","title_sort":"ACM transactions on mathematical software","subtitle":"a publication of the Association for Computing Machinery"}],"part":{"year":"2020","text":"47(2020), 1, Artikel-ID 6, Seite 1-31","pages":"1-31","extent":"31","volume":"47","issue":"1"},"corporate":[{"roleDisplay":"VerfasserIn","display":"Association for Computing Machinery","role":"aut"}],"type":{"bibl":"periodical","media":"Online-Ressource"},"language":["eng"],"pubHistory":["1.1975 -"]}],"id":{"doi":["10.1145/3424144"],"eki":["1789487293"]},"physDesc":[{"extent":"31 S."}],"person":[{"family":"Kempf","roleDisplay":"VerfasserIn","given":"Dominic","role":"aut","display":"Kempf, Dominic"},{"family":"Heß","roleDisplay":"VerfasserIn","given":"René","role":"aut","display":"Heß, René"},{"given":"Steffen","role":"aut","display":"Müthing, Steffen","family":"Müthing","roleDisplay":"VerfasserIn"},{"given":"Peter","role":"aut","display":"Bastian, Peter","roleDisplay":"VerfasserIn","family":"Bastian"}],"note":["Gesehen am 13.02.2022"],"name":{"displayForm":["Dominic Kempf, René Heß, Steffen Müthing, and Peter Bastian"]},"language":["eng"],"type":{"media":"Online-Ressource","bibl":"article-journal"},"recId":"1789487293","title":[{"title":"Automatic code generation for high-performance Discontinuous Galerkin methods on modern architectures","title_sort":"Automatic code generation for high-performance Discontinuous Galerkin methods on modern architectures"}]} 
SRT |a KEMPFDOMINAUTOMATICC2020