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

Merge release/1.8.0 into develop #1321

Merged
merged 30 commits into from
Oct 3, 2024
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
e6f2974
Update .gitmodules: use spack branch release/1.8.0
climbfuji Aug 28, 2024
a5c5a2a
spack-stack-1.8.0 config for Discover SCU16, SCU17 (#1282)
srherbener Sep 3, 2024
e689737
Pin matplotlib and numpy to 3.7.4 and 1.23.5 (#1283)
DavidHuber-NOAA Sep 4, 2024
9950bc3
release/1.8.0: Update site configs for Nautilus, Blackpearl, Casper; …
climbfuji Sep 5, 2024
bd00b5e
release/1.8.0: bug fix for compiling [email protected] with gfortran < 10 in s…
climbfuji Sep 5, 2024
d152232
Add mirror path for Hera (#1290)
RatkoVasic-NOAA Sep 6, 2024
e3bda2a
Config for MacOS Sonoma 14.6.1 with Command Line Tools 15.3 (#1281)
srherbener Sep 10, 2024
f3f0ac1
Acorn updates for 1.8.0 (#1285)
AlexanderRichert-NOAA Sep 10, 2024
c8164ac
allow setting compiler version with --compiler
AlexanderRichert-NOAA Aug 1, 2024
c239551
allow compilers with version in matrix defs
AlexanderRichert-NOAA Aug 1, 2024
02859ac
add 'nco' template
AlexanderRichert-NOAA Sep 11, 2024
4614f87
Allow specifying compiler version for 'spack stack create env' (#1294)
AlexanderRichert-NOAA Sep 11, 2024
f96ad56
add list of WCOSS2 approved packages
AlexanderRichert-NOAA Sep 12, 2024
01837a2
update NCO template
AlexanderRichert-NOAA Sep 12, 2024
6ab217e
Merge branch 'release/1.8.0' into nco_sep24
AlexanderRichert-NOAA Sep 12, 2024
9a603fa
Merge pull request #1295 from AlexanderRichert-NOAA/nco_sep24
AlexanderRichert-NOAA Sep 12, 2024
0e2afda
Last minute updates (round 1 of ?) for NRL sites for spack-stack-1.8.…
climbfuji Sep 12, 2024
00fbc7a
Updated documentation for building spack-stack on Mac Sonoma OS (#1296)
srherbener Sep 13, 2024
2d3a1f8
release/1.8.0: document environment naming conventions (#1300)
climbfuji Sep 17, 2024
fcc6349
update acorn doco for 1.8.0
AlexanderRichert-NOAA Sep 17, 2024
262e5a6
Merge pull request #1301 from AlexanderRichert-NOAA/acorn_1.8.0
AlexanderRichert-NOAA Sep 19, 2024
9aa4f7e
update for discover-scu17 mkl and docs (#1306)
ashley314 Sep 25, 2024
1855931
remove external ecflow install for aws-pcluster (#1314)
eap Sep 27, 2024
0e56296
remove ecflow module exclusion (#1317)
eap Sep 27, 2024
1eb0a5d
release/1.8.0: Update derecho site config (#1315)
climbfuji Oct 1, 2024
801362f
Update changes from tier1 machines for 1.8.0 release (#1310)
RatkoVasic-NOAA Oct 3, 2024
b016e18
Update spack tag in .gitmodules and finalize doc/source/conf.py
climbfuji Oct 3, 2024
d9e237a
Merge branch 'release/1.8.0' of https://github.com/jcsda/spack-stack …
climbfuji Oct 3, 2024
a19c782
Revert release-1.8.0 specific changes to .gitmodules and doc/source/c…
climbfuji Oct 3, 2024
d4af74e
Update submodule pointer for spack
climbfuji Oct 3, 2024
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
2 changes: 1 addition & 1 deletion .github/workflows/ubuntu-ci-containers-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
# - '**.md'
# - '.github/ISSUE_TEMPLATE/*'
# - '.gitignore'
#
#
schedule:
- cron: '0 8 * * *'
workflow_dispatch:
Expand Down
14 changes: 10 additions & 4 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ packages:
# Pin version to avoid duplicates
require: '@2.6.4'
fms:
require: '@2024.02'
variants: 'precision=32,64 +quad_precision +gfs_phys +openmp +pic constants=GFS build_type=Release +deprecated_io'
require:
- '@2024.02'
- 'precision=32,64 +quad_precision +gfs_phys +openmp +pic constants=GFS build_type=Release +deprecated_io'
fontconfig:
require: '+pic'
freetype:
Expand Down Expand Up @@ -214,6 +215,9 @@ packages:
## To avoid duplicate packages
#py-jinja2:
# require: '@3.1.2'
# https://github.com/JCSDA/spack-stack/issues/1276
py-matplotlib:
require: '@3.7.4'
py-meson-python:
require: '@0.15.0'
# Comment out for now until build problems are solved
Expand All @@ -226,9 +230,10 @@ packages:
require: '@1.5.8 ~mpi'
# [email protected] causes many build problems with older Python packages
# also check Nautilus site config when making changes here
# https://github.com/JCSDA/spack-stack/issues/1276
py-numpy:
require:
- '@:1.25'
- '@:1.23.5'
py-pandas:
require: '+excel'
py-pybind11:
Expand Down Expand Up @@ -273,7 +278,8 @@ packages:
w3nco:
require: '@2.4.1'
wgrib2:
require: '@3.1.1'
require:
- '@3.1.1'
wrf-io:
require: '@1.2.0'
zstd:
Expand Down
15 changes: 15 additions & 0 deletions configs/common/packages_aocc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
packages:
all:
providers:
blas: [openblas]
fftw-api: [fftw]
lapack: [openblas]
ectrans:
require:
- '~mkl +fftw'
gsibec:
require:
- '~mkl'
py-numpy:
require:
- '^openblas'
6 changes: 0 additions & 6 deletions configs/containers/docker-ubuntu-clang-mpich.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,6 @@ spack:
externals:
- spec: [email protected]
prefix: /usr
g2:
# https://github.com/NOAA-EMC/NCEPLIBS-g2/issues/745
require:
- any_of: ['fflags="-fno-range-check"']
when: "@3.5.1 %clang"
message: "Extra g2 compile options for version 3.5.1 with clang"
g2tmpl:
# https://github.com/JCSDA/spack-stack/issues/525
require:
Expand Down
6 changes: 0 additions & 6 deletions configs/containers/docker-ubuntu-gcc-openmpi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,6 @@ spack:
externals:
- spec: [email protected]
prefix: /usr
g2:
# https://github.com/NOAA-EMC/NCEPLIBS-g2/issues/745
require:
- any_of: ['fflags="-fno-range-check"']
when: "@3.5.1 %gcc"
message: "Extra g2 compile options for version 3.5.1 with gcc/gfortran"
diffutils:
buildable: false
externals:
Expand Down
2 changes: 1 addition & 1 deletion configs/containers/specs/jedi-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
[email protected],
[email protected],
[email protected],
py-numpy@1.25.2,
py-numpy@1.23.5,
[email protected],
py-pip,
[email protected],
Expand Down
22 changes: 12 additions & 10 deletions configs/sites/tier1/acorn/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,17 @@ compilers:
cxx: CC
f77: ftn
fc: ftn
flags: {}
flags:
cflags: -static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -lm -lpthread
cxxflags: -static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -lm -lpthread
fflags: -static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -lm -lpthread
operating_system: sles15
modules:
- PrgEnv-intel/8.3.3
- craype/2.7.13
- PrgEnv-intel/8.5.0
- craype/2.7.17
- intel/19.1.3.304
- libfabric
environment:
prepend_path:
PATH: /opt/cray/pe/gcc/10.2.0/bin
LD_LIBRARY_PATH: /opt/cray/pe/gcc/10.2.0/snos/lib64
CPATH: /opt/cray/pe/gcc/10.2.0/snos/include
set:
# OpenSUSE on WCOSS2 machines sets CONFIG_SITE so
# Automake-based builds are installed in lib64
Expand All @@ -31,11 +30,14 @@ compilers:
cxx: CC
f77: ftn
fc: ftn
flags: {}
flags:
cflags: -static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -lm -lpthread
cxxflags: -static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -lm -lpthread
fflags: -static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -lm -lpthread
operating_system: sles15
modules:
- PrgEnv-intel/8.3.3
- craype/2.7.13
- PrgEnv-intel/8.5.0
- craype/2.7.17
- intel-classic/2022.2.0.262
- libfabric
environment:
Expand Down
6 changes: 1 addition & 5 deletions configs/sites/tier1/acorn/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@
externals:
- spec: [email protected]
modules: [git-lfs/2.11.0]
perl:
buildable: false
externals:
- spec: [email protected]~cpanm+shared+threads
prefix: /usr
mysql:
buildable: false
externals:
Expand All @@ -38,6 +33,7 @@
gdal:
variants: ~curl
flex:
buildable: false
externals:
- spec: [email protected]+lex
prefix: /usr
12 changes: 10 additions & 2 deletions configs/sites/tier1/acorn/packages_intel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,29 @@
- '@1.2.1 ~mkl'
py-numpy:
require::
- '@:1.25 ^openblas'
- '^[virtuals=lapack,blas] openblas'
- '@:1.25'
- any_of: ['@:1.24']
when: '%[email protected]'
# *DH
eckit:
require:
- any_of: ["@1.23.1"]
when: "%[email protected]"
eccodes:
require:
- any_of: ["@2.27.0"]
- any_of: ["@2.25.0"]
when: "%[email protected]"
message: "2.25.0 is the last version to use C++11 (as opposed to C++17)"
py-scipy:
require:
- any_of: ["@1.10.1"]
when: "%[email protected]"
cdo:
require:
- any_of: ["@2.3.0"]
when: "%[email protected]"
message: "2.3.0 is the last version to use C++17"
- any_of: ["@2.0.5"]
when: "%[email protected]"
message: "2.0.5 is the last version to use C++14"
1 change: 0 additions & 1 deletion configs/sites/tier1/atlantis/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,3 @@ compilers:
append_path:
CPATH: /cm/shared/apps/intel/oneapi-2024.2.1/compiler/2024.2/opt/compiler/include/intel64/
extra_rpaths: []
# Todo: Define gcc compiler (default for Atlantis) for Intel (ecflow)
2 changes: 0 additions & 2 deletions configs/sites/tier1/atlantis/modules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,3 @@ modules:
include:
# List of packages for which we need modules that are blacklisted by default
- python
exclude:
- ecflow
4 changes: 2 additions & 2 deletions configs/sites/tier1/atlantis/packages_oneapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ packages:
all:
compiler:: [[email protected],[email protected]]
providers:
mpi:: [[email protected].0]
mpi:: [[email protected]]
mpi:
buildable: False
intel-oneapi-mpi:
externals:
- spec: [email protected]%2024.2.1
- spec: [email protected]%oneapi@2024.2.1
prefix: /cm/shared/apps/intel/oneapi-2024.2.1
modules:
- mpi/2021.13
Expand Down
77 changes: 12 additions & 65 deletions configs/sites/tier1/aws-pcluster/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ apt install -y \
liblcms2-dev \
liblcms2-2

# Install QT5 for ecflow
# Install QT5, needed for install of ecflow
apt install -y \
qtcreator \
qtbase5-dev \
Expand Down Expand Up @@ -217,51 +217,7 @@ sudo usermod -aG docker $USER
exit
```

4. Build ecflow outside of spack to be able to link against OS boost
```
mkdir -p /home/ubuntu/jedi/ecflow-5.8.4/src
cd /home/ubuntu/jedi/ecflow-5.8.4/src
wget https://github.com/ecmwf/ecflow/archive/refs/tags/5.8.4.tar.gz
tar -xvzf 5.8.4.tar.gz
export WK=/home/ubuntu/jedi/ecflow-5.8.4/src/ecflow-5.8.4
export BOOST_ROOT=/usr

# Build ecFlow
cd $WK
mkdir build
cd build
cmake .. -DPython3_EXECUTABLE=/usr/bin/python3 -DENABLE_STATIC_BOOST_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/home/ubuntu/jedi/ecflow-5.8.4 2>&1 | tee log.cmake
make -j10 2>&1 | tee log.make
make install 2>&1 | tee log.install

# Create a modulefiles directory and the "ecflow/5.8.4" module file.
mkdir -p /home/ubuntu/jedi/modulefiles/ecflow

cat << 'EOF' > /home/ubuntu/jedi/modulefiles/ecflow/5.8.4
#%Module1.0

module-whatis "Provides an ecflow-5.8.4 server+ui installation for use with spack."

conflict ecflow

proc ModulesHelp { } {
puts stderr "Provides an ecflow-5.8.4 server+ui installation for use with spack."
}

# Set this value
set ECFLOW_PATH "/home/ubuntu/jedi/ecflow-5.8.4"

prepend-path PATH "${ECFLOW_PATH}/bin"
prepend-path LD_LIBRARY_PATH "${ECFLOW_PATH}/lib"
prepend-path LIBRARY_PATH "${ECFLOW_PATH}/lib"
prepend-path CPATH "${ECFLOW_PATH}/include"
prepend-path CMAKE_PREFIX_PATH "${ECFLOW_PATH}"
prepend-path PYTHONPATH "${ECFLOW_PATH}/lib/python3.10/site-packages"
EOF

```

5. Install lmod. This step must be done as `root`.
4. Install lmod. This step must be done as `root`.
```
# Install lua/lmod manually because apt only has older versions
# that are not compatible with the modern lua modules spack produces
Expand Down Expand Up @@ -343,7 +299,7 @@ module purge
module list
```

6. Install msql community server
5. Install msql community server
```
cd /home/ubuntu/jedi
mkdir -p mysql-8.0.31/src
Expand All @@ -365,7 +321,7 @@ exit
rm *.deb
```

7. Option 1: Testing existing site config in spack-stack (skip steps
6. Option 1: Testing existing site config in spack-stack (skip steps
8-9 afterwards) this install is done directly on the NFS drive. If you are
testing an update to the configuration, do this on the faster EBS volume (use a
directory in /home/ubuntu) in order to ensure a faster build. Once you have
Expand Down Expand Up @@ -398,7 +354,7 @@ spack module lmod refresh
spack stack setup-meta-modules
```

8. Option 2: Test configuring site from scratch
7. Option 2: Test configuring site from scratch
```
mkdir -p /home/ubuntu/jedi && cd /home/ubuntu/jedi
git clone -b develop --recursive https://github.com/jcsda/spack-stack spack-stack
Expand Down Expand Up @@ -450,15 +406,6 @@ cat << 'EOF' >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
prefix: /usr
EOF

# Add external ecflow
cat << 'EOF' >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
ecflow:
buildable: False
externals:
- spec: [email protected] +ui
prefix: /home/ubuntu/jedi/ecflow-5.8.4
EOF

spack compiler find --scope system

export -n SPACK_SYSTEM_CONFIG_PATH
Expand All @@ -479,12 +426,12 @@ spack config add "packages:all:compiler:[[email protected], [email protected]]"
# I_MPI_PMI_LIBRARY: '/opt/slurm/lib/libpmi.so'
```

9. Option 2: To avoid duplicate library versions edit ``envs/unified-dev/site/packages.yaml``
8. Option 2: To avoid duplicate library versions edit ``envs/unified-dev/site/packages.yaml``
and remove entries for meson, ninja, hdf5, cmake and remove the external
`cmake` and `openssl` entries.


10. Concretize and install
9. Concretize and install
```
spack concretize 2>&1 | tee log.concretize.unified-env.001
./util/show_duplicate_packages.py -d log.concretize.unified-env.001
Expand All @@ -493,7 +440,7 @@ spack module lmod refresh
spack stack setup-meta-modules
```

11. Test spack-stack installation using your favorite application.
10. Test spack-stack installation using your favorite application.

```
# Example given for building jedi-bundle
Expand All @@ -515,12 +462,12 @@ make -j10
ctest
```

12. (Optional) Remove test installs of spack-stack environments, if desired.
11. (Optional) Remove test installs of spack-stack environments, if desired.

13. Create the AMI for use in the AWS parallelcluster config. You can follow
12. Create the AMI for use in the AWS parallelcluster config. You can follow
the official instructions for [Modifying an AWS ParallelCluster AMI](https://docs.aws.amazon.com/parallelcluster/latest/ug/building-custom-ami-v3.html#modify-an-aws-parallelcluster-ami-v3)

14. Use the install to build
13. Use the install to build

```
# Load the intel toolchain into your environment.
Expand Down Expand Up @@ -551,7 +498,7 @@ make -j10
ctest
```

15. Once the parallel cluster head node image is fully configured and tested you
14. Once the parallel cluster head node image is fully configured and tested you
can create an AMI snapshot based on the configured instance using the
[instructions](https://docs.aws.amazon.com/parallelcluster/latest/ug/building-custom-ami-v3.html)
published by AWS. Included here is a short summary of those instructions.
Expand Down
2 changes: 0 additions & 2 deletions configs/sites/tier1/aws-pcluster/modules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@ modules:
lmod:
include:
- python
exclude:
- ecflow
5 changes: 0 additions & 5 deletions configs/sites/tier1/aws-pcluster/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,6 @@ packages:
externals:
- spec: [email protected]
prefix: /usr
ecflow:
buildable: False
externals:
- spec: [email protected]+ui+static_boost
prefix: /home/ubuntu/jedi/ecflow-5.8.4
findutils:
externals:
- spec: [email protected]
Expand Down
Loading
Loading