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

Add ai-env virtual package; remove python variant from jedi-base-env; bug fixes for Discover SCU16/17; doc updates for ParallelWorks; etc #1017

Merged
merged 26 commits into from
Mar 8, 2024
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
09a1f2d
Update submodule pointer for spack
climbfuji Feb 28, 2024
e318ced
Update submodule pointer for spack
climbfuji Feb 28, 2024
fc6eef7
Set env variable I_MPI_EXTRA_FILESYSTEM='ON' for Derecho and Discover…
climbfuji Feb 28, 2024
b26ebfb
Add protobuf and py-protobuf to list of module excludes
climbfuji Mar 5, 2024
35fc2a5
Update README.md for noaa-aws, noaa-azure, noaa-gcloud
climbfuji Mar 5, 2024
430c887
Update instructions for building ecflow on Discover SCU17
climbfuji Mar 5, 2024
3f723d6
Add variant to build py-torch as part of jedi-base-env, defaults to F…
climbfuji Mar 5, 2024
0f6cd8e
Update submodule pointer for spack
climbfuji Mar 5, 2024
e3a3184
Update openmpi on Nautilus to 4.1.6 (#1014)
climbfuji Feb 28, 2024
7104e11
Update doc/source/PreConfiguredSites.rst for Discover SCU16/17
climbfuji Mar 5, 2024
834e435
Merge branch 'develop' of https://github.com/jcsda/spack-stack into b…
climbfuji Mar 5, 2024
9fe5499
Merge branch 'develop' of https://github.com/jcsda/spack-stack into b…
climbfuji Mar 5, 2024
ebb945f
Remove python variant from jedi-base-env dependency in gmao-swell-env
climbfuji Mar 5, 2024
f81d7ee
Add ai-env virtual package
climbfuji Mar 5, 2024
b0fb03e
Skip duplicate check for py-protobuf in github actions
climbfuji Mar 5, 2024
d0c1623
Add diag-disable flag for deprecated Intel classic compilers for Herc…
climbfuji Mar 6, 2024
60e421f
Enable variant internal-protobuf for py-torch in ai-env
climbfuji Mar 6, 2024
59b7aa9
Skip ai-env with Intel compilers in unified-dev template
climbfuji Mar 6, 2024
8424f72
Move variant definitions for py-torch from spack-ext/repos/spack-stac…
climbfuji Mar 7, 2024
fde4df0
Revert '-i py-protobuf' for .github/workflows/*
climbfuji Mar 7, 2024
986cc01
Update submodule pointer for spack
climbfuji Mar 7, 2024
90c8f3a
Put inadvertently deleted line back in configs/sites/noaa-azure/READM…
climbfuji Mar 7, 2024
54b61ad
Update submodule pointer for spack
climbfuji Mar 7, 2024
fa9ca77
Update submodule pointer for spack
climbfuji Mar 7, 2024
1a26f1e
Revert .gitmodules and update submodule pointer for spack
climbfuji Mar 8, 2024
14fd885
Merge branch 'develop' of https://github.com/jcsda/spack-stack into b…
climbfuji Mar 8, 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
2 changes: 1 addition & 1 deletion .github/workflows/macos-ci-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:

# Concretize and check for duplicates
spack concretize 2>&1 | tee log.concretize.apple-clang-14.0.3
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.apple-clang-14.0.3 -i fms -i crtm -i esmf -i mapl
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.apple-clang-14.0.3 -i fms -i crtm -i esmf -i mapl -i py-protobuf

# Add and update source cache
spack mirror add local-source file:///Users/ec2-user/spack-stack/source-cache/
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/macos-ci-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:

# Concretize and check for duplicates
spack concretize 2>&1 | tee log.concretize.apple-clang-14.0.0
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.apple-clang-14.0.0 -i fms -i crtm -i esmf -i mapl
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.apple-clang-14.0.0 -i fms -i crtm -i esmf -i mapl -i py-protobuf

# Add and update source cache
spack mirror add local-source file:///Users/ec2-user/spack-stack/source-cache/
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ubuntu-ci-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ jobs:

# Concretize and check for duplicates
spack concretize 2>&1 | tee log.concretize.intel-2021.6.0
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.intel-2021.6.0 -i fms -i crtm -i esmf -i mapl
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.intel-2021.6.0 -i fms -i crtm -i esmf -i mapl -i py-protobuf

# Add and update source cache
spack mirror add local-source file:///home/ubuntu/spack-stack/source-cache/
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ubuntu-rnd-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ jobs:

# Concretize and check for duplicates
spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME}.${compiler}
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.${ENVNAME}.${compiler} -i fms -i crtm -i esmf -i mapl
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.${ENVNAME}.${compiler} -i fms -i crtm -i esmf -i mapl -i py-protobuf

# Update spack source cache
spack mirror create -a -d /mnt/experiments-efs/spack-stack/source-cache
Expand Down Expand Up @@ -150,7 +150,7 @@ jobs:

# Concretize and check for duplicates
spack concretize --force --fresh 2>&1 | tee log.concretize.${ENVNAME}.${compiler}
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.${ENVNAME}.${compiler} -i fms -i crtm -i esmf -i mapl
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.${ENVNAME}.${compiler} -i fms -i crtm -i esmf -i mapl -i py-protobuf

# Update spack source cache
spack mirror create -a -d /mnt/experiments-efs/spack-stack/source-cache
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/jcsda/spack
branch = jcsda_emc_spack_stack
##url = https://github.com/spack/spack
##branch = develop
#url = https://github.com/jcsda/spack
#branch = jcsda_emc_spack_stack
url = https://github.com/climbfuji/spack
branch = feature/pytorch_internal_protobuf
[submodule "doc/CMakeModules"]
path = doc/CMakeModules
url = https://github.com/noaa-emc/cmakemodules
Expand Down
2 changes: 2 additions & 0 deletions configs/common/modules_lmod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ modules:
- openssl
- perl
- pkgconf
- protobuf
- py-protobuf
- qt
- randrproto
- readline
Expand Down
2 changes: 2 additions & 0 deletions configs/common/modules_tcl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ modules:
- openssl
- perl
- pkgconf
- protobuf
- py-protobuf
- qt
- randrproto
- readline
Expand Down
2 changes: 2 additions & 0 deletions configs/common/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,8 @@
variants: +rust_bootstrap
py-shapely:
require: ['@1.8.0']
py-torch:
require: "+internal-protobuf ~mkldnn"
qt:
version: ['5.15.3']
scotch:
Expand Down
83 changes: 44 additions & 39 deletions configs/sites/derecho/compilers.yaml
Original file line number Diff line number Diff line change
@@ -1,42 +1,47 @@
compilers::
Copy link
Collaborator Author

@climbfuji climbfuji Mar 7, 2024

Choose a reason for hiding this comment

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

Except for lines 10-12 adding the annoying deprecation warnings, and line 27 adding the recently reintroduced I_MPI env var, the rest of the changes here are due to fixing the indentation only.

Copy link
Collaborator

Choose a reason for hiding this comment

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

These I_MPI_* variables might be needed for building or running the UFS and Apps as well. Probably this is something to keep in mind

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

So these will be set automatically whenever the stack-intel compiler gets loaded on Derecho - should be sufficient for UFS

- compiler:
spec: intel@2021.10.0
paths:
cc: /glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/bin/intel64/icc
cxx: /glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/bin/intel64/icpc
f77: /glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/bin/intel64/ifort
fc: /glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/bin/intel64/ifort
flags: {}
operating_system: sles15
target: x86_64
modules:
- ncarenv/23.09
- intel-classic/2023.2.1
environment:
prepend_path:
PATH: '/opt/cray/pe/gcc/12.2.0/bin'
CPATH: '/opt/cray/pe/gcc/12.2.0/snos/include'
LD_LIBRARY_PATH: '/glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/compiler/lib/intel64_lin:/opt/cray/pe/gcc/12.2.0/snos/lib:/opt/cray/pe/gcc/12.2.0/lib64'
set:
# https://github.com/JCSDA/spack-stack/issues/957
FI_CXI_RX_MATCH_MODE: 'hybrid'
extra_rpaths: []
- 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
target: x86_64
modules:
- ncarenv/23.09
- gcc/12.2.0
environment:
set:
# https://github.com/JCSDA/spack-stack/issues/957
FI_CXI_RX_MATCH_MODE: 'hybrid'
- compiler:
spec: intel@2021.10.0
paths:
cc: /glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/bin/intel64/icc
cxx: /glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/bin/intel64/icpc
f77: /glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/bin/intel64/ifort
fc: /glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/bin/intel64/ifort
flags:
cflags: -diag-disable=10441
cxxflags: -diag-disable=10441
fflags: -diag-disable=10448
operating_system: sles15
target: x86_64
modules:
- ncarenv/23.09
- intel-classic/2023.2.1
environment:
prepend_path:
PATH: '/opt/cray/pe/gcc/12.2.0/bin'
CPATH: '/opt/cray/pe/gcc/12.2.0/snos/include'
LD_LIBRARY_PATH: '/glade/u/apps/common/23.08/spack/opt/spack/intel-oneapi-compilers/2023.2.1/compiler/2023.2.1/linux/compiler/lib/intel64_lin:/opt/cray/pe/gcc/12.2.0/snos/lib:/opt/cray/pe/gcc/12.2.0/lib64'
set:
# https://github.com/JCSDA/spack-stack/issues/957
FI_CXI_RX_MATCH_MODE: 'hybrid'
# https://github.com/JCSDA/spack-stack/issues/1012
I_MPI_EXTRA_FILESYSTEM: 'ON'
extra_rpaths: []
- 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
target: x86_64
modules:
- ncarenv/23.09
- gcc/12.2.0
environment:
set:
# https://github.com/JCSDA/spack-stack/issues/957
FI_CXI_RX_MATCH_MODE: 'hybrid'
extra_rpaths: []

3 changes: 2 additions & 1 deletion configs/sites/discover-scu16/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ compilers:
cxx: /usr/local/intel/oneapi/2021/compiler/2022.0.1/linux/bin/intel64/icpc
f77: /usr/local/intel/oneapi/2021/compiler/2022.0.1/linux/bin/intel64/ifort
fc: /usr/local/intel/oneapi/2021/compiler/2022.0.1/linux/bin/intel64/ifort
flags: {}
flags:
ldflags: '-L/usr/local/other/gcc/11.2.0/lib64'
operating_system: sles12
target: x86_64
modules:
Expand Down
5 changes: 3 additions & 2 deletions configs/sites/discover-scu17/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ compilers:
PATH: '/usr/local/other/gcc/11.4.0/bin'
CPATH: '/usr/local/other/gcc/11.4.0/include'
LD_LIBRARY_PATH: '/usr/local/intel/oneapi/2021/compiler/2023.2.1/linux/compiler/lib/intel64_lin:/usr/local/other/gcc/11.4.0/lib64'
#set:
# I_MPI_ROOT: '/usr/local/intel/oneapi/2021/mpi/2021.5.0'
set:
# https://github.com/JCSDA/spack-stack/issues/1012
I_MPI_EXTRA_FILESYSTEM: 'ON'
extra_rpaths: []
- compiler:
spec: gcc@=12.3.0
Expand Down
5 changes: 4 additions & 1 deletion configs/sites/hercules/compilers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ compilers:
cxx: /apps/spack-managed/gcc-11.3.1/intel-oneapi-compilers-2023.1.0-sb753366rvywq75zeg4ml5k5c72xgj72/compiler/2023.1.0/linux/bin/intel64/icpc
f77: /apps/spack-managed/gcc-11.3.1/intel-oneapi-compilers-2023.1.0-sb753366rvywq75zeg4ml5k5c72xgj72/compiler/2023.1.0/linux/bin/intel64/ifort
fc: /apps/spack-managed/gcc-11.3.1/intel-oneapi-compilers-2023.1.0-sb753366rvywq75zeg4ml5k5c72xgj72/compiler/2023.1.0/linux/bin/intel64/ifort
flags: {}
flags:
cflags: -diag-disable=10441
cxxflags: -diag-disable=10441
fflags: -diag-disable=10448
operating_system: rocky9
target: x86_64
modules:
Expand Down
15 changes: 15 additions & 0 deletions configs/sites/noaa-aws/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ that the site configuration files in `configs/sites/noaa-aws` work out of the bo

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
Expand Down Expand Up @@ -126,6 +131,7 @@ mkdir ecflow
# Create the modulefile from the template in doc/modulefile_templates

############## Steps to perform when starting a new cluster ##############

source /contrib/admin/basic_setup.sh # sudo privileges requred to install packages
module unuse /opt/cray/craype/default/modulefiles
module unuse /opt/cray/modulefiles
Expand All @@ -135,3 +141,12 @@ 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
15 changes: 14 additions & 1 deletion configs/sites/noaa-azure/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ that the site configuration files in `configs/sites/noaa-azure` work out of the

sudo su
chmod 777 /contrib
yum install -y m4
natalie-perlin marked this conversation as resolved.
Show resolved Hide resolved
# 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
Expand Down Expand Up @@ -130,6 +134,7 @@ mkdir ecflow
# Create the modulefile from the template in doc/modulefile_templates

############## Steps to perform when starting a new cluster ##############

source /contrib/admin/basic_setup.sh # sudo privileges requred to install packages
module unuse /opt/cray/craype/default/modulefiles
module unuse /opt/cray/modulefiles
Expand All @@ -140,4 +145,12 @@ 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
15 changes: 15 additions & 0 deletions configs/sites/noaa-gcloud/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ that the site configuration files in `configs/sites/noaa-gcloud` work out of the

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
Expand Down Expand Up @@ -126,6 +131,7 @@ mkdir ecflow
# Create the modulefile from the template in doc/modulefile_templates

############## Steps to perform when starting a new cluster ##############

source /contrib/admin/basic_setup.sh # sudo privileges requred to install packages
module unuse /opt/cray/craype/default/modulefiles
module unuse /opt/cray/modulefiles
Expand All @@ -135,3 +141,12 @@ 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
3 changes: 3 additions & 0 deletions configs/templates/unified-dev/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ spack:
- compilers: ['%aocc', '%apple-clang', '%gcc', '%intel']
- packages:
- ewok-env +ecflow +cylc
- ai-env
- geos-gcm-env
- global-workflow-env
- gmao-swell-env
Expand Down Expand Up @@ -44,5 +45,7 @@ spack:
- [$packages]
- [$compilers]
exclude:
# py-torch in ai-env doesn't build with Intel
- ai-env%intel
# jedi-tools doesn't build with Intel
- jedi-tools-env%intel
14 changes: 12 additions & 2 deletions doc/source/MaintainersSection.rst
Original file line number Diff line number Diff line change
Expand Up @@ -345,14 +345,24 @@ NASA Discover SCU17
On Discover SCU17 ``ecflow`` needs to be installed as a one-off before spack can be used.

ecflow
``ecFlow`` must be built manually using the GNU compilers and linked against a static ``boost`` library. After loading the following modules, follow the instructions in :numref:`Section %s <MaintainersSection_ecFlow>`.
``ecFlow`` must be built manually using the GNU compilers and linked against a static ``boost`` library. After loading the following modules, follow the instructions in :numref:`Section %s <MaintainersSection_ecFlow>` (cont'd below).

.. code-block:: console

module purge
module load comp/gcc/12.3.0
module load cmake/3.28.2

The following workaround is required after installing ``ecflow`` and creating the modulefile: edit ``path/to/ecflow/bin/ecflow_ui`` and change the last few lines to (i.e. prepend the ``LD_PRELOAD`` command):

.. code-block:: console

if [ $ECFLOWUI_BT != "no" ]
then
LD_PRELOAD=/usr/lib64/libstdc++.so.6 catchsegv ${ECFLOWUI_USER_START_CMD} "$exe"
else
LD_PRELOAD=/usr/lib64/libstdc++.so.6 ${ECFLOWUI_USER_START_CMD} "$exe"
fi

.. _MaintainersSection_Narwhal:

------------------------------
Expand Down
Loading
Loading