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 -