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

Create template for unified environment, test install on orion and AWS parallelcluster #454

Merged
merged 42 commits into from
Feb 18, 2023
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
ee8de7a
Delete configs/common/packages.yaml and rename/update configs/templat…
climbfuji Jan 25, 2023
02761ae
Update configs/sites/orion/packages.yaml
climbfuji Jan 25, 2023
30d3dc1
Put pinning of py-poetry-core back in
climbfuji Jan 25, 2023
157e543
Update submodule pointer for spack
climbfuji Jan 25, 2023
25a6e5d
Update submodule pointer for spack
climbfuji Jan 25, 2023
c8f030a
Restore configs/common/packages.yaml
climbfuji Jan 26, 2023
dacdfc6
Update CI to use unified-dev
climbfuji Jan 26, 2023
b804780
Revert indent changes in configs/common/packages.yaml
climbfuji Jan 30, 2023
63ebfeb
[skip ci] Update versions of hdf5, netcdf-c, netcdf-fortran, parallel…
climbfuji Jan 30, 2023
b9d6c06
[skip ci] Update submodule pointer for spack
climbfuji Jan 30, 2023
bf386d3
Bump parallelio to 2.5.9
climbfuji Feb 1, 2023
a89a3ec
Add a known issue for macOS to documentation
climbfuji Feb 1, 2023
b5d8f87
Merge branch 'develop' of https://github.com/noaa-emc/spack-stack int…
climbfuji Feb 3, 2023
603940d
Add Orion Intel-18 config
climbfuji Feb 3, 2023
0f750d6
Update documentation to - for now - manually adjust the compiler matrix
climbfuji Feb 6, 2023
7df3d34
Debug CI tests
climbfuji Feb 8, 2023
c7e3bc0
Update .gitmodules and submodule pointer for spack for code review an…
climbfuji Feb 8, 2023
ffb7e33
Bug fix in .github/workflows/macos-dom.yaml
climbfuji Feb 8, 2023
fbaaf69
Update submodule pointer for spack
climbfuji Feb 9, 2023
06bc4a0
Update netcdf-c to 4.9.1
climbfuji Feb 9, 2023
b192d0f
Manually add the ESMF snapshot variant changes in configs/common/modu…
climbfuji Feb 9, 2023
35ca74d
Limit unified environment with Intel 18 to UFS libraries
climbfuji Feb 9, 2023
35e4986
Trigger CI
climbfuji Feb 9, 2023
e3eaf1b
Set snapshot variant for ESMF in configs/common/packages.yaml
climbfuji Feb 9, 2023
8d91209
Update submodule pointer for spack
climbfuji Feb 9, 2023
973216d
Update submodule pointer for spack
climbfuji Feb 10, 2023
327fee1
Revert netcdf-c back to 4.9.0
climbfuji Feb 10, 2023
9e0d5a1
Merge branch 'develop' of https://github.com/noaa-emc/spack-stack int…
climbfuji Feb 10, 2023
baebb9d
Revert CI tests to smaller templates
climbfuji Feb 10, 2023
b06a7f0
Change netcdf-c to 4.9.1 in configs/common/packages.yaml
climbfuji Feb 13, 2023
a932bf1
Update Orion site config and set variant for netcdf-c byterange in co…
climbfuji Feb 13, 2023
a9b3efd
Revert netcdf-c version one last time
climbfuji Feb 13, 2023
0fa7b1b
Update submodule pointer for spack
climbfuji Feb 14, 2023
272d0fe
Merge branch 'develop' of https://github.com/noaa-emc/spack-stack int…
climbfuji Feb 14, 2023
5b3ea91
Final touches to Orion packages and documentation
climbfuji Feb 14, 2023
f0b6a08
Update submodule pointer for spack
climbfuji Feb 14, 2023
037dea8
Remove logic for unified-dev from CI scripts
climbfuji Feb 14, 2023
df2f25d
Enable variant +szip for hdf5, required for global-workflow-env
climbfuji Feb 14, 2023
4b04929
Revert .gitmodules and update submodule pointer for spack
climbfuji Feb 15, 2023
2b9c16a
Shut off ncl on macOS
climbfuji Feb 16, 2023
3ed4632
Update .gitmodules and submodule pointer for spack
climbfuji Feb 16, 2023
b376663
Revert .gitmodules and update submodule pointer for spack
climbfuji Feb 18, 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
6 changes: 6 additions & 0 deletions .github/actions/setup-spack-stack/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,12 @@ runs:
spack config add "packages:all:compiler:[${{ inputs.compiler }}]"
# Set compiler as hard requirement for all packages
spack config add "packages:all:require:one_of:['%${{ inputs.compiler }}']"
# Modify the compiler matrix definition
if [[ "$RUNNER_OS" == "macOS" ]]; then
sed -i '' "s/\['\%apple-clang', '\%gcc', '\%intel'\]/\['\%${{ inputs.compiler }}'\]/g" ${{ inputs.path }}/envs/${{ inputs.name }}/spack.yaml
else
sed -i "s/\['\%apple-clang', '\%gcc', '\%intel'\]/\['\%${{ inputs.compiler }}'\]/g" ${{ inputs.path }}/envs/${{ inputs.name }}/spack.yaml
fi

if [[ "$RUNNER_OS" == "macOS" ]]; then
# Turn of SSL for ecflow CI builds for now
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/macos-dom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:
template:
description: 'Base spack.yaml template. Default is a complete JEDI-UFS environment.'
required: true
default: 'skylab-dev'
default: 'unified-dev'
specs:
description: 'Which specs to add to the template. Default is none (empty string).'
required: false
Expand All @@ -38,8 +38,8 @@ jobs:
- name: create-env
run: |
source ./setup.sh
spack stack create env --site macos.default --template ${{ inputs.template || 'skylab-dev' }} --name ${{ inputs.template || 'skylab-dev' }}.macos-dom
spack env activate -d envs/${{ inputs.template || 'skylab-dev' }}.macos-dom
spack stack create env --site macos.default --template ${{ inputs.template || 'unified-dev' }} --name ${{ inputs.template || 'unified-dev' }}.macos-dom
spack env activate -d envs/${{ inputs.template || 'unified-dev' }}.macos-dom
spack add ${{ inputs.specs || '' }}

spack external find
Expand All @@ -49,8 +49,7 @@ jobs:
PATH="/usr/local/opt/curl/bin:${PATH}" spack external find curl
spack compiler find

## https://github.com/dtcenter/MET/issues/2239
#spack remove global-workflow-env
sed -i '' "s/\['\%apple-clang', '\%gcc', '\%intel'\]/\['\%apple-clang'\]/g" envs/${{ inputs.template || 'unified-dev' }}.macos-dom/spack.yaml

spack concretize
spack install --fail-fast
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
strategy:
matrix:
compiler-mpi: [ {compiler: apple-clang@13.0.0, mpi: openmpi@4.1.4} ]
template: [skylab-dev, ufs-weather-model, ufs-srw-dev]
template: [skylab-dev, ufs-weather-model, ufs-srw-dev] # [unified-dev]
runs-on: macos-11
steps:

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
strategy:
matrix:
compiler-mpi: [ {compiler: intel@2021.8.0, mpi: intel-oneapi-mpi@2021.8.0}, {compiler: gcc@9.4.0, mpi: mvapich2@2.3.7}, {compiler: gcc@10.3.0, mpi: mpich@4.0.2} ]
template: [skylab-dev, ufs-weather-model, ufs-srw-dev]
template: [skylab-dev, ufs-weather-model, ufs-srw-dev] # [unified-dev]
runs-on: ubuntu-20.04
steps:

Expand Down
10 changes: 6 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
[submodule "spack"]
path = spack
#url = https://github.com/spack/spack
#branch = develop
url = https://github.com/NOAA-EMC/spack
branch = jcsda_emc_spack_stack
##url = https://github.com/spack/spack
##branch = develop
#url = https://github.com/NOAA-EMC/spack
#branch = jcsda_emc_spack_stack
url = https://github.com/climbfuji/spack
branch = feature/unified-dev-intel-18
[submodule "doc/CMakeModules"]
path = doc/CMakeModules
url = https://github.com/noaa-emc/cmakemodules
Expand Down
4 changes: 2 additions & 2 deletions configs/common/modules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ modules:
arch_folder: false
tcl:
# Core compiler is a dummy that is not used to build the stack, do not change.
# Hopefully nobody is trying to build software with gcc-4.6 in 2022 ...
# Hopefully nobody is trying to build software with gcc-4.6 in 2023 ...
core_compilers::
- gcc@4.6
projections:
Expand Down Expand Up @@ -233,7 +233,7 @@ modules:

lmod:
# Core compiler is a dummy that is not used to build the stack, do not change.
# Hopefully nobody is trying to build software with gcc-4.6 in 2022 ...
# Hopefully nobody is trying to build software with gcc-4.6 in 2023 ...
core_compilers::
- gcc@4.6
projections:
Expand Down
27 changes: 9 additions & 18 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
# Attention - when updating also check orion site config
boost:
version: [1.78.0]
# Install only the minimum needed (JEDI packages need headers only,
# but ecflow needs several libraries)
variants: ~atomic +chrono +date_time +exception +filesystem ~graph ~iostreams ~locale ~log ~math ~mpi ~numpy +pic +program_options +python ~random +regex +serialization ~signals +system +test +thread +timer ~wave cxxstd=14 visibility=hidden
bufr:
version: [11.7.1]
Expand All @@ -34,15 +32,13 @@
# Attention - when updating also check the various jcsda-emc-bundles env packages
crtm:
version: [2.4.0]
diffutils:
version: [3.7]
variants: +fix
ecbuild:
version: [3.6.5]
eccodes:
version: [2.27.0]
#variants: +netcdf
ecflow:
version: [5.8.3]
version: [5.8.4]
variants: +ui
eckit:
version: [1.20.2]
Expand All @@ -67,11 +63,6 @@
version: [3.3.10]
fiat:
version: [1.1.0]
findutils:
version: [4.8.0]
flex:
version: [2.6.4]
# Attention - when updating also check the various jcsda-emc-bundles env packages
fms:
version: [2022.04]
variants: +64bit +quad_precision +gfs_phys +openmp +fpic constants=GFS
Expand All @@ -80,7 +71,7 @@
g2c:
version: [1.6.4]
g2tmpl:
version: [1.10.0]
version: [1.10.2]
gfsio:
version: [1.4.1]
gftl-shared:
Expand All @@ -101,7 +92,7 @@
version: [4.2.15]
variants: ~fortran ~netcdf
hdf5:
version: [1.12.1]
version: [1.14.0]
variants: +hl +fortran +mpi +threadsafe
ip:
version: [3.3.3]
Expand Down Expand Up @@ -142,12 +133,13 @@
ncio:
version: [1.1.2]
netcdf-c:
version: [4.8.1]
variants: +dap +mpi +parallel-netcdf
version: [4.9.0]
# If using 4.9.1, turn off byterange variant to fix compile error: ~byterange
variants: +dap +mpi ~parallel-netcdf
netcdf-cxx4:
version: [4.3.1]
netcdf-fortran:
version: [4.5.4]
version: [4.6.0]
# ninja - when adding information here, also check Cheyenne
# and Discover site configs
nlohmann-json:
Expand All @@ -163,7 +155,7 @@
openmpi:
variants: +internal-hwloc +two_level_namespace
parallelio:
version: [2.5.7]
version: [2.5.9]
variants: +pnetcdf
parallel-netcdf:
version: [1.12.2]
Expand All @@ -174,7 +166,6 @@
version: [1.2.2]
proj:
version: [8.1.0]
# don't really need tiff ...
variants: ~tiff
python:
version: [3.10.8]
Expand Down
18 changes: 18 additions & 0 deletions configs/sites/orion/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,24 @@ compilers:
LD_LIBRARY_PATH: '/apps/gcc-10.2.0/gcc-10.2.0/lib64:/apps/gcc-10.2.0/gcc-10.2.0/contrib/lib'
CPATH: '/apps/gcc-10.2.0/gcc-10.2.0/include'
extra_rpaths: []
- compiler:
spec: intel@18.0.5
paths:
cc: /apps/intel-2018/intel-2018.u4/compilers_and_libraries_2018.5.274/linux/bin/intel64/icc
cxx: /apps/intel-2018/intel-2018.u4/compilers_and_libraries_2018.5.274/linux/bin/intel64/icpc
f77: /apps/intel-2018/intel-2018.u4/compilers_and_libraries_2018.5.274/linux/bin/intel64/ifort
fc: /apps/intel-2018/intel-2018.u4/compilers_and_libraries_2018.5.274/linux/bin/intel64/ifort
flags: {}
operating_system: centos7
target: x86_64
modules:
- intel/2018.4
environment:
prepend_path:
PATH: '/apps/gcc-8/gcc-8.3.0/bin'
LD_LIBRARY_PATH: '/apps/gcc-8/gcc-8.3.0/lib64:/apps/gcc-8/gcc-8.3.0//lib:/apps/gcc-8/gcc-8.3.0/mpfr-4.0.2/lib:/apps/gcc-8/gcc-8.3.0/mpc-1.1.0/lib:/apps/gcc-8/gcc-8.3.0/gmp-6.1.2/lib'
CPATH: '/apps/gcc-8/gcc-8.3.0/include'
extra_rpaths: []
- compiler:
spec: gcc@10.2.0
paths:
Expand Down
32 changes: 11 additions & 21 deletions configs/sites/orion/packages.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
packages:
all:
compiler:: [intel@2022.0.2]
#compiler:: [gcc@10.2.0]
compiler:: [intel@2022.0.2, intel@18.0.5, gcc@10.2.0]
providers:
mpi:: [intel-oneapi-mpi@2021.5.1]
#mpi:: [openmpi@4.0.4]
mpi:: [intel-oneapi-mpi@2021.5.1, intel-mpi@2018.5.274, openmpi@4.0.4]

### MPI, Python, MKL
mpi:
Expand All @@ -15,22 +13,18 @@ packages:
prefix: /apps/intel-2022.1.2/intel-2022.1.2
modules:
- impi/2022.1.2
- spec: intel-oneapi-mpi@2021.2.0%intel@2021.2.0
prefix: /apps/intel-2021.2/intel-2021.2
intel-mpi:
externals:
- spec: intel-mpi@2018.5.274%intel@18.0.5
prefix: /apps/intel-2018/intel-2018.u4/compilers_and_libraries_2018.5.274/linux/mpi
modules:
- impi/2021.2
#intel-oneapi-tbb:
# externals:
# - spec: intel-oneapi-tbb@2021.2.0%intel@2021.2.0
# prefix: /apps/intel-2021.2/intel-2021.2
# modules:
# - intel/2021.2
#intel-oneapi-mkl:
- impi/2018.4
#intel-mkl:
climbfuji marked this conversation as resolved.
Show resolved Hide resolved
# externals:
# - spec: intel-oneapi-mkl@2021.2.0%intel@2021.2.0
# prefix: /apps/intel-2021.2/intel-2021.2
# - spec: intel-mkl@2018.5.274%intel@18.0.5
# prefix: /apps/intel-2018/intel-2018.u4/compilers_and_libraries_2018.5.274/linux/mkl
# modules:
# - intel/2021.2
# - intel/2018.4
openmpi:
externals:
- spec: openmpi@4.0.4%gcc@10.2.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath
Expand Down Expand Up @@ -82,10 +76,6 @@ packages:
prefix: /apps/cmake-3.22.1
modules:
- cmake/3.22.1
- spec: cmake@3.18.1
prefix: /apps/cmake-3.18.1
modules:
- cmake/3.18.1
cpio:
externals:
- spec: cpio@2.11
Expand Down
Loading