P10 - Controlling Parallel CFD Simulations in Julia from C/C++/Fortran Programs with libtrixi
Description
With libtrixi we present a software library to control complex Julia code from a main program written in a different language. Specifically, libtrixi provides an API to Trixi.jl, a Julia package for adaptive numerical simulations of conservation laws, used to accurately predict naturally occurring processes in various areas of physics. Here a broad range of spatial and temporal length scales render finely resolved computational grids indispensable and call for high-performance computing techniques. Consequently, many simulation tools are written in traditional HPC languages such as C, C++, or Fortran, which offer high computational performance, but are often complex to learn and maintain. The Julia programming language aims to combine convenience with performance by providing an accessible, high-level syntax together with fast, just-in-time-compiled execution. With libtrixi we present a blue print for connecting established research codes to modern software packages written in Julia. We will give details on the implementation of the interface library and show numerical applications in earth system modeling. These are controlled by a Fortran code and employ Trixi.jl’s distributed CPU and GPU compute capabilities.
Presenter(s)
Presenter
Studies in Mathematics and Computer Science, University of Bonn, GermanyDissertation, Institute for Numerical Simulation, University of Bonn, Germany, Supervisor: Prof. Dr. Martin RumpfResearch Assistant, German Aerospace Center (DLR), Institute of Propulsion Technology, Numerical Methods departmentPostdoctoral Researcher, Numerical Simulation group Prof. Dr. Gregor Gassner, Division of Mathematics, University of Cologne