-
Notifications
You must be signed in to change notification settings - Fork 133
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
Pace build optional CI #1460
Pace build optional CI #1460
Conversation
As discussed, here's an attempt at bringing a CI that exercise a fraction (Remapping) of the model. This shouldn't be merged up until we all agree on the general principle and execution time. |
Thank you for this nice CI bundle @FlorianDeconinck ! |
If we think it'll be good to have it in the regular suite we can tailor what we extract from the model. Basically you have 3 big one-rank test (in descending order of complexity):
And then we have 2 bigger and more complex test that need 6 ranks (because of halo exchanges):
On the other side, for a lighting fast test My only concern is that already installing the entire py stack is not fast. I'll come back with some numbers. |
In that case I'll be interested to see what the numbers say for the As for the multi-rank tests we will have to see what the best strategy is to avoid using GH runners here. From what I understand it would already be a big help if we get the 3 single rank tests up and running asap and that would buy us some time to strategize about the dynamical core and |
Agreed. You can force a I'd say we can get a decent code coverage with the single rank tests and as we implement more model code under DaCe we can also refine those to cover more patterns. The multi-rank might not even be a good idea to do it DaCe side. After all, on our side for every major version of DaCe we need to run full coverage, including science testing. At that stage, something with a webhook from this repo to ours triggering a job on our HPC makes more sense. Let's call it future endeavor ;) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the nice PR!
This shouldn't be merged up until we all agree on the general principle and execution time.
Agreed, we should clarify some minor aspects w.r.t. to this CI.
Checkout DaCe before install Better base pip upgrade
Okay here's a proposal based on timing on my box which is not that great. Timing for
Overall What do you think? |
Alright @BenWeber42 / @phschaad I've updated the script to run in order from faster to slower: RiemSolverC, D_SW and then Remapping. The workflow is on |
This seems like a good strategy, yes - Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the additional CI!
Follow up of #1460 - [x] Fixed the `ci` script (including `git checkout issues` around selecting the correct `dace`) - [x] Move `D_SW` to execute only on rank 0 to avoid rebuild - [x] Swapped Rieman Solver on C-grid for D-grid for better coverage ~~WARNING: this PR is blocked by #1477~~ ~~WARNING: this PR is blocked by #1568~~ --------- Co-authored-by: Tal Ben-Nun <[email protected]>
As climate models developed at NOAA and NASA are leveraging DaCe more and more for their performance backend, we have seen multiple occurrence of major/minor version breaking downstream.
This optional GitHub action is an attempt to reduce those breakage by allowing the DaCe ecosystem to pull on a vetted version of the Pace climate model and run a subset of the regression tests that should exercise enough DaCe to catch a good amount of errors.
NASA takes responsibility to keep this CI clean and working along. All non-DaCe issues should be pinged on @FlorianDeconinck.
All data and model are under open source licenses.