Domain decomposition and halo construction#540
Merged
Conversation
halungge
commented
Jul 25, 2025
df9c2ef to
72d4d4b
Compare
added 26 commits
September 18, 2025 11:34
# Conflicts: # model/common/src/icon4py/model/common/grid/base.py # model/common/src/icon4py/model/common/grid/grid_manager.py # model/common/src/icon4py/model/common/grid/horizontal.py # model/common/src/icon4py/model/common/grid/refinement.py # model/common/tests/common/decomposition/mpi_tests/test_mpi_decomposition.py # model/common/tests/common/grid/unit_tests/test_refinement.py
# Conflicts: # model/common/src/icon4py/model/common/grid/grid_manager.py # model/testing/src/icon4py/model/testing/grid_utils.py
# Conflicts: # model/atmosphere/diffusion/tests/diffusion/mpi_tests/test_parallel_diffusion.py # model/atmosphere/dycore/tests/dycore/mpi_tests/test_parallel_solve_nonhydro.py # model/common/src/icon4py/model/common/decomposition/definitions.py # model/common/tests/common/decomposition/fixtures.py # model/common/tests/common/decomposition/mpi_tests/test_mpi_decomposition.py # model/common/tests/common/decomposition/unit_tests/test_definitions.py # model/common/tests/common/grid/mpi_tests/test_parallel_icon.py # model/testing/src/icon4py/model/testing/definitions.py # model/testing/src/icon4py/model/testing/grid_utils.py # model/testing/src/icon4py/model/testing/serialbox.py # tools/src/icon4py/tools/py2fgen/wrappers/common.py
# Conflicts: # model/common/pyproject.toml # model/common/src/icon4py/model/common/decomposition/definitions.py # model/common/src/icon4py/model/common/decomposition/mpi_decomposition.py # model/common/src/icon4py/model/common/grid/grid_manager.py # model/testing/src/icon4py/model/testing/grid_utils.py # tach.toml
jcanton
reviewed
Mar 6, 2026
Comment on lines
+263
to
+265
| my_cell_indices = self._decomposition_info.global_index(dims.CellDim) | ||
| my_edge_indices = self._decomposition_info.global_index(dims.EdgeDim) | ||
| my_vertex_indices = self._decomposition_info.global_index(dims.VertexDim) |
Contributor
There was a problem hiding this comment.
possibly for later cleanup, make these and their friends in _read_coordinates class members?
Contributor
There was a problem hiding this comment.
Yep, definitely for later.
Contributor
|
cscs-ci run default |
Contributor
|
cscs-ci run distributed |
acdf71e to
301c041
Compare
8114383 to
6df6af6
Compare
914bcbc to
f204644
Compare
Contributor
|
cscs-ci run default |
Contributor
|
cscs-ci run distributed |
nfarabullini
approved these changes
Mar 9, 2026
Contributor
|
cscs-ci run default |
|
Mandatory Tests Please make sure you run these tests via comment before you merge!
Optional Tests To run benchmarks you can use:
To run tests and benchmarks with the DaCe backend you can use:
To run test levels ignored by the default test suite (mostly simple datatest for static fields computations) you can use:
For more detailed information please look at CI in the EXCLAIM universe. |
Contributor
|
cscs-ci run distributed |
jcanton
added a commit
that referenced
this pull request
Mar 10, 2026
* main: Domain decomposition and halo construction (#540)
msimberg
added a commit
that referenced
this pull request
Mar 13, 2026
#540 added mpi4py as required dependency to the typing group. It is in principle required, but this makes mpi4py be installed by default with a regular `uv sync` which is suboptimal. Removing it for now from the typing group. mpi4py is still a required dependency in the distributed group.
jcanton
added a commit
that referenced
this pull request
Mar 18, 2026
* main: (29 commits) Scheduled Halo Exchange (#980) Add missing metrics fields to `test_parallel_grid_manager.py` test (#1114) Muphys: Lowering with single precision (#1101) Add single-rank lsq pseudoinv factory test (#1099) Cleanup Diffusion config (#1060) Fortran bindings: fix numpy allocation and cleanups (#1112) fix: fix gt4py metrics extractor in the StencilTest benchmarking (#1111) py2fgen: don't recompile if unchanged (#1110) CI for standalone_driver (#1070) Update mpi4py and pymetis groups to make them optional (#1100) Bump mshick/add-pr-comment from 2 to 3 (#1109) Use inout fields for full_muphys as well (#1108) Update GPU configuration for graupel (#1104) Move the mask of _q_t_update outside in graupel (#1093) Update gt4py to v1.1.7 (#1105) cleanup for ugly if condition of single node default in lsq coeffs (#1103) Domain decomposition and halo construction (#540) Muphys: Add flag to wait for graupel completion (#1095) Give each gt4py program a return type hint (#1087) Turn data download off for distributed CI (#1092) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Decompose (global) grid file:
pymetisto decompose the global grid (cells) intonpatchesOmissions:
LAM grids need to be investigated further:
start_indexandend_indexnot in the halo construction.the number of halo lines (in terms of cells) is hardcoded to 2, that could be made a parameter.
Not sure it all runs on GPU correctly... most probably there are some
numpycupyissues to fix.