# [Blueline] Py2F infrastructure: Verification, CI/CD on alps/balfrin, muli-process runs <!-- Add the tag for the current cycle number in the top bar --> - Shaped by: Christoph, Sam, (Anurag?) - Appetite (FTEs, weeks): 1 cycle - Developers: <!-- Filled in at the betting table unless someone is specifically required here --> ## Problem Currently missing: * Way to verify each run of a granule against Fortran OpenACC * Building icon-exclaim with the granule in one step (scripts, spack recipe) * jenkins/(gitlab?) CI/CD on balfrin/santis based on venv * successful verification of diffusion granule with multiple GPU ## Appetite 1 cycle ## Solution <!-- The core elements we came up with, presented in a form that’s easy for people to immediately understand --> Verification and debugging approach: - Re-use verification interface (`verify_field`) of Liskov blue line integration. - Probtest after the full experiment - Document the way we do verification. - Test the (ITIR -> dace) backend instead of (ITIR -> gtfn) - Build recipe based on uvenv - spack based? - non-spack based? - both? - jenkins CI/CD on balfrin - verification mode (compare granule at every execution to Fortran) - substitution mode (only execute icon4py granule, probtest) - gitlab on santis? - Switch from mch_ch_r04b09 to small production experiments of MCH (icon1, icon2, kenda1) - successfully verify diffusion granule for multiple GPUs (MCH production and aquaplanet) ## Rabbit holes <!-- Details about the solution worth calling out to avoid problems --> Do not try to replicate any workflow and data processing platform. Keep it simple. ## No-gos No performance optimizations yet. ## Progress <!-- Don't fill during shaping. This area is for collecting TODOs during building. As first task during building add a preliminary list of coarse-grained tasks for the project and refine them with finer-grained items when it makes sense as you work on them. --> - [x] Task 1 ([PR#xxxx](https://github.com/GridTools/gt4py/pulls)) - [x] Subtask A - [x] Subtask X - [ ] Task 2 - [x] Subtask H - [ ] Subtask J - [ ] Discovered Task 3 - [ ] Subtask L - [ ] Subtask S - [ ] Task 4