Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/jcsda/spack-stack into f…
Browse files Browse the repository at this point in the history
…eature/add_cylc_flow
  • Loading branch information
climbfuji committed Dec 11, 2023
2 parents 1d21fb4 + bc9ecd4 commit cb645b9
Show file tree
Hide file tree
Showing 15 changed files with 425 additions and 56 deletions.
1 change: 1 addition & 0 deletions .github/workflows/ubuntu-ci-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ jobs:
# Next steps: synchronize source and build cache to a central/combined mirror?
echo "Next steps ..."
${SPACK_STACK_DIR}/util/ldd_check.py $SPACK_ENV 2>&1 | tee log.ldd_check
spack clean -a
spack module tcl refresh -y
spack stack setup-meta-modules
Expand Down
15 changes: 5 additions & 10 deletions configs/common/modules_lmod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -129,20 +129,15 @@ modules:
'MADIS_ROOT': '{prefix}'
mapl:
suffixes:
^[email protected]~debug snapshot=none: 'esmf-8.2.0'
^[email protected]+debug snapshot=none: 'esmf-8.2.0-debug'
^[email protected]~debug snapshot=b09: 'esmf-8.3.0b09'
^[email protected]+debug snapshot=b09: 'esmf-8.3.0b09-debug'
^[email protected]~debug snapshot=none: 'esmf-8.3.0'
^[email protected]+debug snapshot=none: 'esmf-8.3.0-debug'
^[email protected]~debug snapshot=none: 'esmf-8.4.0'
^[email protected]+debug snapshot=none: 'esmf-8.4.0-debug'
^[email protected]~debug snapshot=none: 'esmf-8.4.1'
^[email protected]+debug snapshot=none: 'esmf-8.4.1-debug'
# Keeping this as a reminder how to do snapshots
#^[email protected]~debug snapshot=b09: 'esmf-8.3.0b09'
#^[email protected]+debug snapshot=b09: 'esmf-8.3.0b09-debug'
^[email protected]~debug snapshot=none: 'esmf-8.4.2'
^[email protected]+debug snapshot=none: 'esmf-8.4.2-debug'
^[email protected]~debug snapshot=none: 'esmf-8.5.0'
^[email protected]+debug snapshot=none: 'esmf-8.5.0-debug'
^[email protected]~debug snapshot=none: 'esmf-8.6.0'
^[email protected]+debug snapshot=none: 'esmf-8.6.0-debug'
openmpi:
environment:
set:
Expand Down
15 changes: 5 additions & 10 deletions configs/common/modules_tcl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -131,20 +131,15 @@ modules:
'MADIS_ROOT': '{prefix}'
mapl:
suffixes:
^[email protected]~debug snapshot=none: 'esmf-8.2.0'
^[email protected]+debug snapshot=none: 'esmf-8.2.0-debug'
^[email protected]~debug snapshot=b09: 'esmf-8.3.0b09'
^[email protected]+debug snapshot=b09: 'esmf-8.3.0b09-debug'
^[email protected]~debug snapshot=none: 'esmf-8.3.0'
^[email protected]+debug snapshot=none: 'esmf-8.3.0-debug'
^[email protected]~debug snapshot=none: 'esmf-8.4.0'
^[email protected]+debug snapshot=none: 'esmf-8.4.0-debug'
^[email protected]~debug snapshot=none: 'esmf-8.4.1'
^[email protected]+debug snapshot=none: 'esmf-8.4.1-debug'
# Keeping this as a reminder how to do snapshots
#^[email protected]~debug snapshot=b09: 'esmf-8.3.0b09'
#^[email protected]+debug snapshot=b09: 'esmf-8.3.0b09-debug'
^[email protected]~debug snapshot=none: 'esmf-8.4.2'
^[email protected]+debug snapshot=none: 'esmf-8.4.2-debug'
^[email protected]~debug snapshot=none: 'esmf-8.5.0'
^[email protected]+debug snapshot=none: 'esmf-8.5.0-debug'
^[email protected]~debug snapshot=none: 'esmf-8.6.0'
^[email protected]+debug snapshot=none: 'esmf-8.6.0-debug'
openmpi:
environment:
set:
Expand Down
20 changes: 7 additions & 13 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,15 @@
variants: +python
cairo:
variants: +pic
# Newer versions of CDO require the C++-17 standard, which doesn't
# work with all compilers that are currently in use in spack-stack
# When making changes here, also check Hercules/Casper site configs
cdo:
version: ['2.0.5']
version: ['2.2.0']
variants: ~openmp
cmake:
version: ['3.23.1']
variants: +ownlibs
# Attention - when updating also check the various jcsda-emc-bundles env packages
crtm:
version: ['2.4.0']
version: ['2.4.0.1']
variants: +fix
ecbuild:
version: ['3.7.2']
Expand All @@ -49,10 +46,10 @@
version: ['5.11.4']
variants: +ui
eckit:
version: ['1.24.4']
version: ['1.24.5']
variants: linalg=eigen,lapack compression=lz4,bzip2
ecmwf-atlas:
version: ['0.35.0']
version: ['0.35.1']
variants: +fckit +trans +tesselation +fftw
ectrans:
version: ['1.2.0']
Expand Down Expand Up @@ -80,9 +77,7 @@
fiat:
version: ['1.2.0']
fms:
#version: ['2023.01']
#variants: precision=32,64 +quad_precision +gfs_phys +openmp +pic constants=GFS build_type=Release
version: ['2023.02.01']
version: ['2023.04']
variants: precision=32,64 +quad_precision +gfs_phys +openmp +pic constants=GFS build_type=Release +deprecated_io
fontconfig:
variants: +pic
Expand Down Expand Up @@ -178,9 +173,8 @@
netcdf-cxx4:
version: ['4.3.1']
netcdf-fortran:
version: ['4.6.0']
# ninja - when adding information here, also check Cheyenne
# and Discover site configs
version: ['4.6.1']
# ninja - when adding information here, also check Discover site config
nlohmann-json:
version: ['3.10.5']
nlohmann-json-schema-validator:
Expand Down
9 changes: 4 additions & 5 deletions configs/containers/specs/jedi-ci.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
### spack-stack-1.5.1 / skylab-6.1.0 containers for fv3-jedi and mpas-jedi (but not for ufs-jedi)
### spack-stack-1.6.0 / skylab-7.0.0 containers for fv3-jedi and mpas-jedi (but not for ufs-jedi)
specs: [[email protected], [email protected], [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], ecflow@5,
[email protected].4, [email protected].0 +fckit +trans +tesselation +fftw, [email protected], [email protected] +fftw,
[email protected].5, [email protected].1 +fckit +trans +tesselation +fftw, [email protected], [email protected] +fftw,
[email protected], [email protected], fms@release-jcsda, [email protected], [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected], [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected],
[email protected].0, [email protected], [email protected],
[email protected].1, [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected],
[email protected], [email protected], [email protected],
[email protected], py-pip, py-pyyaml@5.4.1, [email protected], [email protected], py-xarray@2022.3.0,
[email protected], py-pip, py-pyyaml@6.0, [email protected], [email protected], py-xarray@2023.7.0,
[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected],
[email protected], [email protected], [email protected], shumlib@macos_clang_linux_intel_port,
[email protected], [email protected]]
Expand All @@ -17,4 +17,3 @@
# 2. Comment out for now until build problems are solved
# https://github.com/jcsda/spack-stack/issues/522
# [email protected]
# 3. Need to update [email protected] to 12.0.1!
3 changes: 0 additions & 3 deletions configs/sites/casper/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ packages:
- cuda/12.2.1

### Modifications of common packages
# Version 2.0.5 doesn't compile on Casper with gcc
cdo:
version:: ['2.2.0']

### All other external packages listed alphabetically
autoconf:
Expand Down
9 changes: 3 additions & 6 deletions configs/sites/hercules/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,9 @@ packages:
- mvapich2/2.3.7

### Modifications of common packages
# Version 2.0.5 doesn't compile on Hercules with gcc
cdo:
version:: ['2.2.0']
# Version 2.0.8 doesn't compile on Hercules
wgrib2:
version:: ['3.1.1']
# DH* TRY IF THIS IS STILL TRUE # Version 2.0.8 doesn't compile on Hercules
# DH* TRY IF THIS IS STILL TRUE wgrib2:
# DH* TRY IF THIS IS STILL TRUE version:: ['3.1.1']

### All other external packages listed alphabetically
autoconf:
Expand Down
13 changes: 12 additions & 1 deletion configs/sites/noaa-aws/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
This README provides step by step instructions for installing the basic packages
(OS packages, external packages) for spack-stack. Following these steps ensures
that the site configuration files in `configs/sites/noaa-*` work out of the box.
that the site configuration files in `configs/sites/noaa-aws` work out of the box.

# Basic system packages (need to be installed each time a cluster is spun up)

Expand Down Expand Up @@ -124,3 +124,14 @@ make install 2>&1 | tee log.install
cd /contrib/spack-stack/modulefiles
mkdir ecflow
# Create the modulefile from the template in doc/modulefile_templates

############## Steps to perform when starting a new cluster ##############
source /contrib/admin/basic_setup.sh # sudo privileges requred to install packages
module unuse /opt/cray/craype/default/modulefiles
module unuse /opt/cray/modulefiles
module use /contrib/spack-stack/modulefiles
module load cmake/3.27.2
module load ecflow/5.8.4
module load mysql/8.0.31
module load git-lfs/2.4.1

143 changes: 143 additions & 0 deletions configs/sites/noaa-azure/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
This README provides step by step instructions for installing the basic packages
(OS packages, external packages) for spack-stack. Following these steps ensures
that the site configuration files in `configs/sites/noaa-azure` work out of the box.

# Basic system packages (need to be installed each time a cluster is spun up)

sudo su
chmod 777 /contrib
yum install -y m4
yum install -y qt5-qtbase-devel
yum install -y qt5-qtsvg-devel
yum install -y xorg-x11-xauth
yum install -y xorg-x11-apps
yum install -y perl-IPC-Cmd
yum install -y gettext-devel
yum install -y ncurses-devel
yum install -y ncurses-static
exit

# Create a script that can be added to the cluster resource config so that these packages get installed automatically

mkdir -p /contrib/admin
cat <<EOF > /contrib/admin/basic_setup.sh
#!/bin/bash

chmod 777 /contrib
yum install -y qt5-qtbase-devel
yum install -y qt5-qtsvg-devel
yum install -y xorg-x11-xauth
yum install -y xorg-x11-apps
yum install -y perl-IPC-Cmd
yum install -y gettext-devel
yum install -y ncurses-devel
yum install -y ncurses-static
yum install -y m4
EOF

chmod a+x /contrib/admin/basic_setup.sh

# Create a mysql config for local R2D2 use (if applicable)

sudo su
cat <<EOF > /contrib/admin/my.cnf
[mysqld]
datadir=/mysql_local/data
socket=/mysql_local/data/mysql.sock
symbolic-links=0
default-authentication-plugin=mysql_native_password

[mysqld_safe]
log-error=/mysql_local/log/mariadb.log
pid-file=/mysql_local/run/mariadb.pid
EOF
chmod 644 /contrib/admin/my.cnf
exit

# Build external packages for spack-stack

mkdir -p /contrib/spack-stack
mkdir /contrib/spack-stack/modulefiles
cd /contrib/spack-stack/

mkdir -p git-lfs-2.4.1/src
cd git-lfs-2.4.1/src
wget http://mirror.centos.org/centos/7/sclo/x86_64/rh/Packages/r/rh-git218-git-lfs-2.4.1-3.el7.x86_64.rpm
rpm2cpio rh-git218-git-lfs-2.4.1-3.el7.x86_64.rpm | cpio -idmv
mv opt/rh/rh-git218/root/usr/* ..
rm -fr opt
cd /contrib/spack-stack/modulefiles
mkdir git-lfs
# Create the modulefile from the template in doc/modulefile_templates

cd /contrib/spack-stack/
mkdir -p mysql-8.0.31/src
cd mysql-8.0.31/src
ldd --version
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.17-x86_64-minimal.tar.xz
tar -xvf mysql-8.0.31-linux-glibc2.17-x86_64-minimal.tar.xz
mv mysql-8.0.31-linux-glibc2.17-x86_64-minimal/* ..
rmdir mysql-8.0.31-linux-glibc2.17-x86_64-minimal
cd /contrib/spack-stack/modulefiles
mkdir mysql
# Create the modulefile from the template in doc/modulefile_templates

cd /contrib/spack-stack/
mkdir -p cmake-3.27.2/src
cd cmake-3.27.2/src
wget https://github.com/Kitware/CMake/releases/download/v3.27.2/cmake-3.27.2-linux-x86_64.tar.gz
tar -xvzf cmake-3.27.2-linux-x86_64.tar.gz
mv cmake-3.27.2-linux-x86_64/* ..
rmdir cmake-3.27.2-linux-x86_64
cd /contrib/spack-stack/modulefiles
mkdir cmake
# Create the modulefile from the template in doc/modulefile_templates

# Set up basic modules for building the external ecflow package
module unuse /opt/cray/craype/default/modulefiles
module unuse /opt/cray/modulefiles

module purge
module load gnu/9.2.0
module use /contrib/spack-stack/modulefiles
module load cmake/3.27.2

mkdir -p /contrib/spack-stack/ecflow-5.8.4/src
cd /contrib/spack-stack/ecflow-5.8.4/src
wget https://confluence.ecmwf.int/download/attachments/8650755/ecFlow-5.8.4-Source.tar.gz?api=v2
wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz
mv ecFlow-5.8.4-Source.tar.gz\?api\=v2 ecFlow-5.8.4-Source.tar.gz
tar -xvzf boost_1_78_0.tar.gz
tar -xvzf ecFlow-5.8.4-Source.tar.gz
export WK=/contrib/spack-stack/ecflow-5.8.4/src/ecFlow-5.8.4-Source
export BOOST_ROOT=/contrib/spack-stack/ecflow-5.8.4/src/boost_1_78_0

# Build static boost (to not interfere with spack-stack boost)
cd $BOOST_ROOT
./bootstrap.sh 2>&1 | tee bootstrap.log
$WK/build_scripts/boost_build.sh 2>&1 | tee boost_build.log

# Build ecFlow
cd $WK
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/contrib/spack-stack/ecflow-5.8.4 2>&1 | tee log.cmake
make -j4 2>&1 | tee log.make
make install 2>&1 | tee log.install

cd /contrib/spack-stack/modulefiles
mkdir ecflow
# Create the modulefile from the template in doc/modulefile_templates

############## Steps to perform when starting a new cluster ##############
source /contrib/admin/basic_setup.sh # sudo privileges requred to install packages
module unuse /opt/cray/craype/default/modulefiles
module unuse /opt/cray/modulefiles
module use /contrib/spack-stack/modulefiles
module load cmake/3.27.2
module load ecflow/5.8.4
module load mysql/8.0.31
module load git-lfs/2.4.1
#


4 changes: 4 additions & 0 deletions configs/sites/noaa-azure/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,10 @@ packages:
externals:
- spec: [email protected]
prefix: /contrib/spack-stack/mysql-8.0.31
ncurses:
externals:
- spec: [email protected]+termlib abi=5
prefix: /usr
openjdk:
externals:
- spec: [email protected]_322-b06
Expand Down
Loading

0 comments on commit cb645b9

Please sign in to comment.