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 changes from tier1 machines for 1.8.0 release #1310

Merged
merged 28 commits into from
Oct 3, 2024
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
4f1534a
start branch
RatkoVasic-NOAA Sep 25, 2024
e72089f
Update hera mirrors.yaml
RatkoVasic-NOAA Sep 25, 2024
fdb48ed
Update jet mirrors.yaml
RatkoVasic-NOAA Sep 25, 2024
81bd9d5
Remove gettext from jet packages.yaml
RatkoVasic-NOAA Sep 25, 2024
d51521d
Set prefix for intel-oneapi-mpi Jet packages_intel.yaml
RatkoVasic-NOAA Sep 25, 2024
18f00c1
Add gcc to Gaea-C5 compilers.yaml
RatkoVasic-NOAA Sep 25, 2024
87e69f1
Add gcc to gaea-c6 compilers.yaml
RatkoVasic-NOAA Sep 25, 2024
ca5ac1d
Update noaa-cloud config files
RatkoVasic-NOAA Sep 26, 2024
64b6010
Remove gettext from packages.yaml in noaa-aws
RatkoVasic-NOAA Sep 27, 2024
f4b37c7
Update README.md file for noaa-aws 1.8.0 installation.
RatkoVasic-NOAA Sep 27, 2024
e913c15
Checkout correct branch while cloning.
RatkoVasic-NOAA Sep 27, 2024
75b1cfe
chmod 755 to 777
RatkoVasic-NOAA Sep 27, 2024
bd69eae
Merge branch 'release/1.8.0' into 1.8.0-fixes
RatkoVasic-NOAA Sep 27, 2024
405dcbf
Use old mirror site
RatkoVasic-NOAA Sep 27, 2024
39aa23d
Update documentation of how to install spack-stack on Tier 1 machines.
RatkoVasic-NOAA Sep 30, 2024
ff28e3c
Update doc/source/PreConfiguredSites.rst
RatkoVasic-NOAA Oct 1, 2024
23695e5
Update doc/source/PreConfiguredSites.rst
RatkoVasic-NOAA Oct 1, 2024
32d30aa
Update doc/source/PreConfiguredSites.rst
RatkoVasic-NOAA Oct 1, 2024
ac1f9df
Update doc/source/PreConfiguredSites.rst
RatkoVasic-NOAA Oct 1, 2024
5ae1a92
Update doc/source/PreConfiguredSites.rst
RatkoVasic-NOAA Oct 1, 2024
867f8e7
Update doc/source/PreConfiguredSites.rst
RatkoVasic-NOAA Oct 1, 2024
530d106
Update Jet mirrors path
RatkoVasic-NOAA Oct 1, 2024
0ca6ac3
Update mirrors.yaml
RatkoVasic-NOAA Oct 1, 2024
8f39062
Apply changes for NOAA-cloud machines for spack-stack-1.8.0
RatkoVasic-NOAA Oct 1, 2024
41e55e9
Apply suggestions from code review
climbfuji Oct 2, 2024
b0ef365
Merge branch 'release/1.8.0' into 1.8.0-fixes
climbfuji Oct 2, 2024
ff269c0
Update config files for NOAA-GCP
Oct 2, 2024
642ee98
Update config files for NOAA cloud
RatkoVasic-NOAA Oct 2, 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
14 changes: 13 additions & 1 deletion configs/sites/tier1/gaea-c5/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,16 @@ compilers:
# which confuses some packages.
CONFIG_SITE: ''
extra_rpaths: []
# Todo: Define gcc compiler 10.3.0 for Intel backend (ecflow)
- compiler:
spec: gcc@12.2.0
paths:
cc: /opt/cray/pe/gcc/12.2.0/bin/gcc
cxx: /opt/cray/pe/gcc/12.2.0/bin/g++
f77: /opt/cray/pe/gcc/12.2.0/bin/gfortran
fc: /opt/cray/pe/gcc/12.2.0/bin/gfortran
flags: {}
operating_system: sles15
modules:
- gcc/12.2.0
environment: {}
extra_rpaths: []
14 changes: 13 additions & 1 deletion configs/sites/tier1/gaea-c6/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,16 @@ compilers:
# which confuses some packages.
CONFIG_SITE: ''
extra_rpaths: []
# Todo: Define gcc compiler 12.x.y for Intel backend (ecflow)
- compiler:
spec: gcc@12.3.0
paths:
cc: /usr/bin/gcc-12
cxx: /usr/bin/g++-12
f77: /usr/bin/gfortran-12
fc: /usr/bin/gfortran-12
flags: {}
operating_system: sles15
modules:
- gcc-native-mixed/12.3
environment: {}
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:///contrib/spack-stack/mirror
url: file:///scratch1/NCEPDEV/nems/role.epic/spack-stack/source-cache
climbfuji marked this conversation as resolved.
Show resolved Hide resolved
access_pair:
- null
- null
access_token: null
profile: null
endpoint_url: null
push:
url: file:///contrib/spack-stack/mirror
url: file:///scratch1/NCEPDEV/nems/role.epic/spack-stack/source-cache
RatkoVasic-NOAA marked this conversation as resolved.
Show resolved Hide resolved
access_pair:
- null
- null
Expand Down
4 changes: 2 additions & 2 deletions configs/sites/tier1/jet/mirrors.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
mirrors:
local-source:
fetch:
url: file:///mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/source-cache
url: file:///contrib/spack-stack/mirror
access_pair:
- null
- null
access_token: null
profile: null
endpoint_url: null
push:
url: file:///mnt/lfs4/HFIP/hfv3gfs/role.epic/spack-stack/source-cache
url: file:///contrib/spack-stack/mirror
access_pair:
- null
- null
Expand Down
4 changes: 0 additions & 4 deletions configs/sites/tier1/jet/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,6 @@ packages:
externals:
- spec: gawk@4.0.2
prefix: /usr
gettext:
externals:
- spec: gettext@0.19.8.1
prefix: /usr
ghostscript:
externals:
- spec: ghostscript@9.25
Expand Down
3 changes: 1 addition & 2 deletions configs/sites/tier1/jet/packages_intel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@ packages:
intel-oneapi-mpi:
externals:
- spec: intel-oneapi-mpi@2021.5.1%intel@2021.5.0
modules:
- impi/2022.1.2
prefix: /apps/oneapi
intel-oneapi-mkl:
externals:
- spec: intel-oneapi-mkl@2022.0.2%intel@2021.5.0
Expand Down
172 changes: 13 additions & 159 deletions configs/sites/tier1/noaa-aws/README.md
Original file line number Diff line number Diff line change
@@ -1,164 +1,18 @@
# Provisiong ParallelWorks AWS clusters

## Steps to perform when provisioning a cluster for the very first time

This section 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-aws` work out of the box.

### Basic system packages
```
sudo su
chmod 777 /contrib

# The following three commands were necessary to fix failures accessing these repos
yum-config-manager --disable intel-clck-2019-repo
yum-config-manager --disable intel-hpc-platform
yum-config-manager --disable intelpython

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 m4
exit
```
Create a script that can be added to the cluster resource config so that these packages get installed automatically when provisioning new clusters later:
```
mkdir -p /contrib/admin
cat <<EOF > /contrib/admin/basic_setup.sh
#!/bin/bash
## Steps to perform to install spack-stack version 1.8.0
Copy link
Collaborator

Choose a reason for hiding this comment

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

what happened to all the instructions on the left - are they now baked into the default image? if not, they need to stay because somebody starting from a new image will need them

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is not needed anymore. All was because ecflow and it's dependences. On NOAA-Cloud spack-stack can now be installed from out-of-box.

Copy link
Collaborator

Choose a reason for hiding this comment

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

That's awesome, thanks for the clarification!

Copy link
Collaborator

Choose a reason for hiding this comment

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

As discussed, please bring the documentation back that is needed to install the qt@5 dependency for ecflow

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'll add part how to install qt5


sudo su -
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 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
Copy link
Collaborator

Choose a reason for hiding this comment

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

We may still need to have /contrib/admin/my.cnf saved. It may not need to be done every time a new space for spack stack is configured, i.e., a new /contrib space is prepared

[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

This should be done automatically, but doesn't hurt to run again just in case:
```
sudo /contrib/admin/basic_setup.sh
```
Configure `git` and `aws` command line utilities
```
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

git lfs install
git config --global credential.helper cache # or store
git config --global user.email "your.name@domain.com"
git config --global user.name "Your Name"

mkdir ~/.aws
# Create ~/.aws/config
# Create ~/.aws/credentials
chmod 400 ~/.aws/credentials
```
cd /contrib/spack-stack-rocky8/
git clone --recursive https://github.com/JCSDA/spack-stack -b release/1.8.0 spack-stack-1.8.0
cd spack-stack-1.8.0
. setup.sh
spack stack create env --name ue-intel-2021.10.0 --template unified-dev --site noaa-aws --compiler intel
cd envs/ue-intel-2021.10.0
spack env activate .
spack concretize 2>&1 | tee log.concretize
spack install --verbose 2>&1 | tee log.install
spack module lmod refresh -y
spack stack setup-meta-modules
22 changes: 10 additions & 12 deletions configs/sites/tier1/noaa-aws/compilers.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
compilers:
- compiler:
spec: intel@2021.3.0
spec: intel@2021.10.0
paths:
cc: /apps/oneapi/compiler/2021.3.0/linux/bin/intel64/icc
cxx: /apps/oneapi/compiler/2021.3.0/linux/bin/intel64/icpc
f77: /apps/oneapi/compiler/2021.3.0/linux/bin/intel64/ifort
fc: /apps/oneapi/compiler/2021.3.0/linux/bin/intel64/ifort
flags: {}
operating_system: centos7
cc: /apps/oneapi/compiler/2023.2.0/linux/bin/intel64/icc
cxx: /apps/oneapi/compiler/2023.2.0/linux/bin/intel64/icpc
f77: /apps/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort
fc: /apps/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort
operating_system: rocky8
target: x86_64
modules:
- intel/2021.3.0
- intel/2023.2.0
environment:
prepend_path:
PATH: '/apps/gnu/gcc-9.2.0/bin'
LD_LIBRARY_PATH: '/apps/oneapi/compiler/2021.3.0/linux/compiler/lib/intel64_lin:/apps/gnu/gcc-9.2.0/lib64'
LD_LIBRARY_PATH: '/apps/oneapi/compiler/2023.2.0/linux/compiler/lib/intel64_lin:/apps/gnu/gcc-13.2.0/lib64'
flags: {}
extra_rpaths: []
- compiler:
spec: gcc@9.2.0
Expand All @@ -24,8 +23,7 @@ compilers:
f77: /apps/gnu/gcc-9.2.0/bin/gfortran
fc: /apps/gnu/gcc-9.2.0/bin/gfortran
flags: {}
operating_system: centos7
target: x86_64
operating_system: rocky8
modules:
- gnu/9.2.0
environment: {}
Expand Down
Loading
Loading