-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MPI parallelization of dynamics #120
Comments
A decision on this work is required. Either
Preference is perhaps for 1 and then a new PR for the dynamics parallelisation later. |
Requirements:
|
|
Info from @einola and @timspainNERSC about size of problems to be computed:
|
## Background This PR is part of #120, where the basis of strategy for MPI parallelisation is described. ## Change description As all thermodynamics operations are local to a grid cell all required MPI communication, is handled by NetCDF4 library. Therefore the only required steps are: - [x] Initialize and finalize MPI stack - [x] Read decomposition metadata on each rank - [x] Read and write the necessary part of the grid on each rank (depends on #330) - [x] Tests for parallel I/O **NOTE** PR #432 should be merged into this branch before it is merged into develop To run `run_simple_example.sh` you will need to generate the following netcdf file ``` $ ncdump partition.nc netcdf partition { dimensions: P = 1 ; L = 1 ; globalX = 30 ; globalY = 30 ; group: bounding_boxes { variables: int global_x(P) ; int global_y(P) ; int local_extent_x(P) ; int local_extent_y(P) ; data: global_x = 0 ; global_y = 0 ; local_extent_x = 30 ; local_extent_y = 30 ; } // group bounding_boxes } ```
# Add MPI support to ParaGrid closes #534 closes #454 closes #448 --- # Task List - [x] modify `make_init_para24x30.py` to use new DG data layout and remove CG vars - [x] add MPI doctest support to `ParaGrid_test.cpp` - [x] move `extent` and `start` variables into `ModelArray`'s `DimensionSpec` - [x] add special MPI test case to `ParaGrid_test.cpp` - [x] add MPI support to `getModelState` - [x] add MPI support to `dumpModelState` - [x] add MPI support to `writeDiagnosticTime` - [x] reinstate test `ConfigOutput_test.cpp` for MPI builds - [x] add MPI support to `ERA5`/`TOPAZ` tests --- # Change Description After #331 added MPI parallelisation for thermodynamics on the RectGrid, this PR does the same for the Parametric grid. This should then check off the second task in #120 (_"MPI parallelization of thermodynamics where all operations, except for I/O, are local to an MPI rank"_) --- # Test Description - `ParaGrid_test.cpp` tests core functionality of ParaGrid (serial and MPI) - `./nextsim --config-file config_para24x30.cfg` should provide an integration test (serial and MPI) (based on #506) --- # Further work (for a future PR) - add MPI to dynamics (to close PR #120) - implement halo comms - implement boundary conditions (as part of MPI) - tidy naming of variables in Domain Decomp tool
No description provided.
The text was updated successfully, but these errors were encountered: