Repository navigation
Add the split-explicit time stepper - #517
mark-petersen merged 39 commits into
Conversation
|
Additional timing measurements on Frontier GPU nodes for several Stage 2 components, including the computations (*Corr, *Pred, and accum) and halo exchanges, show that
Omega/components/omega/src/base/Halo.h Lines 851 to 897 in 9da1a59 |
faa5d54 to
6158478
Compare
|
Strong scaling across GPU nodes and stage-wise GPU performance, including Frontier-GPU, PM-GPU, and Aurora-GPU:
|
|
7245054 passes CPU but not GPU on Frontier:
|
I will look into this today. I pushed a bunch of changes yesterday and rebased the branch on develop but I did not test it on any GPU machine. |
|
The frontier GPU issue is now fixed. |
|
Yes, I tested Frontier |
|
For more realistic testing on a high-resolution mesh, I locally merged this split-explicit time-stepping PR, the KPP mixing PR #512, and the mesh-scaling PR #506. I generated an initial condition for Omega on omega.ymlOmega_test_oRRS18to6v3_SE_KPP.mp4 |
|
I have made all the changes that I wanted in this PR. I think it is in a pretty good shape and can be taken out of draft mode. I ran CTests at commit e1f12bc on
and everything passed. |
|
@mwarusz , Thank you very much for working on this. I will test it and will change to the standard PR if the results look good. Thanks! |
e1f12bc to
7106042
Compare
|
I tested the split-explicit time stepper after the refactoring by @mwarusz . I ran two simulations: the 1 km baroclinic channel and the realistic global ocean test on the EC30to60E2r2 mesh. For comparison, I used two different commits representing the versions before (
The two commits do not necessarily need to be BFB, and the difference is only around |
e1f12bc to
cf375bd
Compare
- Added a framework for the split-explicit RK2 time stepping - Two new time steppers were added: 'SplitExplicitRK2', 'UnsplitRK2' - Related options for the split time stepping were added to config/Default.yml - NormalBarotropicVelocity, NormalBaroclinicVelocity, BarotropicPressureAnomaly arrays were added to State - Transport the split-explicit time stepping work from the previous development branch onto a clean branch.
6d3c8ac to
8d6254a
Compare
|
@mark-petersen, do you have any review suggestions, or are you happy approving based on your testing above? |
mark-petersen
left a comment
There was a problem hiding this comment.
Approving based on @hyungyukang's extensive testing above, including performance testing, and my testing with SOMA. Thank you Hyun!
|
@mark-petersen, did you happen to run |
|
Passes omega_pr on Frontier with both craygnu and craygnu-mphipcc: Polaris
|

















This PR introduces a split-explicit time stepper for computationally efficient time integration in Omega.
SplitExplicitRK2andUnsplitRK2.SplitExplicitRK2: split time stepping using RK2 for the baroclinic time stepperUnsplitRK2: unsplit RK2 time stepping.Predictor-CorrectorPredictor-Corrector: an explicitly subcycled predictor-corrector scheme.NormalBarotropicVelocity,NormalBaroclinicVelocity,BarotropicPressureAnomalyarrays were added toState.Checklist
Documentation:
Linting
Building
Testing
aurora, oneapi-ifx, mpich
chrysalis, oneapi-ifx, openmpi
frontier, craygnu, mpich
frontier, craygnu-mphipcc, mpich
pm-cpu, gnu, mpich
pm-gpu, gnugpu, mpich
Provide relevant details in a comment to the PR titled
Testingwith the following:have been run on and indicate that are all passing.
has passed, using the Polaris
e3sm_submodules/Omegabaseline-pfor both the baseline (Polarise3sm_submodules/Omega) and the PR buildNew tests: