P22 - GT4Py: A Python Framework for the Development of High-Performance Weather and Climate Applications
Description
GT4Py is a Python framework for weather and climate applications simplifying the development and maintenance of high-performance codes in prototyping and production environments. GT4Py separates model development from hardware-dependent optimizations, instead of intermixing them in source code, as regularly done in lower-level languages like Fortran or C. Domain scientists focus solely on numerical modeling using a declarative embedded domain specific language supporting common computational patterns of dynamical cores and physical parametrizations. An optimizing toolchain then transforms this high-level representation into a finely tuned implementation for the target hardware architecture. This separation of concerns allows performance engineers to add optimizations or support new hardware architectures without modifying the application itself, increasing productivity for both domain scientists and performance engineers. We present recent developments from the past year, including a new performance backend based on DaCe, a framework for high-performance parallel programming that uses a data-centric intermediate representation (IR) based on Stateful DataFlow multiGraphs (SDFG). Performance results on Nvidia GH200 and AMD MI300 are presented for two weather models: an ICON-based model ported to GT4Py as part of the EXCLAIM project at ETH, and PMAP, a portable atmospheric model developed at ECMWF, covering applications from large-eddy simulations to global numerical weather prediction.
Presenter(s)

Presenter
After completing a master's degree in computational science I briefly worked on the Open Earth Compiler, a stencil compiler for weather and climate codes, supervised by Tobias Gysi and Tobias Grosser. I now work at Meteoswiss in the context of the GLORI and EXCLAIM projects with the goal to develop the next generation weather and climate models in a higher level language - in our case Python - to be able to abstract hardware details away, leaving portability and performance to automatic code generation.