Logo Oapen
  • Join
    • Deposit
    • For Librarians
    • For Publishers
    • For Researchers
    • Funders
    • Resources
    • OAPEN
        View Item 
        •   OAPEN Home
        • View Item
        •   OAPEN Home
        • View Item
        JavaScript is disabled for your browser. Some features of this site may not work without it.

        Automatic Code Generation for Massively Parallel Applications in Computational Fluid Dynamics

        Thumbnail
        Download PDF Viewer
        Web Shop
        Author(s)
        Kuckuk, Sebastian
        Language
        English
        Show full item record
        Abstract
        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‐specific languages (DSLs) for a set of applications. Using code generation techniques then allows targeting a range of hardware platforms while concurrently applying domain‐specific 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‐structured grids. 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‐like 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‐scale cluster alike. We showcase the applicability of our approach by implementing simple test problems, like Poisson’s equation, as well as relevant applications from the field of computational fluid dynamics (CFD). In particular, we implement scalable solvers for the Stokes, Navier‐Stokes and shallow water equations (SWE) discretized using finite differences (FD) and finite volumes (FV). For the case of Navier‐Stokes, we also extend our implementation towards non‐uniform grids, thereby enabling static mesh refinement, and advanced effects such as the simulated fluid being non‐Newtonian and non‐isothermal.
        URI
        https://library.oapen.org/handle/20.500.12657/109167
        Keywords
        Hochleistungsrechnen; Domänenspezifische Programmiersprache; Codegenerierung; Partielle Differentialgleichung; Numerische Strömungssimulation; Mehrgitterverfahren
        DOI
        10.25593/978-3-96147-274-1
        ISBN
        9783961472741, 9783961472741, 9783961472734
        Publisher
        FAU University Press
        Publisher website
        https://www.university-press.fau.de/
        Publication date and place
        Erlangen, 2019
        Series
        FAU Studien aus der Informatik, 10
        Classification
        Computer programming / software engineering
        Human–computer interaction
        Pages
        243
        Rights
        https://creativecommons.org/licenses/by/4.0/
        • Imported or submitted locally

        Browse

        All of OAPENSubjectsPublishersLanguagesCollections

        My Account

        LoginRegister

        Export

        Repository metadata
        Logo Oapen
        • For Librarians
        • For Publishers
        • For Researchers
        • Funders
        • Resources
        • OAPEN

        Newsletter

        • Subscribe to our newsletter
        • view our news archive

        Follow us on

        License

        • If not noted otherwise all contents are available under Attribution 4.0 International (CC BY 4.0)

        Credits

        • logo EU
        • This project received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 683680, 810640, 871069 and 964352.

        OAPEN is based in the Netherlands, with its registered office in the National Library in The Hague.

        Director: Niels Stern

        Address:
        OAPEN Foundation
        Prins Willem-Alexanderhof 5
        2595 BE The Hague
        Postal address:
        OAPEN Foundation
        P.O. Box 90407
        2509 LK The Hague

        Websites:
        OAPEN Home: www.oapen.org
        OAPEN Library: library.oapen.org
        DOAB: www.doabooks.org

         

         

        Export search results

        The export option will allow you to export the current search results of the entered query to a file. Differen formats are available for download. To export the items, click on the button corresponding with the preferred download format.

        A logged-in user can export up to 15000 items. If you're not logged in, you can export no more than 500 items.

        To select a subset of the search results, click "Selective Export" button and make a selection of the items you want to export. The amount of items that can be exported at once is similarly restricted as the full export.

        After making a selection, click one of the export format buttons. The amount of items that will be exported is indicated in the bubble next to export format.