-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update README.md file for noaa-aws 1.8.0 installation.
- Loading branch information
1 parent
64b6010
commit f4b37c7
Showing
1 changed file
with
16 additions
and
162 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
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 | ||
[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 "[email protected]" | ||
git config --global user.name "Your Name" | ||
mkdir ~/.aws | ||
# Create ~/.aws/config | ||
# Create ~/.aws/credentials | ||
chmod 400 ~/.aws/credentials | ||
``` | ||
## Steps to perform to install spack-stack version 1.8.0 | ||
|
||
sudo su - | ||
chmod 755 /contrib | ||
|
||
cd /contrib/spack-stack-rocky8/ | ||
git clone --recursive https://github.com/JCSDA/spack-stack 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 |