---
# System prepended metadata

title: ICON/Cosmo User workshop 2024
tags: [archive]

---

ICON/COSMO user workshop 2024

## ICON4Py: porting ICON to Python with GT4Py

Slide Draft: https://docs.google.com/presentation/d/1WvBcMejHalD677WFBT7j6UubH6U-ss_glcr4ykjHIfM/edit?usp=sharing

Previous presentations:

https://docs.google.com/presentation/d/1hSQUsPXIV_nxZNOrBlzT88bfu4NKhdNQnp-q5JIVZig/edit#slide=id.g23dcc93a03a_1_0

Posters:

https://linklings.s3.amazonaws.com/organizations/pasc/pasc23/submissions/stype108/t5xoA-pos140s2.pdf

- EXCLAIM - 2 development streams:
    - gt4py in ICON (aka blue line) :

### Relevant Poster Sessions

Christoph Müller, MeteoSwiss
Status of ICON on GPU and ICON in Python

B6 Chia Rui Ong, ETHZ
Enabling ICON in a python framework: first results

### Presentation Structure


#### Problem Statement

From our perspective:

- Problems in developing/maintaining NWP models? What problem are we trying to solve?
 - Cope with hardware development? Portability of the models to new hardware, GPUs...
 - Code is hard to read and understand, old languages, 
 - different aspects are mixed up: numerics, performance hardware specifics.
- Onboarding new developers, making use of the existing scientific computing and ML libraries in Python.

We are interested in hearing about other problems you are facing.

#### Solution approaches

- DSL approach with GT4Py. 
- G(rid)T(ools)4Py developed at CSCS

EXCLAIM:
- 2 development streams.
- 

#### gt4py use cases

- COSMO gridtools dycore
- FV3 dynamical core ported to gt4py (AI2), https://egusphere.copernicus.org/preprints/2022/egusphere-2022-943/egusphere-2022-943.pdf

Current Developments:

- FVM model in Gt4Py (ECMWF) ask Till

Regarding GT4Py in ICON (NWP models):
        - performance
        - portability (Vector machine, GPU,  )
        - how can we achieve this with gt4py

Regarding porting models (or writing from scratch) in Python/GT4Py:
        
       https://www.nas.nasa.gov/SC22/research/project24.html 

### 1. Gt4py in ICON

#### what does it address?
    1. gt4py in ICON -> performance, portability, extendibility concerns.
    2. 
    3. porting model to python -> the above benefits, easier onboarding, access to the Python ecosystem (ML, Scientific Computing libraries, IO tools xarray), experimentation (e.g jupyter notebook)
#### How does it work?


#### Current Status (Gt4Py in ICON)

Current status:
- ICON dycore has been ported to gt4py.
- Infrastructure developed to integrate into ICON.
- Several experiments verify (probtests, runscripts, what else? @muellch )
-> For more specifics, Christoph Mueller will give a Poster presentation on gt4py status in ICON.

Ongoing work:
- Focus on performance and optimization, 1.4x speedup
- Use the ICON-EXCLAIM model for more use cases (Aquaplanet, Fixed SST, Coupled)





### 2. Python port
#### what does it address?
#### how does it work?

#### Current Status Python port
current status:
- simplified dycore, diffusion, microphysics ported to python
- simple JW testcase (-> poster by Chia Rui)
- 
ongoing / future:
- work on achitecture, model infrastructure (I/O, grid handling)
- can directly profit from optimization work in stream 1!
- port other components: advection, turbulence.

#### what are your experiences
- 






