Skip to content

Commit 14afde6

Browse files
authored
Final updates of develop from release 1.9.3 (#1790)
Final round of updates from release 1.9.3 (branch release/1.9.0) for develop. An attempt will be made to pull these updatesinto the new feature/update_to_spack_v1 branch for changes that are not related to site configs, and for site configs that haven't been updated yet to work with spack v1.
1 parent 0d908a4 commit 14afde6

16 files changed

Lines changed: 170 additions & 71 deletions

File tree

configs/common/packages.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ packages:
324324
wgrib2:
325325
require:
326326
- '@3.6.0'
327+
- '+ipolates +netcdf'
327328
wrf-io:
328329
require: '@1.2.0'
329330
zstd:

configs/sites/tier1/hera/packages.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
packages:
22
all:
3+
# https://github.com/JCSDA/spack-stack/issues/1781
34
# To support hecflow01
4-
target: [haswell]
5+
#target: [haswell]
56
providers:
67
zlib-api:: [zlib]
78
zlib-api:
@@ -110,10 +111,10 @@ packages:
110111
mysql:
111112
buildable: False
112113
externals:
113-
- spec: mysql@8.0.31
114-
prefix: /scratch1/NCEPDEV/global/spack-stack/apps/mysql-8.0.31
114+
- spec: mysql@8.0.36
115+
prefix: /contrib/spack-stack/installs/mysql/8.0.36
115116
modules:
116-
- mysql/8.0.31
117+
- mysql/8.0.36
117118
ncurses:
118119
externals:
119120
- spec: ncurses@5.9.20130511+termlib abi=5
@@ -129,7 +130,7 @@ packages:
129130
qt:
130131
externals:
131132
- spec: qt@5.12.6
132-
prefix: /scratch1/NCEPDEV/nems/role.epic/installs/qt-5.12.6/qtbase
133+
prefix: /contrib/spack-stack/installs/qt-5.12.6/qtbase
133134
rsync:
134135
externals:
135136
- spec: rsync@3.1.2

configs/sites/tier1/hera/packages_oneapi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
packages:
22
all:
3-
compiler:: [oneapi@2024.2.1]
3+
compiler:: [oneapi@2024.2.1, gcc@13.3.0]
44
providers:
55
mpi:: [intel-oneapi-mpi@2021.13]
66
# Remove the next three lines to switch to intel-oneapi-mkl

configs/sites/tier1/hercules/compilers.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,15 @@ compilers:
1010
operating_system: rocky9
1111
target: x86_64
1212
modules:
13+
- spack-managed-x86-64_v3
1314
- intel-oneapi-compilers/2024.2.1
1415
environment:
1516
set:
1617
# https://github.com/ufs-community/ufs-weather-model/issues/2015#issuecomment-1864438186
1718
I_MPI_EXTRA_FILESYSTEM: 'ON'
19+
# Override system module settings for FC and F77 (they're set to ifx)
20+
F77: '/apps/spack-managed-x86_64_v3-v1.0/gcc-11.3.1/intel-oneapi-compilers-2024.2.1-podbez65l57ms4uba527kg7pomxk5y3m/compiler/2024.2/bin/ifort'
21+
FC: '/apps/spack-managed-x86_64_v3-v1.0/gcc-11.3.1/intel-oneapi-compilers-2024.2.1-podbez65l57ms4uba527kg7pomxk5y3m/compiler/2024.2/bin/ifort'
1822
prepend_path:
1923
PATH: /usr/bin
2024
LD_LIBRARY_PATH: /usr/lib:/usr/lib64

configs/sites/tier1/hercules/packages_oneapi.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ packages:
1515
- spec: intel-oneapi-mpi@2021.13%oneapi@2024.2.1
1616
prefix: /apps/spack-managed-x86_64_v3-v1.0/oneapi-2024.2.1/intel-oneapi-mpi-2021.13.1-3pv63eugwmse2xpeglxib4dr2oeb42g2
1717
modules:
18+
- spack-managed-x86-64_v3
19+
- intel-oneapi-compilers/2024.2.1
1820
- intel-oneapi-mpi/2021.13.1
1921

2022
intel-oneapi-mkl:
@@ -23,13 +25,15 @@ packages:
2325
- spec: intel-oneapi-mkl@2024.2.1
2426
prefix: /apps/spack-managed-x86_64_v3-v1.0/gcc-11.3.1/intel-oneapi-mkl-2024.2.1-aeiool3i5jj4newwifvkhow5almp67rt
2527
modules:
28+
- spack-managed-x86-64_v3
2629
- intel-oneapi-mkl/2024.2.1
2730

2831
intel-oneapi-runtime:
2932
externals:
3033
- spec: intel-oneapi-runtime@2024.2.1%oneapi@2024.2.1
3134
prefix: /apps/spack-managed-x86_64_v3-v1.0/oneapi-2024.2.1/intel-oneapi-runtime-2024.2.1-hl5zgdjaldynq35dq3yotclfy2vblybx
3235
modules:
36+
- spack-managed-x86-64_v3
3337
- intel-oneapi-compilers/2024.2.1
3438
- intel-oneapi-runtime/2024.2.1
3539

@@ -49,3 +53,6 @@ packages:
4953
py-scipy:
5054
require:
5155
- '%gcc'
56+
zlib-ng:
57+
require:
58+
- '~shared'

configs/sites/tier1/nas/README.md

Lines changed: 100 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,131 @@
11
# How to build spack-stack at NAS
22

3-
## Generic
3+
In the commands below some will be run on login nodes (with internet access) and some
4+
on compute nodes as, at NAS, you aren't allowed more than 2 processes on a login node.
45

6+
## Clone spack-stack
7+
8+
```
9+
git clone --recursive https://github.com/JCSDA/spack-stack.git -b release/1.9.0 spack-stack-1.9.3
10+
```
11+
12+
## Grab interactive node
13+
14+
Since NAS limits you to 2 processes on a login node, you'll need to grab an interactive node. For example:
515
```
6-
git clone --recursive https://github.com/JCSDA/spack-stack.git -b release/1.9.0 spack-stack-1.9.1
16+
qsub -I -V -X -l select=1:ncpus=128:mpiprocs=128:model=mil_ait -l walltime=12:00:00 -W group_list=s1873 -m b -N Interactive
717
```
18+
will get you a Milan node for 12 hours
19+
20+
## Setup spack-stack on each node
821

9-
## oneapi
22+
We will start on a login node with internet access. This is mainly needed for the
23+
`spack mirror create` command which downloads all the source code for the packages.
1024

1125
```
12-
cd spack-stack-1.9.1
26+
cd spack-stack-1.9.3
1327
. setup.sh
14-
spack stack create env --name ue-oneapi-2024.2.0 --template unified-dev --site nas --compiler oneapi
15-
cd envs/ue-oneapi-2024.2.0
16-
spack env activate .
17-
spack concretize 2>&1 | tee log.concretize
18-
spack install --verbose --fail-fast --show-log-on-error --no-check-signature 2>&1 | tee log.install
1928
```
2029

21-
NOTE: You might need to run the `spack install` command multiple times because sometimes
22-
it just fails. But then you run it more and more and it will eventually succeed.
30+
## Create environments
31+
32+
We create two different environments, one for oneAPI and one for GCC. The commands below
33+
are used to create the environments. You only need to do this once.
34+
35+
### oneAPI
36+
37+
To create the oneAPI environment, do:
2338

2439
```
25-
spack module tcl refresh -y
26-
spack stack setup-meta-modules
27-
spack env deactivate
40+
spack stack create env --name ue-oneapi-2024.2.0 --template unified-dev --site nas --compiler oneapi
41+
cd envs/ue-oneapi-2024.2.0
2842
```
2943

30-
## gcc
44+
### GCC
45+
46+
To create the GCC environment, do:
3147

3248
```
33-
cd spack-stack-1.9.1
34-
. setup.sh
3549
spack stack create env --name ue-gcc-12.3.0 --template unified-dev --site nas --compiler gcc
3650
cd envs/ue-gcc-12.3.0
51+
```
52+
53+
## Activate environment
54+
55+
Now enter the spack environment you just created:
56+
57+
```
3758
spack env activate .
59+
```
60+
61+
NOTE: You need to make sure you do this in *any* terminal where you want to do any commmand
62+
below with this environment.
63+
64+
## Concretize and create source cache
65+
66+
```
3867
spack concretize 2>&1 | tee log.concretize
39-
spack install --verbose --fail-fast --show-log-on-error --no-check-signature 2>&1 | tee log.install
68+
```
69+
70+
## Create source cache (LOGIN NODE ONLY)
71+
72+
Because this step downloads all the source code for all packages and all versions, it
73+
should be done on a login node with internet access.
74+
75+
```
76+
spack mirror create -a -d /nobackup/gmao_SIteam/spack-stack/source-cache
77+
```
78+
79+
NOTE: Make sure you are in an environment when you run that `spack mirror create` command. Otherwise,
80+
you will download *EVERY* package and *EVERY* version in spack!
81+
82+
## Install packages
83+
84+
Our install process will actually have (at least) three steps. This is because of the `crtm` package
85+
which requires internet access at build time.
86+
87+
### Install crtm dependencies (COMPUTE NODE)
88+
89+
```
90+
spack install -j 10 --verbose --fail-fast --show-log-on-error --no-check-signature --only dependencies crtm 2>&1 | tee log.install.crtm_dependencies
91+
```
92+
93+
### Install crtm (LOGIN NODE)
94+
95+
```
96+
spack install -j 2 --verbose --fail-fast --show-log-on-error --no-check-signature crtm 2>&1 | tee log.install.crtm
97+
```
98+
99+
Note we are only using 2 processes here because NAS limits you to 2 processes on a login node.
100+
101+
### Install rest of packages (COMPUTE NODE)
102+
103+
```
104+
spack install -j 10 --verbose --fail-fast --show-log-on-error --no-check-signature 2>&1 | tee log.install.after_crtm
40105
```
41106

42107
NOTE: You might need to run the `spack install` command multiple times because sometimes
43108
it just fails. But then you run it more and more and it will eventually succeed.
44109

110+
### Packages needing internet access to build
111+
112+
If you encounter other packages that need internet access to build, you can install them with:
113+
114+
```
115+
spack install -j 2 --verbose --fail-fast --show-log-on-error --no-check-signature <package> |& tee log.install.<package>
116+
```
117+
118+
Then, once that package is built, you can go back to the compute node and run the `spack install` command again.
119+
120+
## Update module files and setup meta-modules
121+
45122
```
46123
spack module tcl refresh -y
47124
spack stack setup-meta-modules
125+
```
126+
127+
## Deactivate environment
128+
129+
```
48130
spack env deactivate
49131
```

configs/sites/tier1/nas/packages.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,18 @@ packages:
4040
externals:
4141
- spec: gawk@4.2.1
4242
prefix: /usr
43+
gh:
44+
externals:
45+
- spec: gh@2.78.0
46+
prefix: /nobackup/gmao_SIteam/gh/2.78.0
4347
git:
4448
externals:
4549
- spec: git@2.43.5~tcltk
4650
prefix: /usr
51+
git-lfs:
52+
externals:
53+
- spec: git-lfs@3.7.0
54+
prefix: /nobackup/gmao_SIteam/git-lfs/3.7.0
4755
gmake:
4856
externals:
4957
- spec: gmake@4.2.1
Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,29 @@
11
# Provisiong ParallelWorks AWS clusters
22

3-
## Steps to perform before installing spack-stack version 1.9.2
3+
## Steps to perform before installing spack-stack version 1.9.3
44

55
sudo su -
66
chmod 777 /contrib
77
yum install -y qt5-qtbase-devel
88
yum install -y qt5-qtsvg-devel
99

1010

11-
## Steps to install spack-stack version 1.9.2
11+
## Steps to install spack-stack version 1.8.0
1212

1313
sudo su -
1414
chmod 777 /contrib
1515

1616
module purge
17-
module unuse /opt/cray/craype/default/modulefiles
18-
module unuse /opt/cray/modulefiles
19-
### For noaa-aws, run the line below as well:
20-
module unuse /opt/intel/impi/2019.5.281/intel64/modulefiles
21-
module load gnu
22-
module load intel/2024.2.1
23-
module load impi/2024.2.1
24-
module unload gnu
2517

2618
cd /contrib/spack-stack-rocky8/
27-
git clone --recursive https://github.com/JCSDA/spack-stack -b release/1.9.0 spack-stack-1.9.2
28-
cd spack-stack-1.9.2
19+
git clone --recursive https://github.com/JCSDA/spack-stack -b release/1.9.0 spack-stack-1.9.3
20+
cd spack-stack-1.9.3
2921
. setup.sh
3022
spack stack create env --name ue-oneapi-2024.2.1 --template unified-dev --site noaa-aws --compiler oneapi
3123
cd envs/ue-oneapi-2024.2.1
3224
spack env activate .
3325
spack concretize 2>&1 | tee log.concretize
34-
spack install --verbose 2>&1 | tee log.install
26+
spack install --verbose --fail-fast --show-log-on-error --no-check-signature 2>&1 | tee log.install
3527
spack module lmod refresh -y
3628
spack stack setup-meta-modules
3729

@@ -40,12 +32,12 @@ spack stack setup-meta-modules
4032
sudo su -
4133
chmod 777 /contrib
4234

43-
cd /contrib/spack-stack-rocky8/spack-stack-1.9.2
35+
cd /contrib/spack-stack-rocky8/spack-stack-1.9.3
4436
. setup.sh
45-
spack stack create env --name gsi-oneapi-2024.2.1 --template gsi-addon-dev --site noaa-aws --upstream /contrib/spack-stack-rocky8/spack-stack-1.9.2/envs/ue-intel-2024.2.1/install --compiler intel
37+
spack stack create env --name gsi-oneapi-2024.2.1 --template gsi-addon-dev --site noaa-aws --upstream /contrib/spack-stack-rocky8/spack-stack-1.9.3/envs/ue-oneapi-2024.2.1/install --compiler oneapi
4638
cd envs/gsi-oneapi-2024.2.1
4739
spack env activate .
4840
spack concretize 2>&1 | tee log.concretize
49-
spack install --verbose 2>&1 | tee log.install
41+
spack install --verbose --fail-fast --show-log-on-error --no-check-signature 2>&1 | tee log.install
5042
spack module lmod refresh --upstream-modules
5143
spack stack setup-meta-modules
Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,29 @@
11
# Provisiong ParallelWorks Azure clusters
22

3-
## Steps to perform before installing spack-stack version 1.9.2
3+
## Steps to perform before installing spack-stack version 1.9.3
44

55
sudo su -
66
chmod 777 /contrib
77
yum install -y qt5-qtbase-devel
88
yum install -y qt5-qtsvg-devel
99

1010

11-
## Steps to install spack-stack version 1.9.2
11+
## Steps to install spack-stack version 1.8.0
1212

1313
sudo su -
1414
chmod 777 /contrib
1515

1616
module purge
17-
module unuse /opt/cray/craype/default/modulefiles
18-
module unuse /opt/cray/modulefiles
19-
module load gnu
20-
module load intel/2024.2.1
21-
module load impi/2024.2.1
22-
module unload gnu
2317

2418
cd /contrib/spack-stack-rocky8/
25-
git clone --recursive https://github.com/JCSDA/spack-stack -b release/1.9.0 spack-stack-1.9.2
26-
cd spack-stack-1.9.2
19+
git clone --recursive https://github.com/JCSDA/spack-stack -b release/1.9.0 spack-stack-1.9.3
20+
cd spack-stack-1.9.3
2721
. setup.sh
2822
spack stack create env --name ue-oneapi-2024.2.1 --template unified-dev --site noaa-azure --compiler oneapi
29-
cd envs/ue-intel-2024.2.1
23+
cd envs/ue-oneapi-2024.2.1
3024
spack env activate .
3125
spack concretize 2>&1 | tee log.concretize
32-
spack install --verbose 2>&1 | tee log.install
26+
spack install --verbose --fail-fast --show-log-on-error --no-check-signature 2>&1 | tee log.install
3327
spack module lmod refresh -y
3428
spack stack setup-meta-modules
3529

@@ -38,12 +32,12 @@ spack stack setup-meta-modules
3832
sudo su -
3933
chmod 777 /contrib
4034

41-
cd /contrib/spack-stack-rocky8/spack-stack-1.9.2
35+
cd /contrib/spack-stack-rocky8/spack-stack-1.9.3
4236
. setup.sh
43-
spack stack create env --name gsi-oneapi-2024.2.1 --template gsi-addon-dev --site noaa-azure --upstream /contrib/spack-stack-rocky8/spack-stack-1.9.2/envs/ue-oneapi-2024.2.1/install --compiler oneapi
37+
spack stack create env --name gsi-oneapi-2024.2.1 --template gsi-addon-dev --site noaa-azure --upstream /contrib/spack-stack-rocky8/spack-stack-1.9.3/envs/ue-oneapi-2024.2.1/install --compiler oneapi
4438
cd envs/gsi-oneapi-2024.2.1
4539
spack env activate .
4640
spack concretize 2>&1 | tee log.concretize
47-
spack install --verbose 2>&1 | tee log.install
41+
spack install --verbose --fail-fast --show-log-on-error --no-check-signature 2>&1 | tee log.install
4842
spack module lmod refresh --upstream-modules
4943
spack stack setup-meta-modules

0 commit comments

Comments
 (0)