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