Dynamische HPC Softwarepakete: Nahtlose Integration von existierenden Softwarepaketen und Codegenerierungstechniken
Softwaretechnik und Programmiersprachen
Zusammenfassung der Projektergebnisse
Multiphysik-Simulationen sind ein wichtiges Werkzeug in vielen Bereichen der Natur- und Ingenieurwissenschaften, z. B. zur Optimierung der Platzierung von Windkraftanlagen oder zur Vorhersage des Materialtransports in Flussbetten. Solche Simulationen erfordern in der Regel eine große Menge an Rechenressourcen, um genaue Ergebnisse zu erzielen, und werden in der Regel auf einem Supercomputer durchgeführt. Aufgrund des hohen Stromverbrauchs dieser Systeme sind hochparallele und effiziente Implementierungen für die numerischen Verfahren und komplexen Kopplungsmethoden erforderlich. Für Anwendungsszenarien arbeiten meist Experten aus verschiedenen Bereichen zusammen, und die zugrundeliegenden Codes werden oft über viele Jahre hinweg entwickelt und verwendet. Ein großes Problem ergibt sich aus den modernen Hardware-Trends zu immer heterogeneren Systemen, da die Entwicklung und Pflege von handoptimierten Rechenkernen für verschiedene Zielarchitekturen und Beschleuniger für ein Multiphysik-Framework, das eine Vielzahl unterschiedlicher Modelle unterstützt, auf Dauer sehr zeitaufwändig ist. Codegenerierungsansätze helfen, dieses Problem anzugehen, da die Definition der Methode selbst von der Beschreibung des Algorithmus und seiner Optimierung getrennt wird. Außerdem werden bei der Codegenerierung möglicherweise hardwareabhängige Optimierungsstrategien automatisiert und auf eine abstrakte Beschreibung des Algorithmus angewendet. Bei wissenschaftlicher Software ist die Technologie der Codegenerierung jedoch noch relativ neu daher ist es wichtig, sie sorgfältig und kritisch zu bewerten. Bislang gibt es nur begrenzte Erfahrungen in Bezug auf ihrer Nachhaltigkeit und ihrer langfristigen Auswirkungen auf den Entwicklungsprozess. Unsere Erkenntnisse, Software-Tools und Best Practices können dazu beitragen, das Meta-Ziel zu erreichen, bestehende wissenschaftliche Software systematisch mit Codegenerierungsfunktionen zu erweitern. Im Rahmen des Projekts werden mehrere Codegeneratoren für unterschiedliche Zwecke mit dem Multiphysik-Simulationsrahmen waLBerla gekoppelt, um ein dynamisches Framework zu schaffen, das manuelle und generierte Implementierungen miteinander verbindet. Das dynamische Framework baut auf Open-Source-Tools auf und verwendet verschiedene Codegenerierungstechniken, die auf eine breite Palette von Simulationscodes und -architekturen angewendet werden können. Für Anwendungswissenschaftler wird es damit einfacher, Simulationswerkzeuge zu koppeln und neue Modelle mit Hilfe der bereitgestellten High-Level-Abstraktionen, die Implementierungs- und Plattformdetails verbergen, einzubinden.
Link zum Abschlussbericht
https://doi.org/10.5281/zenodo.15018004
Projektbezogene Publikationen (Auswahl)
-
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
