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 1 commit
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
64 changes: 63 additions & 1 deletion configs/sites/tier1/noaa-aws/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,27 @@
# Provisiong ParallelWorks AWS clusters

## Steps to perform to install spack-stack version 1.8.0
## Steps to perform before installing spack-stack version 1.8.0

sudo su -
chmod 777 /contrib
yum install -y qt5-qtbase-devel
yum install -y qt5-qtsvg-devel


## Steps to install spack-stack version 1.8.0

sudo su -
chmod 777 /contrib

module purge
module unuse /opt/cray/craype/default/modulefiles
module unuse /opt/cray/modulefiles
### For noaa-aws, run the line below as well:
module unuse /opt/intel/impi/2019.5.281/intel64/modulefiles
module load gnu
module load intel/2023.2.0
module load impi/2023.2.0
module unload gnu

cd /contrib/spack-stack-rocky8/
git clone --recursive https://github.com/JCSDA/spack-stack -b release/1.8.0 spack-stack-1.8.0
Expand All @@ -16,3 +34,47 @@ 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

## Steps to install GSI addon

sudo su -
chmod 777 /contrib

cd /contrib/spack-stack-rocky8/spack-stack-1.8.0
. setup.sh
spack stack create env --name gsi-intel-2021.10.0 --template gsi-addon-dev --site noaa-aws --upstream /contrib/spack-stack-rocky8/spack-stack-1.8.0/envs/ue-intel-2021.10.0/install --compiler intel
cd envs/gsi-intel-2021.10.0
spack concretize 2>&1 | tee log.concretize
spack install --verbose 2>&1 | tee log.install
spack module lmod refresh --upstream-modules
spack stack setup-meta-modules

## Steps to install external applications (MySQL, ecFlow)

MySQL:
mkdir -p /contrib/spack-stack-rocky8/mysql-8.0.31/src
cd /contrib/spack-stack-rocky8/mysql-8.0.31/src
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

ecFlow:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why ecflow? I thought we had discussed that we don't need this anymore. But ok, let's leave it in the readme, it won't get used as long as the site config has it removed from the external packages and the qt5 external package added instead (if it isn't there already).

mkdir -p /contrib/spack-stack-rocky8/ecflow-5.8.4/src
cd /contrib/spack-stack-rocky8/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-rocky8/ecflow-5.8.4/src/ecFlow-5.8.4-Source
export BOOST_ROOT=/contrib/spack-stack-rocky8/ecflow-5.8.4/src/boost_1_78_0
cd $BOOST_ROOT
./bootstrap.sh 2>&1 | tee bootstrap.log
$WK/build_scripts/boost_build.sh 2>&1 | tee boost_build.log
cd $WK
mkdir build
cd build
cmake .. -DPython3_EXECUTABLE=`which python3` -DCMAKE_INSTALL_PREFIX=/contrib/spack-stack-rocky8/ecflow-5.8.4 2>&1 | tee log.cmake
make -j4 2>&1 | tee log.make
make install 2>&1 | tee log.install
184 changes: 47 additions & 137 deletions configs/sites/tier1/noaa-azure/README.md
Original file line number Diff line number Diff line change
@@ -1,168 +1,78 @@
# Provisiong ParallelWorks Azure clusters

## Steps to perform when provisioning a cluster for the very first time
## Steps to perform before installing spack-stack version 1.8.0

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
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 ncurses-devel
yum install -y ncurses-static
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

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
```
## Steps to install spack-stack version 1.8.0

### 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
sudo su -
chmod 777 /contrib

[mysqld_safe]
log-error=/mysql_local/log/mariadb.log
pid-file=/mysql_local/run/mariadb.pid
EOF
chmod 644 /contrib/admin/my.cnf
exit
```
module purge
module unuse /opt/cray/craype/default/modulefiles
module unuse /opt/cray/modulefiles
module load gnu
module load intel/2023.2.0
module load impi/2023.2.0
module unload gnu

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-azure --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

## Steps to install GSI addon

sudo su -
chmod 777 /contrib

### Build external packages for spack-stack
```
mkdir -p /contrib/spack-stack
mkdir /contrib/spack-stack/modulefiles
cd /contrib/spack-stack/
cd /contrib/spack-stack-rocky8/spack-stack-1.8.0
. setup.sh
spack stack create env --name gsi-intel-2021.10.0 --template gsi-addon-dev --site noaa-azure --upstream /contrib/spack-stack-rocky8/spack-stack-1.8.0/envs/ue-intel-2021.10.0/install --compiler intel
cd envs/gsi-intel-2021.10.0
spack concretize 2>&1 | tee log.concretize
spack install --verbose 2>&1 | tee log.install
spack module lmod refresh --upstream-modules
spack stack setup-meta-modules

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
## Steps to install external applications (MySQL, ecFlow)

cd /contrib/spack-stack/
mkdir -p mysql-8.0.31/src
cd mysql-8.0.31/src
ldd --version
MySQL:
mkdir -p /contrib/spack-stack-rocky8/mysql-8.0.31/src
cd /contrib/spack-stack-rocky8/mysql-8.0.31/src
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
ecFlow:
mkdir -p /contrib/spack-stack-rocky8/ecflow-5.8.4/src
cd /contrib/spack-stack-rocky8/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)
export WK=/contrib/spack-stack-rocky8/ecflow-5.8.4/src/ecFlow-5.8.4-Source
export BOOST_ROOT=/contrib/spack-stack-rocky8/ecflow-5.8.4/src/boost_1_78_0
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
cmake .. -DPython3_EXECUTABLE=`which python3` -DCMAKE_INSTALL_PREFIX=/contrib/spack-stack-rocky8/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
```
Loading
Loading