Skip to content

Commit dacb6c7

Browse files
Merge branch 'JCSDA:develop' into develop
2 parents 2136fc9 + 3196ed9 commit dacb6c7

File tree

97 files changed

+2368
-580
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+2368
-580
lines changed

.github/actions/Nightly_07_Cleanup/action.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ runs:
88
run: |
99
RUNID=$(<RUNID_SAVE.log)
1010
cd util/weekly_build
11-
./05_BuildCache.sh ${RUNID} ${BASEDIR} ${PLATFORM}
11+
./07_Cleanup.sh ${RUNID} ${BASEDIR} ${PLATFORM}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Nightly 08 Scrubber
2+
3+
runs:
4+
using: "composite"
5+
steps:
6+
- name: Nightly 08 Scrubber
7+
shell: bash
8+
run: |
9+
cd ${BASEDIR}
10+
pwd
11+
# Avoid BASEDIR being deleted
12+
touch .
13+
# Search for files older than 7 days in in directories 202YMMDD
14+
for dir in 202?????; do
15+
echo "Scrubbing files older than 7 days in directory ${dir} ..."
16+
find ./${dir} -type f -mtime +7 -print0 | xargs -0 rm -f || true
17+
done
18+
# Search for empty directories older than 7 days in in directories 202YMMDD
19+
for dir in 202?????; do
20+
echo "Scrubbing empty directories older than 7 days in directory ${dir} ..."
21+
find ./${dir} -type d -mtime +7 -empty -print0 | xargs -0 rmdir || true
22+
done

configs/common/modules_lmod.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ modules:
234234
environment:
235235
set:
236236
'WGRIB2_INC': '{prefix}/include'
237-
'WGRIB2_LIB': '{prefix}/lib/libwgrib2.a'
237+
'WGRIB2_LIB': '{prefix}/lib64/libwgrib2.so'
238238
'WGRIB2': '{prefix}/bin/wgrib2'
239239
wrf-io:
240240
environment:

configs/common/modules_tcl.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ modules:
236236
environment:
237237
set:
238238
'WGRIB2_INC': '{prefix}/include'
239-
'WGRIB2_LIB': '{prefix}/lib/libwgrib2.a'
239+
'WGRIB2_LIB': '{prefix}/lib64/libwgrib2.so'
240240
'WGRIB2': '{prefix}/bin/wgrib2'
241241
wrf-io:
242242
environment:

configs/common/packages.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,13 @@ packages:
7171
- any_of: ['fflags="-fp-model precise" cxxflags="-fp-model precise"']
7272
when: "%intel"
7373
message: "Extra ESMF compile options for Intel"
74+
- '+python'
7475
#- any_of: ['']
7576
# when: "%gcc"
7677
# message: "Extra ESMF compile options for GCC"
7778
#- any_of: ['']
7879
# when: "%apple-clang"
7980
# message: "Extra ESMF compile options for GCC"
80-
prefer:
81-
- '+python'
8281
# To avoid duplicate packages (concretizer bug?)
8382
expat:
8483
require:
@@ -104,7 +103,7 @@ packages:
104103
require:
105104
- '@3.5.1'
106105
g2c:
107-
require: '@1.6.4'
106+
require: '@2.1.0'
108107
g2tmpl:
109108
require:
110109
- '@1.13.0'
@@ -139,7 +138,7 @@ packages:
139138
hdf-eos2:
140139
require: '@2.20v1.00'
141140
ip:
142-
require: '@5.1.0 precision=4,d,8'
141+
require: '@5.3.0 precision=4,d,8'
143142
ip2:
144143
require: '@1.1.2'
145144
jasper:
@@ -300,7 +299,7 @@ packages:
300299
# See macOS site config for wgrib2 version/variant overrides
301300
wgrib2:
302301
require:
303-
- '@3.5.0'
302+
- '@3.6.0'
304303
wrf-io:
305304
require: '@1.2.0'
306305
zstd:
Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
spack:
2+
concretizer:
3+
unify: true
4+
5+
config:
6+
checksum: false
7+
build_jobs: 2
8+
connect_timeout: 60
9+
10+
compilers:
11+
- compiler:
12+
spec: gcc@11.4.0
13+
paths:
14+
cc: /usr/bin/gcc
15+
cxx: /usr/bin/g++
16+
f77: /usr/bin/gfortran
17+
fc: /usr/bin/gfortran
18+
flags: {}
19+
operating_system: ubuntu24.04
20+
modules: []
21+
environment: {}
22+
extra_rpaths: []
23+
24+
# Basic package config from configs/common/packages.yaml
25+
# Additional package config for container
26+
packages:
27+
all:
28+
require: '%gcc'
29+
target: [x86_64]
30+
providers:
31+
mpi: [openmpi@5.0.5]
32+
compiler: [gcc@11.4.0]
33+
gcc:
34+
buildable: false
35+
externals:
36+
- spec: gcc@11.4.0
37+
prefix: /usr
38+
gcc-runtime:
39+
buildable: false
40+
externals:
41+
- spec: gcc-runtime@11.4.0
42+
prefix: /usr
43+
diffutils:
44+
buildable: false
45+
externals:
46+
- spec: diffutils@3.8
47+
prefix: /usr
48+
git:
49+
buildable: false
50+
externals:
51+
- spec: git@2.34.1~tcltk
52+
prefix: /usr
53+
git-lfs:
54+
buildable: false
55+
externals:
56+
- spec: git-lfs@3.0.2
57+
prefix: /usr
58+
llvm:
59+
buildable: false
60+
externals:
61+
- spec: llvm@14.0.6
62+
prefix: /usr
63+
mysql:
64+
buildable: false
65+
externals:
66+
- spec: mysql@8.0.40
67+
prefix: /usr
68+
qt:
69+
buildable: false
70+
externals:
71+
- spec: qt@5.15.3
72+
prefix: /usr
73+
version: [5.15.3]
74+
wget:
75+
buildable: false
76+
externals:
77+
- spec: wget@1.21.2
78+
prefix: /usr
79+
80+
specs: []
81+
82+
container:
83+
84+
# Select the format of the recipe e.g. docker,
85+
# singularity or anything else that is currently supported
86+
format: docker
87+
# How to use:
88+
#$ spack containerize > Dockerfile
89+
#$ sudo docker build -t myimage .
90+
#$ sudo docker run -it myimage
91+
92+
#format: singularity
93+
# How to use:
94+
#$ spack containerize > singularity.def
95+
#$ sudo singularity build singularity.sif singularity.def
96+
97+
# Sets the base images for the stages where Spack builds the
98+
# software or where the software gets installed after being built..
99+
images:
100+
os: ubuntu:24.04
101+
spack:
102+
url: https://github.com/jcsda/spack
103+
ref: spack-stack-dev
104+
resolve_sha: true
105+
106+
# Whether or not to strip binaries
107+
strip: false
108+
109+
## Additional system packages that are needed at runtime
110+
os_packages:
111+
build:
112+
- bc
113+
- cpp-11
114+
- g++-11
115+
- gcc-11
116+
- gfortran-11
117+
- git
118+
- git-lfs
119+
- llvm-14
120+
- make
121+
- mysql-server
122+
- qtbase5-dev
123+
- qt5-qmake
124+
- libqt5svg5-dev
125+
- qt5dxcb-plugin
126+
- wget
127+
128+
final:
129+
- bc
130+
- cpp-11
131+
- g++-11
132+
- gcc-11
133+
- gfortran-11
134+
- git
135+
- git-lfs
136+
- llvm-14
137+
- make
138+
- mysql-server
139+
- qtbase5-dev
140+
- qt5-qmake
141+
- libqt5svg5-dev
142+
- qt5dxcb-plugin
143+
- wget
144+
- ca-certificates
145+
- curl
146+
- file
147+
- gnupg2
148+
- iproute2
149+
- locales
150+
- unzip
151+
- vim
152+
- nano
153+
- less
154+
155+
# Extra instructions
156+
extra_instructions:
157+
pre_build: |
158+
# Copy the spack-stack extension repo into the spack code
159+
COPY spack-ext-SPACK_STACK_HASH/repos/spack-stack $SPACK_ROOT/var/spack/repos/spack-stack
160+
# Register spack-stack extension repo
161+
RUN spack repo add $SPACK_ROOT/var/spack/repos/spack-stack --scope defaults && \
162+
update-alternatives --remove-all cpp && \
163+
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-11 100 && \
164+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100 && \
165+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 && \
166+
update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-11 100 && \
167+
# Needed by py-llvmlite
168+
update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-14 100
169+
pre_final: |
170+
# Set environment variables for installing tzdata
171+
ENV DEBIAN_FRONTEND=noninteractive
172+
ENV TZ=Etc/UTC
173+
ENV CC=gcc
174+
ENV CXX=g++
175+
ENV FC=gfortran
176+
build: |
177+
# Put output of spack find into a file
178+
RUN cd /opt/spack-environment && \
179+
spack env activate -d . && \
180+
spack find 2>&1 | tee /root/spack_find.out
181+
final: |
182+
# Copy spack find output from builder
183+
COPY --from=builder /root/spack_find.out /root/spack_find.out
184+
# Make a non-root user:nonroot / group:nonroot for running MPI
185+
RUN useradd -U -k /etc/skel -s /bin/bash -d /home/nonroot -m nonroot --uid 43891 && \
186+
echo "ulimit -s unlimited" >> /home/nonroot/.bashrc && \
187+
echo "ulimit -v unlimited" >> /home/nonroot/.bashrc && \
188+
echo "export CC=gcc" >> /home/nonroot/.bashrc && \
189+
echo "export CXX=g++" >> /home/nonroot/.bashrc && \
190+
echo "export FC=gfortran" >> /home/nonroot/.bashrc && \
191+
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-11 100 && \
192+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100 && \
193+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 && \
194+
update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-11 100 && \
195+
# Needed by py-llvmlite
196+
update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-14 100 && \
197+
printf "[credential]\n helper = cache --timeout=7200\n" >> /home/nonroot/.gitconfig && \
198+
mkdir /home/nonroot/.pmix && \
199+
echo "rmaps_default_mapping_policy=:oversubscribe" >> /home/nonroot/.pmix/mca-params.conf && \
200+
chown -R nonroot:nonroot /home/nonroot/.gitconfig /home/nonroot/.pmix
201+
# Replicate settings for root user
202+
RUN echo "ulimit -s unlimited" >> /root/.bashrc && \
203+
echo "ulimit -v unlimited" >> /root/.bashrc && \
204+
echo "export CC=gcc" >> /root/.bashrc && \
205+
echo "export CXX=g++" >> /root/.bashrc && \
206+
echo "export FC=gfortran" >> /root/.bashrc && \
207+
printf "[credential]\n helper = cache --timeout=7200\n" >> /root/.gitconfig && \
208+
mkdir /root/.pmix && \
209+
echo "rmaps_default_mapping_policy=:oversubscribe" >> /root/.pmix/mca-params.conf
210+
# Also set necessary environment variables for openmpi and jedi-cmake.
211+
RUN echo "export OMPI_ALLOW_RUN_AS_ROOT=1" >> /root/.bashrc && \
212+
echo "export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1" >> /root/.bashrc && \
213+
echo "export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe" >> /root/.bashrc && \
214+
echo "export jedi_cmake_ROOT=$(ls -d /opt/software/linux-ubuntu*/gcc-*/jedi-cmake-*)" >> /root/.bashrc
215+
216+
# Labels for the image
217+
labels:
218+
app: ""
219+
mpi: "openmpi"

configs/containers/docker-ubuntu-oneapi-impi.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ spack:
9797
icu4c:
9898
require:
9999
- '%gcc'
100+
intel-oneapi-runtime:
101+
buildable: false
102+
externals:
103+
- spec: intel-oneapi-runtime@2024.2.1%oneapi@2024.2.1
104+
prefix: /opt/intel/oneapi
100105
intel-oneapi-mkl:
101106
buildable: false
102107
externals:

configs/containers/specs/jedi-ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
gsibec@1.2.1,
2525
hdf@4.2.15,
2626
hdf5@1.14.3,
27-
ip@5.1.0,
27+
ip@5.3.0,
2828
jasper@2.0.32,
2929
jedi-cmake@1.4.0,
3030
libpng@1.6.37,

configs/sites/tier1/acorn/packages.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,3 @@
4141
externals:
4242
- spec: grep@3.1
4343
prefix: /usr
44-
netcdf-c:
45-
require:: '@4.9.2 +dap +mpi ~parallel-netcdf ~szip ~parallel_tests build_system=autotools'
46-
netcdf-fortran:
47-
require:: '@4.6.1 ~parallel_tests'

configs/sites/tier1/acorn/packages_intel.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
- libfabric
1717
- craype-network-ofi
1818
- cray-mpich/8.1.9
19+
- cray-pals
1920
intel-oneapi-mkl:
2021
# Remove buildable: False and configure+uncomment externals section below to use intel-oneapi-mkl
2122
buildable: False
@@ -32,8 +33,7 @@
3233
py-numpy:
3334
require::
3435
- '^[virtuals=lapack,blas] openblas'
35-
- '@1.26'
36-
- '%gcc'
36+
- '@1.26 %gcc'
3737
# *DH
3838
eckit:
3939
require:

0 commit comments

Comments
 (0)