All major weather and climate applications are currently developed using
languages such as Fortran or C++. This is typical in the domain of high
performance computing (HPC), where efficient execution is an important concern.
Unfortunately, this approach leads to implementations that intermix
optimizations for specific hardware architectures with the high-level numerical
methods that are typical for the domain. This leads to code that is verbose,
difficult to extend and maintain, and difficult to port to different hardware
architectures. Here, we propose a different strategy based on GT4Py (GridTools
for Python). GT4Py is a Python framework to write weather and climate
applications that includes a high-level embedded domain specific language (DSL)
to write stencil computations. The toolchain integrated in GT4Py enables
automatic code-generation,to obtain the performance of state-of-the-art C++ and
CUDA implementations. The separation of concerns between the mathematical
definitions and the actual implementations allows for performance portability
of the computations on a wide range of computing architectures, while being
embedded in Python allows easy access to the tools of the Python ecosystem to
enhance the productivity of the scientists and facilitate integration in
complex workflows. Here, the initial release of GT4Py is described, providing
an overview of the current state of the framework and performance results
showing how GT4Py can outperform pure Python implementations by orders of
magnitude.Comment: 12 page