# [Blueline] Py2F: Support multinode runs and dycore
<!-- Add the tag for the current cycle number in the top bar -->
- Shaped by: Sam, Abishek
- Appetite (FTEs, weeks): Full-cycle
- Developers:
## Problem
<!-- The raw idea, a use case, or something we’ve seen that motivates us to work on this -->
In order to run full-scale simulations multi-node runs need to be supported in Py2F via GHEX. This project is a continuation of the work done in cycle 21 to fully support multi-node runs and verify results from such runs. Furthermore after diffusion the next step is to support calling the dycore from ICON, however a wrapper for the dycore is missing and the current dycore in icon4py needs to be adapted to work with py2f.
## Appetite
<!-- Explain how much time we want to spend and how that constrains the solution -->
Full-cycle
## Solution
<!-- The core elements we came up with, presented in a form that’s easy for people to immediately understand -->
- Enabling multi-node runs:
- Support running experiments on multiple nodes and be able to verify those (probtest, cdo). Currently runs on two cores with MPI on CPU framework.
- Run on >2 cores and then multiple nodes (CPU)
- Try multi-node runs on GPU
- Does GHEX work out of the box for GPU?
- Measure overhead of multi-node runs
- Try possible speed ups.
- Integrate dycore granule:
- Run the ICON4Py Dycore using the GTFN GPU backend, ideally with an integration test (datatest) for that in the CI.
- Write a Python interface for a dycore granule and create a unit test to test it from Python.
- Use Py2F to generate corresponding bindings for the dycore wrapper.
- Integrate this into Fortran, writing a Fortran call to Py2F bindings, passing all the correct parameters and arrays.
- Verify dycore results.
## Rabbit holes
<!-- Details about the solution worth calling out to avoid problems -->
[Fill in any potential complications or areas where additional attention may be needed]
## No-gos
<!-- Anything specifically excluded from the concept: functionality or use cases we intentionally aren’t covering to fit the appetite or make the problem tractable -->
[Fill in any functionalities or use cases intentionally excluded]
## Progress
<!-- Don't fill during shaping. This area is for collecting TODOs during building. As the 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. -->
[This section will be filled during the project implementation phase]
- [x] Run ICON4Py Dycore using GTFN GPU backend (after several fixes)