Running the SST reservoir with a single model per tile drastically slows down operation for runs that need to be 6+ months to see results. This PR adds the ability to run with fewer reservoir models than ranks used for fv3gfs by implementing gather/scatter operations for the inputs and outputs from those steppers.
Refactored public API:
get_reservoir_steppers: now takes in a CubedSphereCommunicator object to determine if more ranks than models are available and initializes the steppers depending on that.
Significant internal changes:
For non-root ranks of each tile, we now use _GatherScatterStepper for the increment and prediction steppers, the tile roots use the original steppers with gather/scatter embedded
Running the SST reservoir with a single model per tile drastically slows down operation for runs that need to be 6+ months to see results. This PR adds the ability to run with fewer reservoir models than ranks used for fv3gfs by implementing gather/scatter operations for the inputs and outputs from those steppers.
Refactored public API:
get_reservoir_steppers
: now takes in aCubedSphereCommunicator
object to determine if more ranks than models are available and initializes the steppers depending on that.Significant internal changes:
_GatherScatterStepper
for the increment and prediction steppers, the tile roots use the original steppers with gather/scatter embeddedCoverage reports (updated automatically):