Skip to content

ICON4Py dynamical core merged into ICON master

With this release, the GT4Py-based implementation of ICON's atmospheric dynamical core, developed within the EXCLAIM project at ETH Zürich, CSCS and MeteoSwiss, has been merged into the ICON repository and is now available for general use. This is the first large component of ICON to be performance portable, and it marks the first concrete step towards a fully portable, architecture-agnostic ICON.

What changed

The dynamical core — the part of ICON that solves the compressible, non-hydrostatic Navier–Stokes equations for wind, density, temperature and pressure, and which typically accounts for roughly 40% of the cost of an atmosphere-only run — has been rewritten using GT4Py , a Python-embedded domain-specific language for weather and climate codes developed at ETH Zürich. The Fortran+OpenACC version remains fully supported; the new component, referred to as ICON4Py, can be enabled as an alternative dynamical core via a build flag and is invoked directly from the existing Fortran driver through a lightweight interface layer (py2fgen), so no other changes are required to the model configuration.

Rather than hand-tuning OpenMP/OpenACC directives for each target machine, ICON4Py expresses the numerics once, as field- and scan-operators over the unstructured ICON grid, and lets the GT4Py backend generate optimized code for the target hardware. Currently, NVIDIA GPUs, AMD GPUs, and x86/ARM CPUs are supported. The same Python source is compiled differently depending on the hardware it needs to run on, rather than being interleaved with machine-specific pragmas. Halo exchanges are handled by the GHEX library, which supports multiple communication back ends (MPI, UCX, NCCL) without changes to the user code.

Why this matters

ICON's Fortran+OpenACC implementation has been extensively performance-tuned over the years, but that tuning is tied to specific compilers and architectures and is increasingly costly to maintain as compiler support for Fortran on new HPC platforms lags behind C++ and Python toolchains. ICON4Py decouples the numerical description from the target architecture, so that porting to new hardware becomes a back end change rather than a rewrite of the code. Additionally, being based on Python opens the door to closer integration with its wide ecosystem (NumPy, CuPy, JAX, machine-learning libraries) for future hybrid and machine-learning-augmented components.

Performance

Integrating ICON4Py's dynamical core with the Fortran+OpenACC code has demonstrated improved performance despite the overhead of the Python interface. In production-grade coupled atmosphere–land and atmosphere–land–ocean configurations on the Alps supercomputer at CSCS, ICON4Py's dynamical core runs 20–30% faster than the reference Fortran+OpenACC implementation. This translates into a ~10–15% speed-up of the full coupled simulation (Dipankar et al., 2026; Bianco et al., 2026). At R2B10 (2.5 km global grid spacing, 120 atmosphere and 72 ocean vertical levels), the new software reaches a throughput of 160 simulated days per day (SDPD) on 3200 GPUs.

Reliability of the refactored code is tested regularly with a three-tier strategy: unit tests of individual dynamical-core components (including diffusion) against the Fortran reference, using tight relative-error tolerances; live comparison of the full dynamical core running inside the Fortran host code against the Fortran+OpenACC reference on identical inputs; and a numerical error-growth check (i.e., probtest ) over 5–10 ICON time steps against a perturbed reference ensemble (Bianco et al., 2026).

Scientific results

The new software has already been used for several published storm-resolving global simulations:

  • Global aquaplanet runs at 2.5 km, 20 km and 80 km grid spacing, using a jet-streak tracking method to show that convection-permitting resolution produces a stronger, poleward-shifted eddy-driven jet with a clear separation from the subtropical jet (Bukenberger et al., 2026);
  • Global uncoupled runs with idealized SST perturbations, used to study how convection- and gravity-wave-parameterization choices affect the tropical ITCZ at 5 km vs. 40 km resolution (Kroll et al., 2025, Atmos. Chem. Phys.);
  • A four-year global uncoupled simulation at 2.5 km with realistic prescribed SSTs, contributing to the DYAMOND phase-III protocol, which eliminates the long-standing "double ITCZ" bias seen in coarser ICON-Sapphire configurations and captures the major global monsoon systems in broad agreement with GPM IMERG observations (Prein et al., 2026, Geosci. Model Dev.);
  • A systematic grid-spacing sensitivity study (80/40/10 km) of Northern Hemisphere monsoons, showing that ICON captures the global monsoon domain and regional onset with good skill, while finding that finer grid spacing does not uniformly improve monsoon simulation — it sharpens the diurnal cycle but amplifies mean and variability biases over South Asia and West Africa (Pothapakula et al., 2026, Weather Clim. Dynam.);
  • A multiscale evaluation of Indian monsoon rainfall against five CMIP6-class models at ~40 km resolution, finding that ICON's non-hydrostatic dynamical core gives it an edge in diurnal timing and phase representation relative to hydrostatic CMIP6 models, at the cost of some amplitude biases over the Bay of Bengal (Pokhrel et al., 2026, Weather Clim. Dynam.).

What's next

The merge of ICON4Py's dynamical core in ICON represents a significant milestone on the EXCLAIM roadmap: a performance-portable dynamical core embedded in the existing Fortran+OpenACC driver, targeted at global km-scale simulations. Work is already under way on a fully portable Python-based ICON atmospheric module with GT4Py/Kokkos physics components. These will be reported as they reach maturity.

References