Name in parenthesis means taking the lead in shaping. Please involve the right people or distribute the work. ## Blue line In 2023: - integrate stencil by stencil Now: - CSCS show off: prealps - MCH operations: C++ stencils integrated in Fortran - ICON upstreaming: Fortran bindings to Python granules - (deliver something to users) Targets in Q1: - Prototype diffusion granule (with DaCe backend) - First release by Jan end with xx properties for APE@1km. Consider some easy optimizations (c.f, XL) - Consolidate building, testing, and performance benchmarking framework Ideas for the cycle ## Blue line: stencil integration - Make release candidate (Abishek) - Fused stencils continuation (Christoph) - project for nproma fix (Christoph, Abishek) - go through the list Jonas/Abishek made on hackmd (Abishek, Jonas, Christoph, Will) - Adopt benchmark and test infrastructre advection stencils in CI (reserved for Nina until she finished) - ~~Apply optimizations brought up together with nvidia (launch bounds, blocking(32,4), cache hints, ...)~~ - ~~Refactor bindings generator (cleanup, add more tests, make more robust for production use).~~ - ~~Benchmark storage & visualisation~~ - Some form of benchmark visualisation and storage (Long-term may use elastic db and grafana on cscs infra) - Short-medium term solution could be uploading of JSON data to MongoDB and visualisation using Atlas Charts (example dashboard: http://tinyurl.com/bdfu5f72). - Free tier up to 1GB of data (should be more than enough for our use case). ## Blue line: granules - diffusion granule interface to Fortran (Magdalena) ## Green line - finish geometrical, interpolation fields (Magdalena, Will) - `gt4py`: can we solve the issue of writing sparse fields for fields offsets with INVALIDS? - Shaping: combine interpolation field calculation with GridManager and find effective validation technique (WS+AJ) - Testing: (Magdalena) - datatest in CI (would be nice to have a project share...) - use python grid_manager for stencil_tests (only needs the grid file not serialized data in stencil tests) - make the greenline run on GPU/flexible backend (Magdalena) - in the individual granules: pick up backend from outside - are there other issues to solve? like data transfers...? Not to shape but see if relevant people can do - github action for gt4py/icon4py integration (Jonas) - GHEX fix (@Fabian): auto discovery of memory layout in GHEX (currently it assumes a 1-strides in 2nd dimension), no shaping needed, but let's push for it Removed from shaping for next cycle - ~~Incorporate libGridMan into multi-process diffusion granule; validation strategy (WS+ML)~~ - [Research] start on I/O: understand what is needed, investigate what is there. (Magdalena) - ~~[Refactoring] grid interface: replace "computation" of markers by explicit functions, revisit bounds/domain name, refin_ctrl values~~ - ~~after merge in blueline is done (-> next cycle): incorporate changes from upstream blueline merge in dycore, diffusion~~ ## GT4Py - Embedded execution (Hannes, Enrique) - support for connectivities with skip values - express boundary conditions (concat or alternative where?) - implement slicing syntax (as discussed in the workshop) - implement standard array api behavior for 0-d fields - investigate support for different styles of domain construction in parsed code - Consolidate temporaries, faster compile times PRs (Till) - More flexible backends/workflows (Rico) - customization (old project), e.g. switch to persistent cache - allow to have a sequence of transformations instead of backends (which always start from itir) - cycle for shaping how transforms work - Shaping task: support for field containers (pytrees-like) - expandable parameters for tracers - named_tuples/structs for nicer interfaces - ~~lower priority:~~ - research xarray compatibility with gtx.Field - cleanup tree traversal algorithms in eve ## DaCe - [Comparison of representations: jax2sdfg vs itir2sdfg](https://hackmd.io/@gridtools/BynVNnAu6) (Edoardo) - on selected icon4py (fused) programs - performance evaluation - readability evaluation - extensibility (e.g. create a reduce library node) - requirement: bring both translators in a shape that supports the selected programs to a reasonable degree - Research integration of halo exchanges in DaCe (Edoardo, Christos) - maybe together with GT4Py - possible Fabian could join