-
Notifications
You must be signed in to change notification settings - Fork 47
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
Enable modules for packages not compiled with preferred compiler (update spack-stack setup-meta-modules); remove need for external ecflow
#1257
Conversation
… ecflow, add external qt@5
…le for intel still works
…eature/boost_gcc4intel
…eature/boost_gcc4intel
…eature/boost_gcc4intel
… for principal compiler Intel
e0c6d92
to
5b75c23
Compare
…n env using one principal (preferred) compiler
5b75c23
to
5d22dd7
Compare
…eature/boost_gcc4intel
…eature/boost_gcc4intel
…mpilers.yaml if not already there and list in packages_intel.yaml (or packages.yaml if only an Intel build exists). Still todo: atlantis, gaea-c5, gaea-c6 (added notes)
…k/meta_modules.py
… .github/workflows/ubuntu-ci-x86_64-oneapi.yaml
8ac23f7
to
99aa58d
Compare
logging.info(" ... ... appending {} to MODULEPATHS_SAVE".format(modulepath_save)) | ||
MODULEPATHS_SAVE.append(modulepath_save) | ||
|
||
# For tcl modules remove the compiler prefices from the module contents |
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.
This block (remove the compiler prefices for tcl) got moved up, since it is needed for all compilers - not just the preferred compiler. This allows us to skip the remainder of the loop for compilers that are not the preferred compiler.
…tack/stack/meta_modules.py
ded8f03
to
871fd3d
Compare
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.
Successfully installed intel on Hercules.
Approved.
…eature/boost_gcc4intel
@ashley314 Your issue may be that you still have an external ecflow in the S4 site config. You will want to remove that and make sure you have an external qt@5 instead. And you will want to remove the |
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.
This seems to work fine based on testing on my local machine (namely, loading stack-intel reveals gcc-built modules, e.g., boost).
Thanks for testing @AlexanderRichert-NOAA ! I'll wait for approval from JCSDA before I merge this. |
@climbfuji thanks for the suggestions. I worked with @srherbener, we removed ecflow as an external package and qt was already declared. The exclude for ecflow also needed to be removed from the modules file. We were able to then install ecflow and made it through ldmod refresh with everything looking good. Ran the meta module script, but then when trying to load the jedi environment ecflow is still not showing up. Do you have any ideas on what else is missing? |
I'll ping you in slack |
…rst for UCX bug fixes
…i/spack-stack into feature/boost_gcc4intel
@@ -1,6 +1,6 @@ | |||
packages: | |||
all: | |||
compiler:: [[email protected]] | |||
compiler:: [[email protected]] # todo: add gcc here |
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.
Just want to double check. Is the intention to wait until after the 1.8.0 release to make these changes for Gaea?
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.
We'll do this as part of the site config updates on the release branch and then bring it back to develop if that makes sense?
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.
Sure, that makes sense. Happy to approve!
@@ -1,6 +1,6 @@ | |||
packages: | |||
all: | |||
compiler:: [[email protected]] | |||
compiler:: [[email protected]] # todo: add gcc here |
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.
Sure, that makes sense. Happy to approve!
Summary
Note. I pinky swear that I am going to rewrite that old
setup-meta-modules
extension that was clobbered together in an afternoon three years ago with the thinking "let's try something and then do it properly next month".This PR makes the necessary changes to the site configs and the
setup-meta-modules
extension to build certain packages with other compilers than the preferred compiler and still be able to load the module for that package. We can only do this now that we have the concept of a preferred compiler in our environments. One assumption made here is that the MPI provider, if any, is compiled with the preferred compiler (I think this is a reasonable assumption to make).Our use cases are:
bison
needs to be compiled withgcc
when the preferred compiler isoneapi
. Strictly speaking, we don't need the bison module in this case, but I tested it on my laptop and it works.ecflow
andboost
must be compiled withgcc
when the preferred compiler isintel
. This allows us to move away from externalecflow
packages that don't work with the proposed update of Python to3.11.7
(because the externalecflow
was compiled with an old Python3.9
). In this case, we need theecflow
modulefile. I tested this on the Ubuntu CI runner and on Narwhal.Caveat: I have not tested if this new capability works with packages that depend on MPI (which is compiled with the preferred compiler) but that get compiled with a different compiler (e.g. something like
intel-oneapi-mpi/2021.12.0/gcc/11.2.0
when the packages using the preferred compiler would haveintel-oneapi-mpi/2021.12.0/intel/2021.12.0
).Still todo:
gcc
compiler used as backend for Intel for Atlantis, Gaea C5, Gaea C6packages.yaml
and make sure every site has an externalqt@5
in itspackages.yaml
Fix unit test, or disable because we are going to rewrite the setup-meta-modules extension after the 1.8.0 release. Yes, this time for sure!doneTesting
Applications affected
None (no changes to how applications are run)
Systems affected
All using Intel or oneAPI compilers
Dependencies
none
Issue(s) addressed
Link the issues addressed or resolved by this PR (use
Fixes #???
for fully resolved issues)Checklist
All dependency PRs/issues have been resolved and this PR can be merged.