# Brainstorming Cycle 23 - 07/24 Before pre-betting table: Name in parenthesis means, proposed by this person. After pre-betting table: Name in parenthesis means taking the lead in shaping. Please involve the right people or distribute the work. ## Blue line - [Blueline] **Py2F infrastructure**: Verification, CI/CD on alps/balfrin, muli-process runs (Sam, Christoph, Anurag) - Figure out in shaping if people need to be involved for Aquaplanet on some system - [Blueline] **Dycore Wrapper**: Dycore granule wrapper for Py2F (Sam) - [Blueline] **Performance baseline**: Could be merged with the first project (Py2) (Christoph). - Detailed performance baseline of ICON for comparing py2f, but also for GT4Py+DaCe work - [Blueline] **Alps Acceptance test** (Will) ## Green line - [Greenline] **Torus grid** (needed for warm bubble, double periodic grid) (Jacopo can do this because he needs it for his things) (Magdalena, Anurag) -> No shaping document, most of the work that is needed at the moment for Jacopo is already done and being reviewed [PR 484](https://github.com/C2SM/icon4py/pull/484), ~~with the exception of construction of `C2E2C2E` connectivity.~~ [PR 490](https://github.com/C2SM/icon4py/pull/490) - [Greenline] clean up and **[merge micro physics](https://hackmd.io/HIG8c41zQrCwwmwBTD8ybw)** (Chia Rui, Magdalena) - [Greenline] **[factory for the metric fields](https://hackmd.io/dzk7aReiT6W4g3dPPxoiYg)**: making the metric fields available to use for model components: to this end we should build a component that instantiates/initializes the fields and can be queried for them by all model components that need them. This components builds part of the (static) model state: we want this state to be self-describing based on metadata. Model interfaces should be based there on that is not using a (cryptic variable name as a mean of "communicating" what field we need but rather a CF-type standard_name). If it works well with the metric fields the same work can be done for the interpolation coefficients. (Magdalena) - [Greenline]: **[domain decomposition for grid_manager.py](https://hackmd.io/ophk8gJ2S9KGFgNpuAMzyg)** (Magdalena) - [Greenline]: **[Model configuration](https://hackmd.io/_PkhzH1lSbyDnkMRgjg_sA)** - gather requirements, shaping project (Research project) - [Greenline]: (small side project) add mpi tests to CI (Magdalena) ## GT4Py / DaCe - [SDFGConvertible GT4Py Programs] [Merge into main](https://hackmd.io/4YVqRB8eS5ulcWTUby7NuQ) (Christos), [DaCe Orchestration] [Merge into main](https://hackmd.io/4YVqRB8eS5ulcWTUby7NuQ) (Christos) - [GT4Py/DaCe] GTIR and DaCe backend (Hannes, Enrique) - see plan discussed in https://hackmd.io/kWaLbNjvQlOAtJWxAYWsNQ - DaCe backend for CombinedIR (Edoardo) - Translation of CombinedIR to SDFG: Need to review the initial changes for `shift`, `neighbors` and `reduce`. One design aspect that is still under discussion is how flexible the translator should be in supporting mixed IR, something in beetween pure fieldview and ITIR. - One important aspect for the DaCe backend is the representation of boundary conditions (`concat_where`), and the lowering to SDFG. This could be started in next cycle. - (To the best of my knowledge) this is the first in GT4Py we use DaCe for optimization through SDFG transformations. In the cartesian backend optimization was achieved by some IR transformation before generating the SDFG. Transformations were not explicitely applied to the SDFG (my grep found only 2 hits but that was only for OpenMP). The fieldview representation will open up a lot of transformation oppurtunities. SPCL is working on improvements for CUDA code generation. However, these improvements are likely to apply to a local scope. If we are planning to use DaCe to optimize large SDFGs, we need an optimization driver (exploration tool / programmatic transformations). - [[DaCe] JaCe III](/RAqnzEkFRV2BgUOz2FY3lA) (Philip) ------------------------------- ## Available resources: + GridTools: * Christos: * Edoardo: Away 15-19 July * Enrique: * Hannes: * Philip: Away from 1.8-19.8 (just after the cycle ends). * Rico: * Sara (ECMWF): annual leave 11.7.-18.7. and 29.7.-2.8. * Till: + CSCS-EXCLAIM: * Abishek: * Magdalena: Away from 14.7. - 21.7. * Nikki: Away 13.07 - 22.07 * Sam: Away from 08.07 - 02.08 for civil service + CSCS: * Andreas: * Will: + C2SM: * Chia Rui: * Jonas: + MCH: * Christoph: * Daniel : ?