Skip to content

Commit

Permalink
Merge pull request JCSDA#1321 from climbfuji/feature/merge_rel180_int…
Browse files Browse the repository at this point in the history
…o_develop

Merge release/1.8.0 into develop
  • Loading branch information
climbfuji authored Oct 3, 2024
2 parents 95c30b2 + d4af74e commit ed60d76
Show file tree
Hide file tree
Showing 72 changed files with 1,058 additions and 1,254 deletions.
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'
# py-numpy@1.26 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: gcc-runtime@12.3.0
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: gmake@4.3
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 @@
py-f90nml@1.4.3,
py-gitpython@3.1.40,
py-h5py@3.11.0,
py-numpy@1.25.2,
py-numpy@1.23.5,
py-pandas@1.5.3,
py-pip,
py-pyyaml@6.0,
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: git-lfs@2.11.0
modules: [git-lfs/2.11.0]
perl:
buildable: false
externals:
- spec: perl@5.26.1~cpanm+shared+threads
prefix: /usr
mysql:
buildable: false
externals:
Expand All @@ -38,6 +33,7 @@
gdal:
variants: ~curl
flex:
buildable: false
externals:
- spec: flex@2.6.4+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: '%intel@19.1.3.304'
# *DH
eckit:
require:
- any_of: ["@1.23.1"]
when: "%intel@19.1.3.304"
eccodes:
require:
- any_of: ["@2.27.0"]
- any_of: ["@2.25.0"]
when: "%intel@19.1.3.304"
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: "%intel@19.1.3.304"
cdo:
require:
- any_of: ["@2.3.0"]
when: "%intel@2022.0.2.262"
message: "2.3.0 is the last version to use C++17"
- any_of: ["@2.0.5"]
when: "%intel@19.1.3.304"
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:: [oneapi@2024.2.1,gcc@11.2.0]
providers:
mpi:: [intel-oneapi-mpi@2021.13.0]
mpi:: [intel-oneapi-mpi@2021.13]
mpi:
buildable: False
intel-oneapi-mpi:
externals:
- spec: intel-oneapi-mpi@2021.13%2024.2.1
- spec: intel-oneapi-mpi@2021.13%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: ecflow@5.8.4 +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:[intel@2021.10.0, gcc@11.4.0]"
# 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: diffutils@3.8
prefix: /usr
ecflow:
buildable: False
externals:
- spec: ecflow@5.8.4+ui+static_boost
prefix: /home/ubuntu/jedi/ecflow-5.8.4
findutils:
externals:
- spec: findutils@4.8.0
Expand Down
Loading

0 comments on commit ed60d76

Please sign in to comment.