Skip to content
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

Update Hera files for spack-stack-1.9.0 #1507

Merged
merged 6 commits into from
Feb 12, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 23 additions & 6 deletions configs/sites/tier1/hera/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,32 @@ compilers:
CPATH: '/apps/gnu/gcc-9.2.0/include'
extra_rpaths: []
- compiler:
spec: gcc@9.2.0
spec: gcc@13.2.0
paths:
cc: /apps/gnu/gcc-9.2.0/bin/gcc
cxx: /apps/gnu/gcc-9.2.0/bin/g++
f77: /apps/gnu/gcc-9.2.0/bin/gfortran
fc: /apps/gnu/gcc-9.2.0/bin/gfortran
cc: /apps/gnu/gcc-13.2.0/bin/gcc
cxx: /apps/gnu/gcc-13.2.0/bin/g++
f77: /apps/gnu/gcc-13.2.0/bin/gfortran
fc: /apps/gnu/gcc-13.2.0/bin/gfortran
flags: {}
operating_system: rocky8
modules:
- gnu/9.2.0
- gnu/13.2.0
environment: {}
extra_rpaths: []
- compiler:
spec: [email protected]
paths:
cc: /apps/oneapi/compiler/2024.2/bin/icx
cxx: /apps/oneapi/compiler/2024.2/bin/icpx
f77: /apps/oneapi/compiler/2024.2/bin/ifort
fc: /apps/oneapi/compiler/2024.2/bin/ifort
flags: {}
operating_system: rocky8
modules:
- intel/2024.2.1
environment:
prepend_path:
PATH: '/apps/gnu/gcc-13.2.0/bin'
LD_LIBRARY_PATH: '/apps/gnu/gcc-13.2.0/lib64'
CPATH: '/apps/gnu/gcc-13.2.0/include'
extra_rpaths: []
4 changes: 2 additions & 2 deletions configs/sites/tier1/hera/mirrors.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
mirrors:
local-source:
fetch:
url: file:///scratch1/NCEPDEV/nems/role.epic/spack-stack/source-cache
url: file:///scratch4/NCEPDEV/stmp/role.epic/spack-stack/mirror
access_pair:
- null
- null
access_token: null
profile: null
endpoint_url: null
push:
url: file:///scratch1/NCEPDEV/nems/role.epic/spack-stack/source-cache
url: file:///scratch4/NCEPDEV/stmp/role.epic/spack-stack/mirror
access_pair:
- null
- null
Expand Down
4 changes: 4 additions & 0 deletions configs/sites/tier1/hera/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ packages:
externals:
- spec: [email protected]
prefix: /usr
cdo:
externals:
- spec: [email protected]
prefix: /apps/cdo/2.3.0/gnu_13.2.0
Copy link
Collaborator

Choose a reason for hiding this comment

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

The build failure for cdo is odd:

checking whether /contrib/spack-stack/spack-stack-1.9.0-release/spack/lib/spack/env/oneapi/icpx supports C++20 features with -std:c++20... no
configure: error: *** A compiler with support for C++20 language features is required.

given that spack sets:

export SPACK_CXX=/apps/oneapi/compiler/2024.2/bin/icpx

and

% /apps/oneapi/compiler/2024.2/bin/icx --version
Intel(R) oneAPI DPC++/C++ Compiler 2024.2.1 (2024.2.1.20240711)

and similar configurations (e.g. hercules, orion, ursa) don't exhibit this failure.

Copy link
Collaborator

Choose a reason for hiding this comment

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

This is expected. The GNU backend for oneapi is gcc 9.1 or 9.2 I believe on Hera, and that only supports C++17. See configs/common/packages.yaml section cdo. You can force an older version of cdo being built on Hera in Hera's packages.yaml (i.e. for all compilers used on Hera).

Copy link
Collaborator

Choose a reason for hiding this comment

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

configs/sites/tier1/hera/compilers.yaml for the PR specs gcc/13.2.0 and pathing for that version:

    environment:
      prepend_path:
        PATH: '/apps/gnu/gcc-13.2.0/bin'
        LD_LIBRARY_PATH: '/apps/gnu/gcc-13.2.0/lib64'
        CPATH: '/apps/gnu/gcc-13.2.0/include'

Wouldn't that be enough to find an appropriate backend?

One could also add

cdo:
  require::
  - '%gcc'

to configs/sites/tier1/hera/packages.yaml, or is that not a preferable alternative?

The system-provided module that's referenced here was built with gcc/13.2.0

Copy link
Collaborator

Choose a reason for hiding this comment

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

Interesting. I would just try an older version of cdo and be done with it.

cpio:
externals:
- spec: [email protected]
Expand Down
6 changes: 3 additions & 3 deletions configs/sites/tier1/hera/packages_gcc.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
packages:
all:
compiler:: [gcc@9.2.0]
compiler:: [gcc@13.2.0]
providers:
mpi:: [[email protected]]
mpi:
Expand All @@ -9,5 +9,5 @@ packages:
externals:
- spec: [email protected]~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java+legacylaunchers~lustre~memchecker~openshmem~orterunprefix+pmi+romio+rsh~singularity+static+vt+wrapper-rpath fabrics=ucx schedulers=slurm
modules:
- gnu/9.2.0
- openmpi/4.1.6_gnu9.2.0
- gnu/13.2.0
- openmpi/4.1.6
40 changes: 40 additions & 0 deletions configs/sites/tier1/hera/packages_oneapi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
packages:
all:
compiler:: [[email protected]]
providers:
mpi:: [[email protected]]
# Remove the next three lines to switch to intel-oneapi-mkl
blas:: [openblas]
fftw-api:: [fftw]
lapack:: [openblas]
mpi:
buildable: False
intel-oneapi-mpi:
buildable: False
externals:
- spec: [email protected]%[email protected]
modules:
- intel/2024.2.1
- impi/2024.2.1
prefix: /apps/oneapi
intel-oneapi-mkl:
# Remove buildable: False and uncomment externals section below to use intel-oneapi-mkl
buildable: False
#externals:
#- spec: [email protected]%[email protected]
# prefix: /apps/oneapi
# DH* Remove this section to switch to intel-oneapi-mkl
ectrans:
require::
- '@1.2.0 ~mkl +fftw'
gsibec:
require::
- '@1.2.1 ~mkl'
py-numpy:
require::
- '@1.26'
- '^openblas'
# *DH
zlib-ng:
require:
- '~shared'
Loading