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

Upgrade to spack-stack libraries on non-production machines #624

Merged
merged 45 commits into from
Nov 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
1603cf0
Testing environment for spack-stack on Hera #589
DavidHuber-NOAA Jul 13, 2023
27c099f
Updated modulefiles to point to spack-stack #474 #571 #589
DavidHuber-NOAA Jul 31, 2023
b708ffc
Updated noaa-cloud spack-stack location #589.
DavidHuber-NOAA Jul 31, 2023
e01fc67
Update Orion stack location for the new role-epic account (#15)
natalie-perlin Aug 1, 2023
ade6962
Revert bufr_4 to bufr_d for bufr/11.7.0.
DavidHuber-NOAA Aug 18, 2023
76885f5
Prevent undefined error for non-cloud platforms.
DavidHuber-NOAA Aug 18, 2023
0fd3489
modifications for acorn (wcoss2 test system) build using intel19 spac…
RussTreadon-NOAA Aug 21, 2023
aff4365
add version numbers to module loads in gsi_common_wcoss2.lua (#447)
RussTreadon-NOAA Aug 21, 2023
a9a9108
revert gsi_wcoss2.lua to develop (#447)
RussTreadon-NOAA Sep 11, 2023
76fed6a
Removed unused gsi_common_wcoss2 modulefile.
DavidHuber-NOAA Sep 15, 2023
a5f260b
Merge remote-tracking branch 'emc/develop' into dev_spack-stack
DavidHuber-NOAA Sep 15, 2023
e56757c
Cleanup sub_wcoss2.
DavidHuber-NOAA Sep 15, 2023
82bb3cd
Cleaned up modulefiles. #589
DavidHuber-NOAA Sep 18, 2023
3e7ec55
Move noaa-cloud to a different branch. (noaa-cloud)
DavidHuber-NOAA Sep 19, 2023
9966313
Update modulefile for S4 to use spack-stack.
DavidHuber-NOAA Sep 19, 2023
f734e50
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Sep 20, 2023
b5e2f2b
Update CI libraries for spack-stack #589
DavidHuber-NOAA Sep 21, 2023
9596bd6
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Sep 25, 2023
fb22ea6
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Sep 28, 2023
3e27783
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Oct 10, 2023
dcbb77f
Free up space on github-cli spinup.
DavidHuber-NOAA Oct 17, 2023
373b736
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Nov 2, 2023
382914b
Update Orion modulefiles to spack-stack/1.5.1.
DavidHuber-NOAA Nov 8, 2023
dceb458
Merge branch 'spack-stack' of github.com:DavidHuber-NOAA/GSI into spa…
DavidHuber-NOAA Nov 8, 2023
6a150e9
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Nov 8, 2023
0ca9d32
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Nov 8, 2023
21a9a88
Add initial Hercules support. #574
Nov 9, 2023
f623fb9
Merge remote-tracking branch 'origin/spack-stack' into spack-stack
Nov 9, 2023
5e4a738
Clean up hercules debug #574
DavidHuber-NOAA Nov 9, 2023
46c7beb
Upgraded S4 to spack-stack/1.5.1. #589
DavidHuber-NOAA Nov 9, 2023
68e699b
Tidy up hercules #574
DavidHuber-NOAA Nov 9, 2023
6c6267d
Merge branch 'spack-stack' of github.com:DavidHuber-NOAA/GSI into spa…
DavidHuber-NOAA Nov 9, 2023
4b5024f
Updated WCOSS2 modulefiles to the UFS WM modules. #589
DavidHuber-NOAA Nov 13, 2023
5bd3cd6
Merge branch 'spack-stack' of github.com:DavidHuber-NOAA/GSI into spa…
DavidHuber-NOAA Nov 13, 2023
7f4255f
Revert WCOSS2 modulefiles.
DavidHuber-NOAA Nov 14, 2023
46d2cd1
Merge branch 'spack-stack' of github.com:DavidHuber-NOAA/GSI into spa…
DavidHuber-NOAA Nov 14, 2023
28ebd5f
Update Hera GNU modulefile to spack-stack/1.5.1. #589
DavidHuber-NOAA Nov 14, 2023
e2e8f6e
Update Jet spack-stack to 1.5.1 #589
DavidHuber-NOAA Nov 14, 2023
4deb40f
Update Hera/intel spack-stack to 1.5.1. #589
DavidHuber-NOAA Nov 14, 2023
b4a5979
Reverted Orion to use higher time/cpu requests.
DavidHuber-NOAA Nov 14, 2023
02914fb
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Nov 21, 2023
a36040a
Update CI steps (avoid using icx/ifx).
DavidHuber-NOAA Nov 21, 2023
344f457
Revert cache versions.
DavidHuber-NOAA Nov 21, 2023
cbb8067
Re-upgrade ubuntu in CI to latest.
DavidHuber-NOAA Nov 21, 2023
90c80fc
Merge remote-tracking branch 'emc/develop' into spack-stack
DavidHuber-NOAA Nov 30, 2023
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
31 changes: 16 additions & 15 deletions .github/workflows/gcc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,21 @@ env:

# The jobs are split into:
# 1. a dependency build step (setup), and
# 2. a GSI build step (build)
# 2. a GSI build step (gsi)
# The setup is run once and the environment is cached,
# so each build of GSI can reuse the cached dependencies to save time (and compute).
# so each subsequent build of GSI can reuse the cached dependencies to save time (and compute).

jobs:
setup:
runs-on: ubuntu-latest

steps:
# Checkout the GSI to get the ci/spack.yaml file
- name: checkout-gsi
- name: checkout
if: steps.cache-env.outputs.cache-hit != 'true'
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: GSI
path: gsi

# Cache spack, compiler and dependencies
- name: cache-env
Expand All @@ -39,33 +39,34 @@ jobs:
path: |
spack
~/.spack
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('GSI/ci/spack.yaml') }}
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('gsi/ci/spack.yaml') }}

# Install dependencies using Spack
- name: install-dependencies-with-spack
if: steps.cache-env.outputs.cache-hit != 'true'
run: |
sudo apt-get install cmake
git clone -c feature.manyFiles=true https://github.com/NOAA-EMC/spack.git
git clone -c feature.manyFiles=true https://github.com/JCSDA/spack.git
source spack/share/spack/setup-env.sh
spack env create gsi-env GSI/ci/spack.yaml
spack env create gsi-env gsi/ci/spack.yaml
spack env activate gsi-env
spack compiler find
sudo apt install cmake
spack external find
spack add mpich@3.4.2
spack concretize
spack install -v --fail-fast --dirty
spack clean -a

build:
gsi:
needs: setup
runs-on: ubuntu-latest

steps:
- name: checkout-gsi
uses: actions/checkout@v3
- name: checkout
uses: actions/checkout@v4
with:
path: GSI
path: gsi

- name: cache-env
id: cache-env
Expand All @@ -74,13 +75,13 @@ jobs:
path: |
spack
~/.spack
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('GSI/ci/spack.yaml') }}
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('gsi/ci/spack.yaml') }}

- name: build-gsi
- name: build
run: |
source spack/share/spack/setup-env.sh
spack env activate gsi-env
cd GSI
cd gsi
mkdir -p build && cd build
cmake -DCMAKE_INSTALL_PREFIX=../install -DGSI_MODE=Regional -DENKF_MODE=GFS -DBUILD_REG_TESTING=OFF ..
make -j2 VERBOSE=1
Expand Down
47 changes: 28 additions & 19 deletions .github/workflows/intel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,30 @@ env:

# The jobs are split into:
# 1. a dependency build step (setup), and
# 2. a GSI build step (build)
# 2. a GSI build step (gsi)
# The setup is run once and the environment is cached,
# so each build of GSI can reuse the cached dependencies to save time (and compute).
# so each subsequent build of GSI can reuse the cached dependencies to save time (and compute).

jobs:
setup:
runs-on: ubuntu-latest

steps:
# Free up disk space
- name: free-disk-spack
run: |
df -h
sudo swapoff -a
sudo rm -f /swapfile
sudo apt clean
docker rmi $(docker image ls -aq)

# Checkout the GSI to get the ci/spack.yaml file
- name: checkout-gsi
- name: checkout
if: steps.cache-env.outputs.cache-hit != 'true'
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: GSI
path: gsi

# Cache spack, compiler and dependencies
- name: cache-env
Expand All @@ -43,16 +52,15 @@ jobs:
spack
~/.spack
/opt/intel
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('GSI/ci/spack.yaml') }}
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('gsi/ci/spack.yaml') }}

- name: install-intel-compilers
if: steps.cache-env.outputs.cache-hit != 'true'
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-mpi-devel intel-oneapi-openmp intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
sudo apt-get install intel-oneapi-dev-utilities intel-oneapi-mpi-devel intel-oneapi-openmp intel-oneapi-compiler-fortran-2023.2.1 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.2.1
sudo apt-get clean
echo "source /opt/intel/oneapi/setvars.sh" >> ~/.bash_profile

Expand All @@ -62,31 +70,32 @@ jobs:
run: |
sudo mv /usr/local/ /usr_local_mv
sudo apt-get install cmake
git clone -c feature.manyFiles=true https://github.com/NOAA-EMC/spack.git
git clone -c feature.manyFiles=true https://github.com/JCSDA/spack.git
source spack/share/spack/setup-env.sh
spack env create gsi-env GSI/ci/spack.yaml
spack env create gsi-env gsi/ci/spack.yaml
spack env activate gsi-env
spack compiler find
sudo apt install cmake
spack external find
spack add intel-oneapi-mpi
spack concretize
spack install -v --fail-fast --dirty
spack clean -a

build:
gsi:
needs: setup
runs-on: ubuntu-latest

steps:
- name: checkout-gsi
uses: actions/checkout@v3
with:
path: GSI

- name: install-intel
run: |
echo "source /opt/intel/oneapi/setvars.sh" >> ~/.bash_profile

- name: checkout
uses: actions/checkout@v4
with:
path: gsi

- name: cache-env
id: cache-env
uses: actions/cache@v3
Expand All @@ -95,13 +104,13 @@ jobs:
spack
~/.spack
/opt/intel
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('GSI/ci/spack.yaml') }}
key: spack-${{ runner.os }}-${{ env.cache_key }}-${{ hashFiles('gsi/ci/spack.yaml') }}

- name: build-gsi
- name: build
run: |
source spack/share/spack/setup-env.sh
spack env activate gsi-env
cd GSI
cd gsi
mkdir -p build && cd build
cmake -DCMAKE_INSTALL_PREFIX=../install -DGSI_MODE=Regional -DENKF_MODE=GFS -DBUILD_REG_TESTING=OFF ..
make -j2 VERBOSE=1
Expand Down
4 changes: 2 additions & 2 deletions ci/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ spack:
- intel
- gcc@10:10
specs:
- netcdf-c@4.7.4
- netcdf-fortran@4.5.3
- netcdf-c@4.9.2
- netcdf-fortran@4.6.0
- bufr@11.7.0
- bacio@2.4.1
- w3emc@2.9.2
Expand Down
36 changes: 19 additions & 17 deletions modulefiles/gsi_cheyenne.gnu.lua
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
help([[
]])

load("cmake/3.22.0")
load("python/3.7.9")
load("ncarenv/1.3")
load("gnu/11.2.0")
load("mpt/2.25")
load("ncarcompilers/0.5.0")
unload("intel")
unload("netcdf")

prepend_path("MODULEPATH", "/glade/work/epicufsrt/contrib/hpc-stack/gnu11.2.0/modulefiles/stack")
unload("ncarenv/1.3")
unload("intel/19.1.1")
unload("ncarcompilers/0.5.0")
unload("mpt/2.25")
unload("netcdf/4.8.1")

load("hpc/1.2.0")
load("hpc-gnu/11.2.0")
load("hpc-mpt/2.25")
prepend_path("MODULEPATH", "/glade/work/epicufsrt/contrib/spack-stack/cheyenne/spack-stack-1.4.1/envs/unified-env/install/modulefiles/Core")
prepend_path("MODULEPATH", "/glade/work/jedipara/cheyenne/spack-stack/modulefiles/misc")

load("gsi_common")
local stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
local stack_gnu_ver=os.getenv("stack_gnu_ver") or "10.1.0"
local stack_openmpi_ver=os.getenv("stack_openmpi_ver") or "4.1.1"
local cmake_ver=os.getenv("cmake_ver") or "3.22.0"

load(pathJoin("stack-gcc", stack_gnu_ver))
load(pathJoin("stack-openmpi", stack_openmpi_ver))
load(pathJoin("stack-python", stack_python_ver))
load(pathJoin("cmake", cmake_ver))
load(pathJoin("prod_util", os.getenv("prod_util_ver") or "1.2.2"))
load(pathJoin("openblas", os.getenv("openblas_ver") or "0.3.23"))

pushenv("GSI_BINARY_SOURCE_DIR", "/glade/work/epicufsrt/contrib/GSI_fix/fix")
load("gsi_common")

pushenv("CC", "mpicc")
pushenv("FC", "mpif90")
pushenv("CXX", "mpicxx")
pushenv("CFLAGS", "-xHOST")
pushenv("FFLAGS", "-xHOST")
pushenv("GSI_BINARY_SOURCE_DIR", "/glade/work/epicufsrt/contrib/GSI_data/fix/20230601")

whatis("Description: GSI environment on Cheyenne with GNU Compilers")
32 changes: 19 additions & 13 deletions modulefiles/gsi_cheyenne.intel.lua
Original file line number Diff line number Diff line change
@@ -1,26 +1,32 @@
help([[
]])

load("cmake/3.22.0")
load("python/3.7.9")
load("ncarenv/1.3")
load("intel/2022.1")
load("mpt/2.25")
load("ncarcompilers/0.5.0")
unload("ncarenv/1.3")
unload("intel/19.1.1")
unload("ncarcompilers/0.5.0")
unload("mpt/2.25")
unload("netcdf/4.8.1")

prepend_path("MODULEPATH", "/glade/work/epicufsrt/contrib/hpc-stack/intel2022.1/modulefiles/stack")
prepend_path("MODULEPATH", "/glade/work/epicufsrt/contrib/spack-stack/cheyenne/spack-stack-1.4.1/envs/unified-env/install/modulefiles/Core")
prepend_path("MODULEPATH", "/glade/work/jedipara/cheyenne/spack-stack/modulefiles/misc")

load("hpc/1.2.0")
load("hpc-intel/2022.1")
load("hpc-mpt/2.25")
load("mkl/2022.1")
local stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
local stack_intel_ver=os.getenv("stack_intel_ver") or "19.1.1.217"
local stack_mpi_ver=os.getenv("stack_mpi_ver") or "2019.7.217"
local cmake_ver=os.getenv("cmake_ver") or "3.22.0"

load("gsi_common")
load(pathJoin("stack-intel", stack_intel_ver))
load(pathJoin("stack-intel-mpi", stack_mpi_ver))
load(pathJoin("stack-python", stack_python_ver))
load(pathJoin("cmake", cmake_ver))

load(pathJoin("prod_util", os.getenv("prod_util_ver") or "1.2.2"))
load("gsi_common")
load(pathJoin("prod-util", os.getenv("prod_util_ver") or "1.2.2"))
pushenv("GSI_BINARY_SOURCE_DIR", "/glade/work/epicufsrt/contrib/GSI_data/fix/20230911")

pushenv("CFLAGS", "-xHOST")
pushenv("FFLAGS", "-xHOST")

pushenv("GSI_BINARY_SOURCE_DIR", "/glade/work/epicufsrt/contrib/GSI_data/fix/20230601")

whatis("Description: GSI environment on Cheyenne with Intel Compilers")
16 changes: 9 additions & 7 deletions modulefiles/gsi_common.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,24 @@ help([[
Load common modules to build GSI on all machines
]])

local netcdf_ver=os.getenv("netcdf_ver") or "4.7.4"
local netcdf_c_ver=os.getenv("netcdf_c_ver") or "4.9.2"
local netcdf_fortran_ver=os.getenv("netcdf_fortran_ver") or "4.6.0"

local bufr_ver=os.getenv("bufr_ver") or "11.7.0"
local bacio_ver=os.getenv("bacio_ver") or "2.4.1"
local w3emc_ver=os.getenv("w3emc_ver") or "2.9.2"
local w3emc_ver=os.getenv("w3emc_ver") or "2.10.0"
local sp_ver=os.getenv("sp_ver") or "2.3.3"
local ip_ver=os.getenv("ip_ver") or "3.3.3"
local ip_ver=os.getenv("ip_ver") or "4.3.0"
local sigio_ver=os.getenv("sigio_ver") or "2.3.2"
local sfcio_ver=os.getenv("sfcio_ver") or "1.4.1"
local nemsio_ver=os.getenv("nemsio_ver") or "2.5.4"
local wrf_io_ver=os.getenv("wrf_io_ver") or "1.2.0"
local ncio_ver=os.getenv("ncio_ver") or "1.1.2"
local crtm_ver=os.getenv("crtm_ver") or "2.4.0"
local ncdiag_ver=os.getenv("ncdiag_ver") or "1.1.1"
local ncdiag_ver=os.getenv("ncdiag_ver") or "1.1.2"

load(pathJoin("netcdf", netcdf_ver))
load(pathJoin("netcdf-c", netcdf_c_ver))
load(pathJoin("netcdf-fortran", netcdf_fortran_ver))

load(pathJoin("bufr", bufr_ver))
load(pathJoin("bacio", bacio_ver))
Expand All @@ -27,7 +29,7 @@ load(pathJoin("ip", ip_ver))
load(pathJoin("sigio", sigio_ver))
load(pathJoin("sfcio", sfcio_ver))
load(pathJoin("nemsio", nemsio_ver))
load(pathJoin("wrf_io", wrf_io_ver))
load(pathJoin("wrf-io", wrf_io_ver))
load(pathJoin("ncio", ncio_ver))
load(pathJoin("crtm", crtm_ver))
load(pathJoin("ncdiag",ncdiag_ver))
load(pathJoin("gsi-ncdiag",ncdiag_ver))
24 changes: 16 additions & 8 deletions modulefiles/gsi_gaea.lua
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
help([[
]])

load("cmake/3.20.1")
unload("intel")
unload("cray-mpich")
unload("cray-python")
unload("darshan")

prepend_path("MODULEPATH","/lustre/f2/dev/role.epic/contrib/hpc-stack/intel-classic-2022.0.2/modulefiles/stack")
load(pathJoin("hpc", os.getenv("hpc_ver") or "1.2.0"))
prepend_path("MODULEPATH", "/lustre/f2/dev/wpo/role.epic/contrib/spack-stack/spack-stack-1.4.1-c4/envs/unified-env/install/modulefiles/Core")
prepend_path("MODULEPATH", "/lustre/f2/pdata/esrl/gsd/spack-stack/modulefiles")

load(pathJoin("intel-classic", os.getenv("intel_classic_ver") or "2022.0.2"))
load(pathJoin("cray-mpich", os.getenv("cray_mpich_ver") or "7.7.20"))
load(pathJoin("hpc-intel-classic", os.getenv("hpc_intel_classic_ver") or "2022.0.2"))
load(pathJoin("hpc-cray-mpich", os.getenv("hpc_cray_mpich_ver") or "7.7.20"))
local stack_python_ver=os.getenv("stack_python_ver") or "3.9.12"
local stack_intel_ver=os.getenv("stack_intel_ver") or "2022.0.2"
local stack_cray_mpich_ver=os.getenv("stack_cray_mpich_ver") or "7.7.20"
local cmake_ver=os.getenv("cmake_ver") or "3.23.1"

load(pathJoin("stack-intel", stack_intel_ver))
load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver))
load(pathJoin("stack-python", stack_python_ver))
load(pathJoin("cmake", cmake_ver))

load("gsi_common")

local prod_util_ver=os.getenv("prod_util_ver") or "1.2.2"
load(pathJoin("prod_util", prod_util_ver))
load(pathJoin("prod-util", prod_util_ver))

-- Needed at runtime:
load("alps")
Expand Down
Loading