-
Notifications
You must be signed in to change notification settings - Fork 8
Use shell scripts generated from config_machines.xml
#303
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
969c899 to
db32c1a
Compare
...from get_modules_env_vars_and_mpi_compilers() and get_spack_script()
Almost all shell templates appear to be interchangable with their auto-generated counterparts from machine_configs.xml. Perlmutter CPU and GPU still need a little trick to set $NERSC_HOST if it isn't defined.
Before this fix, the autogenerated shell scripts were not getting rendered as jinja templates
We no longer need any config options to create the spack script.
db32c1a to
d04af42
Compare
7e5efa0 to
9b5a43f
Compare
TestingThis branch has been used as part of #304 in deploying E3SM-Unified on various supported machines. Testing of spack dependency builds as well as packages such as MPAS-Analysis, zppy, e3sm_diags and zstash suggests that the auto-generated scripts are working as expected. |
|
@andrewdnolan, as soon as Aurora deployment has succeeded, could you review this so we can work our way to a 2.0.0 release candidate? |
andrewdnolan
left a comment
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've looked through and this all seems good to me.
Based on the testing as part of deploying e3sm-unified release candidates last week, I think this is ready to go.
|
Thanks again, @andrewdnolan! |
Rather than manually updating shell scripts for each machine, compiler and MPI library, we auto-generate them from config machines. The option remains to provide template scripts as before but these would be used to modify, rather than replace, the auto-generated version (with huge savings in maintenance burden). At the moment, this appears to only be needed for Perlmutter, where a small trick is needed to set
$NERSC_HOSTif it isn't defined.The unneeded template scripts have been removed.
The unused
yaml_templatearguments toget_spack_script()andget_modules_env_vars_and_mpi_compilers()have been removed. This is an API breaking change and will mean the next version should be 2.0.0 (not 1.33.0).The options
modules_beforeandmodules_afterin the[spack]section of the config files have been removed and are no longer used. We never get modules from the YAML templates anymore, instead always getting them as part of the auto-generated scripts fromconfig_machines.xml. The modules are always loaded after the spack environment. Three machines previously hasmodules_before = True: Compy, Dane and Ruby. I believe this was unused in Compy's case because the modules came from template scripts instead of the YAML files in any case. For Dane and Ruby, we will have to keep an eye on whether behavior changes unexpectedly in future E3SM-Unified testing.Checklist
Testingcomment, if appropriate, in the PR documents testing used to verify the changes