Skip to content

Acorn updates, March 2025#1571

Merged
AlexanderRichert-NOAA merged 23 commits intoJCSDA:developfrom
AlexanderRichert-NOAA:acorn_weeklybuild_mar25
Mar 20, 2025
Merged

Acorn updates, March 2025#1571
AlexanderRichert-NOAA merged 23 commits intoJCSDA:developfrom
AlexanderRichert-NOAA:acorn_weeklybuild_mar25

Conversation

@AlexanderRichert-NOAA
Copy link
Copy Markdown
Collaborator

@AlexanderRichert-NOAA AlexanderRichert-NOAA commented Mar 19, 2025

Summary

General spack-stack updates:

  • 'esmf+python' as 'require' rather than 'prefer'.
  • By default, spack stack create env will now filter site/compilers.yaml to remove compilers with the same name but different versions (there is an optional flag for not doing this). There is also a new utility, filter_spack_compilers.py that allows users to filter compilers "manually" (inclusive, exclusive, and exclusive by compiler name/version).
  • In weekly builds, don't wipe out existing env dirs. I'm openminded as to whether this is actually a good idea.
  • Allow mapl duplicates in weekly builds.

Acorn-specific updates:

  • Enable MPI-based netcdf-{c,fortran} tests on Acorn.
  • Re-enable PBS Pro for weekly testing; build gh+deps on login nodes, everything else in PBS Pro.

Testing

Tested on Acorn.

Applications affected

Most (because of esmf:require:+python)

Systems affected

Acorn; maintainers that don't want to filter site/compilers.yaml can use the --keep-all-compilers flag

Dependencies

JCSDA/spack#527

Issue(s) addressed

Fixes #1570

Checklist

  • This PR addresses one issue/problem/enhancement, or has a very good reason for not doing so.
  • These changes have been tested on the affected systems and applications.
  • All dependency PRs/issues have been resolved and this PR can be merged.

@AlexanderRichert-NOAA AlexanderRichert-NOAA marked this pull request as ready for review March 19, 2025 21:55
@AlexanderRichert-NOAA AlexanderRichert-NOAA requested review from RatkoVasic-NOAA, climbfuji, eap and rickgrubin-noaa and removed request for eap March 19, 2025 21:55
@rickgrubin-noaa
Copy link
Copy Markdown
Collaborator

Is the following a correct understanding?

  • when creating an env as is currently done: spack stack create env ... --compiler <name>, it will now be necessary for the --compiler arg to specify a <name> and <version>, e.g. oneapi@2024 if there is more than one entry for <name> in compilers.yaml ?
  • when creating an env as is currently done: spack stack create env ... --compiler <name> without specifying --keep-all-compilers, and multiple versions of <name>, e.g. oneapi@2024 and oneapi@2025, are both specified in compilers.yaml, then <name>@<version> not specified as an arg to --compiler is filtered ?
  • if --keep-all-compilers is specified when creating an env, one can filter out a compiler after the fact with the util/filter_spack_compilers.py utility ?

@AlexanderRichert-NOAA
Copy link
Copy Markdown
Collaborator Author

* when creating an env as is currently done: `spack stack create env ... --compiler <name>`, it will now be necessary for the `--compiler` arg to specify a `<name>` **_and_** `<version>`, e.g. `oneapi@2024` if there is more than one entry for `<name>` in `compilers.yaml` ?

No- If no version is specified by the --compiler flag, site/compilers.yaml will not be modified.

* when creating an env as is currently done: `spack stack create env ... --compiler <name>` without specifying `--keep-all-compilers`, and multiple versions of `<name>`, e.g. `oneapi@2024` and `oneapi@2025`, are both specified in `compilers.yaml`, then `<name>@<version>` **_not_** specified as an arg to `--compiler` is filtered ?

Correct (assuming that some version was provided with the --compiler flag)

* if `--keep-all-compilers` is specified when creating an env, one can filter out a compiler after the fact with the `util/filter_spack_compilers.py` utility ?

Correct

Copy link
Copy Markdown
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two questions/requests

  1. Please update the documentation. We have documentation for utilities, for the spack-stack extension, ... - all in readthedocs. Given that this is a little more complicated than some of the other options, we should document it properly.
  2. Do we need the extra utility filter_spack_compilers.py? I'd say it's enough to do this when setting up the environment, and if you forget then start over?

@AlexanderRichert-NOAA
Copy link
Copy Markdown
Collaborator Author

  1. I added a couple bits of documentation, let me know if there's somewhere else that it should get mentioned or if you think it needs further elaboration.
  2. Probably not? I intend to maintain a copy of it elsewhere for use outside of spack-stack, so I won't add it unless others would find it useful.

Copy link
Copy Markdown
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy to merge this and resolve the conflicts later when merging release/1.9.0 into develop.

@AlexanderRichert-NOAA AlexanderRichert-NOAA merged commit 8faa949 into JCSDA:develop Mar 20, 2025
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

'spack stack create env' automatically filter unused compilers from site/compilers.yaml?

3 participants