-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Right now, we only support sequential component model stepping. We may see improved performance if we switch to concurrent/parallel component stepping.
Note that because of the land/atmosphere ordering restriction, and the comparative costs of each component, this will probably only result in speedup of CMIP, not AMIP.
Restrictions
Currently, the integrated land model computes fluxes implicitly as part of its step (whereas for other surface models, surface fluxes are computed explicitly before each step). This imposes an ordering in the step_model_sims! function and prevents parallelization of the atmosphere and land steps. This is conveyed by labeling the ClimaLandSimulation as a subtype of the AbstractImplicitFluxSimulation abstract type.
We will eventually have the same restriction for sea ice but don't yet.
Approach
- Link atmosphere and land in a sub-stepped model, since their timesteps are similar and they can't be stepped in parallel
- Instead of the for loop in
step_model_sims!, we should spawn 3 threads:@spawn atmos/land step,@spawn ocean step, and@spawn ice step - We should add a flag to the config options so we can choose which timestepping scheme we want to use - e.g.
coupler_timesteppingwith optionsexplicitorconcurrent - Test out performance gains by comparing CMIP SYPD between the two timestepping options, given the same compute resources