-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: