# Brainstorming Cycle 14
###### tags: `cycle 14`
## GT4Py
- DaCe backend (Linus, Peter)
+ first half: work on removing current limitations
+ second half: develop DaCe library node for indirection
- GT4Py refactoring: (Hannes, Enrique, Peter)
+ Improve itir transformation patterns (e.g. consider using itir_makers , which lives in ffront, unify duplicated functions `is_shift`, instantiate and reuse `itir.SymRef(id="builtin)"`?) (@havogt)
+ cleaner tests (define patterns, reduce code duplication, better naming) (@havogt)
+ Bindings support for tuple arguments and outputs and index_fields (Hannes or Till, partially shaped)
- Type system for the bindings (similar to what @petiaccja already started as a part of https://github.com/GridTools/gt4py/pull/1130 (@tehrengruber)
+ GT4Py debugging support: related to _extend workflow pattern_, possiblity to provide debugging flags from outside (verbose output, keep intermediate files (generated code))
+ Extend workflow pattern to cover larger portions of the pipeline (currently only used in GTFN Module). (@ricoh , @tehrengruber). Goal: Make the pipeline configurable from the outside such that we can for example pass options to the backend from the outside (what passes to run etc.). (Till, Rico)
- Lagrangian pattern (double vertical loop) (Hannes, Anurag)
- `index()` builtin (~~could be interesting for Daniel~~) (Hannes or Till, already partially shaped)
- ~~GT4Py user documentation~~ (Anurag)
- Global domain (@tehrengruber)
- boundary conditions
- including their relation to temporaries
- ~~"compile time switches": for example diffusion: `limited_area` is determined at startup so it should be determined once for the run which flavor of stencil_05 is used and what the area bounds are. -> constant folding~~ already there (but maybe we could do constant folding to simplify the ir)
- ~~Embedded execution for field view. Interesting part: how to represent the domain. (@tehrengruber)~~
## icon-exclaim ICON4Py
- [Blue-line packaging + testing](https://hackmd.io/8LXc_gyEQ4WHm_8vyDq6eg)
- Spack can build one branch of icon-exclaim in all three modes - CPU, OpenACC and GT4Py - on Daint and Balfrin.
- Enable spack-buildbot tests for all three modes
- Finalize verification of the exclaim aquaplanet experiments
- [Fuse more](https://hackmd.io/HGwXWm64Q9SBcC8UtpJ4gQ) + use `as_offset`
- Serialization (shape together with granule serialization) (Hannes, Christopher, Magdalena)
- [More experiments in CI/CD](https://hackmd.io/QJ69yYDiS6e3MidroLh-FA) (MCH)
- Take over set of experiments from icon-nwp master in spack
- Evaluate if set of experiments appropriate for DSL branch (do they test all of our code paths, example CFL > 1)
- Fix different behavior from OpenACC icon-nwp
- Keep LOG's of substitution run experiments
- together with C2SM
- [Optimization](https://hackmd.io/L1vJR_sOSaCOPUd9dXrfLA) (MCH)
- Fused timing followup
- stencil-by-stencil timings optimization (blocking, block size)
- [Liskov](https://hackmd.io/D2uarKUlS8-sN5TUKYXWEg) (Sam, MCH)
- support for fused stencils
- verification vs substitution:
- generate different code for verification and substitution *OR*
- make the verification and substitution switch runtime (to compile only once)
- Sync with serialization approach
- [Finish tracer advection](https://hackmd.io/RFWTvJP5QL6_H_DK1zfl8A) (MCH)
- Liskov all stencils
- Cleanup
- set up Zeman's test at C2SM. (Abishek?) (Probably next cycle - Abishek)
- Running icon-exclaim with GT4Py on CPUs
- Type checking
- Stricter type checking for field types (does `Field[Edge, C2V]` compile?)
- Make sure you test the whole possibility space
- Daint nvhpc toolchain update?
## Green Line
- [icon grid manager](https://hackmd.io/6GgaPiKmSLC90GuzV_ldBQ): isolate topology information (Magdalena, Will, Mauro)
- [continue dycore driver porting](https://hackmd.io/7cxo34egQf-Cas4PNqgs2g): full timestepping in `mo_solve_nonhydro.f90` and combine with `mo_velocity_advection.f90` (Magdalena, Nikki)
- (granule serialization, discussed with the other serialization point)
- halo exchanges (Mauro)
- manual halo exchanges in python driver (mpi4py, ghex)
- does yaxt make sense?