-
Notifications
You must be signed in to change notification settings - Fork 217
moves the lib list to the driver buildnml with backward compatibility #4836
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
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4836 +/- ##
==========================================
+ Coverage 55.28% 55.33% +0.05%
==========================================
Files 266 266
Lines 38491 38493 +2
Branches 8323 8323
==========================================
+ Hits 21279 21302 +23
+ Misses 14856 14848 -8
+ Partials 2356 2343 -13 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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 @jedwards4b for working on this PR. I could confirm that it builds and runs the Kokkos lib/kernels successfully in CAM, together with your other PR (ESCOMP/CMEPS#584).
CIME/build.py
Outdated
if comp_interface == "nuopc" and (not ufs_driver or ufs_driver != "nems"): | ||
libs.append("CDEPS") | ||
# Build shared code of CDEPS nuopc data models | ||
build_script = {} |
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.
I think this line is pointless, no? It's already set before the if clause.
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.
Looks like a merge error, I'll clean it up - thanks.
|
||
if uses_kokkos(case) and comp_interface != "nuopc": | ||
libs.append("ekat") | ||
if uses_kokkos(case) and comp_interface != "nuopc": |
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.
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.
That's correct, this code is only still here for backward compatibility.
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.
Yeah, that was my idea. I don't want to inject knowledge about host model tpls into CIME. All CIME should care about is a list of libs names, and where to find their build scripts.
@jedwards4b Could you document this under Can we comment which sections are being kept for backwards compatibility. |
An issue that I think we still need to resolve is that some support libraries depend on others and |
Perhaps a non-trivial API change, but...what about asking that the buildlib.foo scripts also offer a command line option like Alternatively, we can ask that buildnml (or config_compset.xml, depending on where this logic should be impl-ed) adds ALL libs (including deps) in the correct order. So, eg., if EAMxx in E3SM needs kokkos and for some reason kokkos depends on csm_share, it must add the libs "csm_share,kokkos" (and not just "kokkos"). CIME will concat all lists, and remove duplicates. |
@bargol your alternate solution is what I was suggesting and have implemented. |
@bartgol I have added ESCOMP/MOM_interface#276 to show what this looks like in a particular component and have tested this together with the CMEPS and cime changes. |
@jasonb5 I am ready to merge this with you're review. |
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.
LGTM
@jedwards4b Added some tests and a warning about using a deprecated method.
Description
Proposed change to handle list of support libraries in the driver rather than in cime.
Checklist