Dynamic HPC software frameworks: Seamless integration of existing simulation frameworks and code generation techniques
Software Engineering and Programming Languages
Final Report Abstract
Multiphysics simulations are an important tool in many natural science and engineering fields e.g. to optimize placement of wind turbines or to predict material transport in riverbeds. Such simulations usually require a large amount of computing resources to produce accurate results and are commonly run on a supercomputer. Due to these systems’ high power consumption costs, highly parallel and efficient implementations for the numerical schemes and complex coupling methods are required. For application scenarios experts from various domains have to collaborate and the underlying codes are often developed and used over many years. One major issue arises from modern hardware trends towards more and more heterogeneous systems, since developing and maintaining hand-optimized compute kernels for several target architectures and accelerators is very time-consuming in the long term for a multi-physics framework that supports a wide range of different models. Code generation approaches help to tackle this problem because the definition of the method itself is separated from the description of the algorithm and how to optimize it. Additionally, possibly hardware-dependent optimization strategies are automated in the code generation process and are applied to an abstract description of the algorithm. However, in scientific software code generation technology is still a new technology so it is essential to evaluate it carefully and critically. Limited experience existed so far in terms of its sustainability and its long-term impact on the development process. Our findings, software tools, and best practices can help to achieve the meta-goal to systematically upgrade existing scientific software with code generation features. In the project, several code generators for different purposes are coupled with the multiphysics simulation framework waLBerla to design a dynamic framework that fuses manual and generated implementations. The dynamic framework is built on top of open-source tools and uses several different code generation techniques that can be applied to a wide range of simulation codes and architectures. For application scientists it becomes easier to couple simulation tools and to incorporate new models using the provided high-level abstractions that hide implementation and platform details.
Link to the final report
https://doi.org/10.5281/zenodo.15018004
Publications
-
Fundamental data structures for matrix-free finite elements on hybrid tetrahedral grids. International Journal of Parallel, Emergent and Distributed Systems, 39(1), 51-74.
Kohl, Nils; Bauer, Daniel; Böhm, Fabian & Rüde, Ulrich
-
Generating Coupling Interfaces for Multiphysics Simulations with ExaStencils and waLBerla. 2023 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), 651-661. IEEE.
Angersbach, Richard; Kuckuk, Sebastian & Köstler, Harald
-
MD-Bench: A performance-focused prototyping harness for state-of-the-art short-range molecular dynamics algorithms. Future Generation Computer Systems, 149, 25-38.
Ravedutti, Lucio Machado Rafael; Eitzinger, Jan; Laukemann, Jan; Hager, Georg; Köstler, Harald & Wellein, Gerhard
-
Particle-resolved simulation of antidunes in free-surface flows. Journal of Fluid Mechanics, 961.
Schwarzmeier, Christoph; Rettinger, Christoph; Kemmler, Samuel; Plewinski, Jonas; Núñez-González, Francisco; Köstler, Harald; Rüde, Ulrich & Vowinckel, Bernhard
-
Code Generation for Octree-Based Multigrid Solvers with Fused Higher-Order Interpolation and Communication. Lecture Notes in Computer Science, 240-254. Springer Nature Switzerland.
Angersbach, Richard; Kuckuk, Sebastian & Köstler, Harald
-
waLBerla‐wind: A lattice‐Boltzmann‐based high‐performance flow solver for wind energy applications. Concurrency and Computation: Practice and Experience, 36(16).
Schottenhamml, Helen; Anciaux, Sedrakian Ani; Blondel, Frédéric; Köstler, Harald & Rüde, Ulrich
-
Efficiency and scalability of fully-resolved fluid-particle simulations on heterogeneous CPU-GPU architectures. The International Journal of High Performance Computing Applications, 39(3), 345-363.
Kemmler, Samuel; Rettinger, Christoph; Rüde, Ulrich; Cuéllar, Pablo & Köstler, Harald
-
P4IRS: An intermediate representation and compiler for parallel and performance-portable particle simulations. The International Journal of High Performance Computing Applications.
Ravedutti, Lucio Machado Rafael; Eitzinger, Jan & Köstler, Harald
