{"id":1782,"date":"2022-11-09T10:20:34","date_gmt":"2022-11-09T09:20:34","guid":{"rendered":"https:\/\/www.university-press.fau.de\/produkt\/automatic-code-generation-for-massively-parallel-applications-in-computational-fluid-dynamics\/"},"modified":"2023-11-27T11:19:00","modified_gmt":"2023-11-27T10:19:00","slug":"978%e2%80%903%e2%80%9096147%e2%80%90273-4","status":"publish","type":"product","link":"https:\/\/www.university-press.fau.de\/en\/product\/978%e2%80%903%e2%80%9096147%e2%80%90273-4\/","title":{"rendered":"Automatic Code Generation for Massively Parallel Applications in Computational Fluid Dynamics"},"content":{"rendered":"<p>Solving partial differential equations (PDEs) is a fundamental challenge in many application domains in industry and academia alike. With increasingly large problems, efficient and highly scalable implementations become more and more crucial. Today, facing this challenge is more difficult than ever due to the increasingly heterogeneous hardware landscape. One promising approach is developing domain\u2010specific languages (DSLs) for a set of applications. Using code generation techniques then allows targeting a range of hardware platforms while concurrently applying domain\u2010specific optimizations in an automated fashion. The present work aims to further the state of the art in this field. As domain, we choose PDE solvers and, in particular, those from the group of geometric multigrid methods. To avoid having a focus too broad, we restrict ourselves to methods working on structured and patch\u2010structured grids.<\/p>\n<p>We face the challenge of handling a domain as complex as ours, while providing different abstractions for diverse user groups, by splitting our external DSL ExaSlang into multiple layers, each specifying different aspects of the final application. Layer 1 is designed to resemble LaTeX and allows inputting continuous equations and functions. Their discretization is expressed on layer 2. It is complemented by algorithmic components which can be implemented in a Matlab\u2010like syntax on layer 3. All information provided to this point is summarized on layer 4, enriched with particulars about data structures and the employed parallelization. Additionally, we support automated progression between the different layers. All ExaSlang input is processed by our jointly developed Scala code generation framework to ultimately emit C++ code. We particularly focus on how to generate applications parallelized with, e.g., MPI and OpenMP that are able to run on workstations and large\u2010scale cluster alike.<\/p>\n<p>We showcase the applicability of our approach by implementing simple test problems, like Poisson\u2019s equation, as well as relevant applications from the field of computational fluid dynamics (CFD). In particular, we implement scalable solvers for the Stokes, Navier\u2010Stokes and shallow water equations (SWE) discretized using finite differences (FD) and finite volumes (FV). For the case of Navier\u2010Stokes, we also extend our implementation towards non\u2010uniform grids, thereby enabling static mesh refinement, and advanced effects such as the simulated fluid being non\u2010Newtonian and non\u2010isothermal.<\/p>","protected":false},"excerpt":{"rendered":"<p>Solving partial differential equations (PDEs) is a fundamental challenge in many application domains in industry and academia alike. With increasingly large problems, efficient and highly scalable implementations become more and more crucial. Today, facing this challenge is more difficult than ever due to the increasingly heterogeneous hardware landscape. One promising approach is developing domain\u2010specific languages [&hellip;]<\/p>\n","protected":false},"featured_media":2472,"comment_status":"open","ping_status":"closed","template":"","meta":{"_acf_changed":false},"product_brand":[],"product_cat":[54],"product_tag":[],"class_list":{"0":"post-1782","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-fau-studien-aus-der-informatik","7":"has-post-title","8":"has-post-date","9":"has-post-category","10":"has-post-tag","11":"has-post-comment","12":"has-post-author","13":"","15":"first","16":"instock","17":"taxable","18":"shipping-taxable","19":"purchasable","20":"product-type-simple"},"acf":{"autor":"Kuckuk, Sebastian","orcid":"","ror":"","herausgeber":"","orcid_hrsg":"","rorhrsg":"","bearbeiter":"","sonstige_beteiligte_personen":"","untertitel":"","zusatz":"","jahr":"2019","zeitschrift":"","serie":"","serie_name":"","serie_band":"","serie_jahr":"","serie_titel_band":"","vortrage":"","issn":"","isbn":"","isbn13":"978\u20103\u201096147\u2010273-4","seiten":"xi, 243","sonstiges":"","band":10,"auflage":"","opus":"","dspace":"13050","e-isbn_pdf":"978-3-96147-274-1","doi":"https:\/\/doi.org\/10.25593\/978-3-96147-274-1","epub":"","e-isbn_epub":"","doi_epub":"","html":"","e-isbn_html":"","doi_html":"","e-isbn_reader":"","doi_reader":"","digibib":"","urn":"urn:nbn:de:bvb:29-opus4-130501","supplementary_material":"","sprache":["Englisch"],"ausgabe":"Softcover","suche":" 978\u20103\u201096147\u20102734 9783961472741  ","lizenz":"BY-4","bemerkung":""},"builder_content":"","_links":{"self":[{"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/product\/1782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/comments?post=1782"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/media\/2472"}],"wp:attachment":[{"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/media?parent=1782"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/product_brand?post=1782"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/product_cat?post=1782"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.university-press.fau.de\/en\/wp-json\/wp\/v2\/product_tag?post=1782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}