# [Greenline] halo construction
<!-- Add the tag for the current cycle number in the top bar -->
- Shaped by: Magdalena
- Appetite (FTEs, weeks):
- Developers: <!-- Filled in at the betting table unless someone is specifically required here -->
## Problem
<!-- The raw idea, a use case, or something we’ve seen that motivates us to work on this -->
During the last cycle, progress was made towards being able to decompose a icon grid in python with [this project](https://hackmd.io/ophk8gJ2S9KGFgNpuAMzyg).
What has been achieved:
- Starting from a global grid we can
- decompose cells, vertices and edges
- construct halos
- construct node local connectivities arrays
- some simple tests are in place that
- read a field locally after the distribution gather the data from all nodes and compare to the global field.
This is a follow up project that should add the missing features in order to be able to run **global** simulations in multinodes.
## Appetite
<!-- Explain how much time we want to spend and how that constrains the solution -->
## Solution
<!-- The core elements we came up with, presented in a form that’s easy for people to immediately understand -->
- compute start/end index arrays for the local grid
- refactor grid_manager.py to
- call the decomposition
- return local topologies.
- enlarge test set
- compute geofac_rot, geofac_div, geofac_n2s in distributed way and compare with 1 node serialized results
- use grid_manager to provide the topology for single and multi node diffusion tests
- add CI action for parallel (MPI) tests
## Rabbit holes
<!-- Details about the solution worth calling out to avoid problems -->
## 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 -->
## 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. -->
- [ ] CI action for mpi tests
- [ ] Integrate in grid_manager.py
- [ ] refactor and simplify
- [x] add decompose
- [ ] return local grid for decomposed setup
- [x] construct start, end indices
- [ ] tests for halo access
- [ ] geofac_rot
- [ ] geofac_div
- [ ] geofac_n2s
- [ ] run diffusion with grid manager