# BRAINSTORMING - Cycle 15 ###### tags: `cycle 15` Names indicate - before pre-betting table: who proposed it (if required for asking for more context). - after pre-betting table: who takes care that the project will be shaped (doesn't mean it's already the person who shapes) Betting table: probably Monday 15th, 1-3 ## Not categorized - identify components that can give some speed if ported with gt4py targetting the 1km APE next year and start porting them - Components: - ECRAD - 3D Smagorinsky - How to decide - size of the component - how much expected performance gain - Who: - Anurag (who knows the setup/components) - Someone with performance / GT4Py background - Goal: - For cycle 16+ know where to continue # both blue and green - refactor ICON4Py repository: [shaping here](https://hackmd.io/svJ7ZSRRRrWK075RIKfvxg) (Sam, Magdalena) ## Blue line - Complete tracer advection (Liskov, cleanup), so it can be merged ([shaping](https://hackmd.io/RtTAKDZWTOG_pFp21K2_cg)) - Graupel (Anurag) ### Optimization - Optimize dycore (try to make 1.4x) (Christoph) - Fused stencils called by Liskov (continuation) (see Liskov shaping) - Writing fused stencils (continuation) [shaping](https://hackmd.io/cvFkXLdfTMCZdeR8CJNGcw) - CI: performance measurement (Maybe Sam and Christopher?) [shaping](https://hackmd.io/doZ9l59LTYejEuUWig4yfw) - see also: GT4Py optimizations/temporaries - Liskov completion [shaping](https://hackmd.io/G5Ii5EgMQkCh1U4mwLAMhQ) ### Spack + CI ([shaping](https://hackmd.io/0-yiWyJoTsCWOHql-7SkLw)) - include use cases in our testing framework (Jenkins) and in buildbot (Christoph, Abishek, Jonas) - APE - global un-/coupled - MCH setup ### Model verification ([shaping](https://hackmd.io/TY4qDI6LQ0eB-Zo9gEdygg)) - make aquaplanet (APE) pass the probtest and/or Zemans test (Abishek, Anurag) - would require Abishek ## Green line - finish dry dycore: [shaping here](https://hackmd.io/rFrdjYCzTgqUC827lV_Yyw) (how much is that) (Magdalena) - finish left overs in diffusion(offset stencil, non limited area stencil), verification - verification for solve_nonhydro - integrate in driver code, existing dummy driver or new dycore driver - integrate manual halo exchanges in Python diffusion: [shaping here](https://hackmd.io/nFjkZ_fQS_aOr9txGl_9PA) (Magdalena) - from serialized decomposed grid - GridManager: [shaping here](https://hackmd.io/k5F79UozR72FBjIxDIsUPg) (Magdalena, Anurag, Will) - cool-down: document current grid tricks - decide on how deal with ICON/grid file post processing. Magdalena - use in driver code. (so far only diffusion test code) - Create Python/C interfaces to Florian Prill's Grid manager, call from Python driver (Will) ## GT4Py - Field IR: as a preparation for embedded execution we want to improve the design of a Field IR, this is important because it's the last cycle with Felix who has a lot of knowledge there (Enrique, Hannes) [shaping here](https://hackmd.io/fCXnShnFR96kFau7lw36ew) - optimizations: work on a non-naive heuristic for temporaries (including how we handle conditionals) (Till, Christoph?) [shaping here](https://hackmd.io/oJR7phI8S0yUOfnmz2lTug) - transformation: pow of small power optimization - GPU execution from Python (Enrique, Rico) [shaping here](https://hackmd.io/zzW6_SqvRE-jrHUmjUG8Pg) - storages properly usable as Fields in gt4py.next - integration of the gpu parameter in codegen/compilation - Implement cleanup tasks that were decided in the previous cycle (Rico, Enrique) [shaping here](https://hackmd.io/-OGkeMJeQT-CqXPQTzlUCw) - roll-out feature test structure to all feature tests - ... - DaCe (Linus) [shaping here](https://hackmd.io/3RWz9hycQUeiviKygugz0g) - What is not done in cool down: review+merge, reductions, scans - Testing on icon4py / FVM nabla test case? - open further steps (next cycle or not): Orchestration, Optimization, Bindings - temporaries - Setup a paper about gt4py.next (Mauro, Enrique) - How to write a model support framework? (Enrique, Mauro) - Architecture - Tools - Should we have a workshop with GT4Py model implementers? - ICON - FVM - FV3 - Tasmania - Let's formulate a concrete scope ## under the radar - Till will need to allocate some time for FVM work - Linus leaving: Handover to new trainees, cartesian work? ## Remarks - we think we should not make the Python driver of tracer advection (TODO Mauro: talk with Will and Andreas)