---
# System prepended metadata

title: Brainstorming cycle 19
tags: [cycle 19]

---

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

