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
-