H. Köstler, University of Erlangen-Nuremberg (DE)

Abstract: Code generation is one way to increase productivity both for users and developers when dealing with large software packages. Separation of concerns is achieved by formulating applications on different levels of abstraction. The talk presented a short overview of different code generation approaches and the ExaStencils project, that started as a domain-specific language for multigrid solvers on structured grids. Meanwhile, the external DSL ExaSlang is mature enough to express full application models for Ocean simulation. As an example, the talk showed the whole-program generation for the shallow water equations on block-structured grids created from a real-world geometry and using a higher discontinuous Galerkin discretization. The generated code is highly scalable on current supercomputers and portable to GPU and CPU architectures.