1
- name : CI test to build the CCPP-SCM on ubuntu v22.04
1
+ name : build the CCPP-SCM with Nvidia
2
2
3
3
on : [pull_request,workflow_dispatch]
4
4
5
5
jobs :
6
6
7
7
build_scm :
8
8
# The type of runner that the job will run on
9
- runs-on : ubuntu-22.04
9
+ runs-on : ubuntu-latest
10
10
strategy :
11
11
fail-fast : false
12
12
matrix :
13
13
fortran-compiler : [nvfortran]
14
- build-type : [Release]#, Debug]
15
- enable-gpu-acc : [False, True]
16
- py-version : [3.7.13, 3.9.12 ]
14
+ build-type : [Release] # , Debug]
15
+ enable-gpu-acc : [False] # , True] # GPUs aren't available for testing
16
+ py-version : [3.11.7 ]
17
17
18
18
# Environmental variables
19
19
env :
@@ -74,13 +74,13 @@ jobs:
74
74
with :
75
75
python-version : ${{matrix.py-version}}
76
76
77
- - name : Add conda to system path
78
- run : |
79
- echo $CONDA/bin >> $GITHUB_PATH
77
+ # - name: Add conda to system path
78
+ # run: |
79
+ # echo $CONDA/bin >> $GITHUB_PATH
80
80
81
- - name : Install NetCDF Python libraries
82
- run : |
83
- conda install --yes -c conda-forge h5py>=3.4 netCDF4 f90nml
81
+ # - name: Install NetCDF Python libraries
82
+ # run: |
83
+ # conda install --yes -c conda-forge h5py>=3.4 netCDF4 f90nml
84
84
85
85
# ######################################################################################
86
86
# Install Nvidia.
@@ -90,35 +90,41 @@ jobs:
90
90
env :
91
91
NVCOMPILERS : /home/runner/hpc_sdk
92
92
NVARCH : Linux_x86_64
93
+ NVYEAR : 2025
94
+ NVVERSION : 25.1
95
+ CUDA_VERSION : 12.6
96
+ NVVERSION_PACKED : 251 # Manually take NVVERSION and remove . because funcationality not in actions
93
97
NVHPC_SILENT : true
94
98
NVHPC_INSTALL_DIR : /home/runner/hpc_sdk
95
99
NVHPC_INSTALL_TYPE : network
96
100
NVHPC_INSTALL_LOCAL_DIR : /home/runner/hpc_sdk
97
101
run : |
98
102
mkdir /home/runner/hpc_sdk && cd /home/runner/hpc_sdk
99
- wget -q https://developer.download.nvidia.com/hpc-sdk/24.1/nvhpc_2024_241_Linux_x86_64_cuda_12.3.tar.gz
100
- tar xpzf nvhpc_2024_241_Linux_x86_64_cuda_12.3.tar.gz
101
- nvhpc_2024_241_Linux_x86_64_cuda_12.3/install
102
- export PATH=${PATH}:${NVCOMPILERS}/${NVARCH}/24.1/compilers/bin
103
- export MANPATH=${MANPATH}:${NVCOMPILERS}/${NVARCH}/24.1/compilers/man
103
+ wget -q https://developer.download.nvidia.com/hpc-sdk/${NVVERSION}/nvhpc_${NVYEAR}_${NVVERSION_PACKED}_Linux_x86_64_cuda_${CUDA_VERSION}.tar.gz
104
+ tar xpzf nvhpc_${NVYEAR}_${NVVERSION_PACKED}_Linux_x86_64_cuda_${CUDA_VERSION}.tar.gz
105
+ ls
106
+ nvhpc_${NVYEAR}_${NVVERSION_PACKED}_Linux_x86_64_cuda_${CUDA_VERSION}/install
107
+ export PATH=${PATH}:${NVCOMPILERS}/${NVARCH}/${NVVERSION}/compilers/bin
108
+ export MANPATH=${MANPATH}:${NVCOMPILERS}/${NVARCH}/${NVVERSION}/compilers/man
104
109
echo "The nvfortran installed is:"
105
110
nvfortran --version
106
111
echo "The path to nvfortran is:"
107
112
command -v nvfortran
108
113
echo "Removing tarball"
109
- rm nvhpc_2024_241_Linux_x86_64_cuda_12.3.tar.gz
110
-
111
- - name : Set environment for Nvidia compiler.
112
- run : |
113
- echo "CC=/home/runner/hpc_sdk/Linux_x86_64/24.1/compilers/bin/nvc" >> $GITHUB_ENV
114
- echo "FC=/home/runner/hpc_sdk/Linux_x86_64/24.1/compilers/bin/nvfortran" >> $GITHUB_ENV
115
- echo "CMAKE_C_COMPILER=/home/runner/hpc_sdk/Linux_x86_64/24.1/compilers/bin/nvc" >> $GITHUB_ENV
116
- echo "CMAKE_Fortran_COMPILER=/home/runner/hpc_sdk/Linux_x86_64/24.1/compilers/bin/nvfortran" >> $GITHUB_ENV
114
+ rm nvhpc_${NVYEAR}_${NVVERSION_PACKED}_Linux_x86_64_cuda_${CUDA_VERSION}.tar.gz
115
+ echo "CC=/home/runner/hpc_sdk/Linux_x86_64/${NVVERSION}/compilers/bin/nvc" >> $GITHUB_ENV
116
+ echo "FC=/home/runner/hpc_sdk/Linux_x86_64/${NVVERSION}/compilers/bin/nvfortran" >> $GITHUB_ENV
117
+ echo "CMAKE_C_COMPILER=/home/runner/hpc_sdk/Linux_x86_64/${NVVERSION}/compilers/bin/nvc" >> $GITHUB_ENV
118
+ echo "CMAKE_Fortran_COMPILER=/home/runner/hpc_sdk/Linux_x86_64/${NVVERSION}/compilers/bin/nvfortran" >> $GITHUB_ENV
117
119
118
120
# ######################################################################################
119
121
# Install FORTRAN dependencies
120
122
# ######################################################################################
121
123
124
+ - name : Check space (pre dependency install)
125
+ run : |
126
+ df -h
127
+
122
128
- name : Install Curl and zlib
123
129
run : |
124
130
sudo apt-get update
@@ -142,6 +148,8 @@ jobs:
142
148
./configure --prefix=${HDF5_ROOT}
143
149
make -j
144
150
make install
151
+ cd ..
152
+ rm -rf hdf5-hdf5-1_14_1-2 hdf5-1_14_1-2.tar.gz
145
153
146
154
- name : Setup HDF5 Paths
147
155
run : |
@@ -175,6 +183,8 @@ jobs:
175
183
run : |
176
184
cd ${HOME}/openmpi-4.1.6
177
185
sudo make install -j
186
+ cd ..
187
+ rm -rf openmpi-4.1.6 openmpi-4.1.6.tar.gz
178
188
179
189
- name : Setup OpenMPI Paths
180
190
run : |
@@ -213,6 +223,8 @@ jobs:
213
223
CPPFLAGS="-I/home/runner/hdf5/include" LDFLAGS="-L/home/runner/hdf5/lib" ./configure --prefix=${NETCDF}
214
224
make
215
225
make install
226
+ cd ..
227
+ rm -rf netcdf-c-4.7.4 v4.7.4.tar.gz
216
228
217
229
- name : Install NetCDF Fortran library
218
230
if : steps.cache-netcdf.outputs.cache-hit != 'true'
@@ -223,6 +235,8 @@ jobs:
223
235
FCFLAGS="-fPIC" FFLAGS="-fPIC" CPPFLAGS="-I/home/runner/hdf5/include -I/home/runner/netcdf/include" LDFLAGS="-L/home/runner/hdf5/lib -L/home/runner/netcdf/lib" ./configure --prefix=${NETCDF}
224
236
make
225
237
make install
238
+ cd ..
239
+ rm -rf netcdf-fortran-4.6.1 v4.6.1.tar.gz
226
240
227
241
- name : Cache bacio library v2.4.1
228
242
id : cache-bacio-fortran
@@ -240,6 +254,8 @@ jobs:
240
254
make -j
241
255
make install
242
256
echo "bacio_DIR=/home/runner/bacio/lib/cmake/bacio" >> $GITHUB_ENV
257
+ cd ../../
258
+ rm -rf bacio
243
259
244
260
- name : Cache SP-library v2.3.3
245
261
id : cache-sp-fortran
@@ -257,6 +273,8 @@ jobs:
257
273
make -j
258
274
make install
259
275
echo "sp_DIR=/home/runner/NCEPLIBS-sp/lib/cmake/sp" >> $GITHUB_ENV
276
+ cd ../../
277
+ rm -rf NCEPLIBS-sp
260
278
261
279
- name : Cache w3emc library v2.9.2
262
280
id : cache-w3emc-fortran
@@ -274,6 +292,12 @@ jobs:
274
292
make -j
275
293
make install
276
294
echo "w3emc_DIR=/home/runner/myw3emc/lib/cmake/w3emc" >> $GITHUB_ENV
295
+ cd ../../
296
+ rm -rf NCEPLIBS-w3emc
297
+
298
+ - name : Check space (pre SCM build)
299
+ run : |
300
+ df -h
277
301
278
302
# ######################################################################################
279
303
# Build and run SCM regression tests (ccpp-scm/test/rt_test_cases.py)
@@ -290,16 +314,20 @@ jobs:
290
314
cd ${SCM_ROOT}/scm/bin
291
315
make -j
292
316
293
- - name : Download data for SCM
294
- if : contains(matrix.enable-gpu-acc, 'False')
317
+ - name : Check space (post SCM build)
295
318
run : |
296
- cd ${SCM_ROOT}
297
- ./contrib/get_all_static_data.sh
298
- ./contrib/get_thompson_tables.sh
299
- ./contrib/get_aerosol_climo.sh
319
+ df -h
300
320
301
- - name : Run SCM RTs (w/o GPU)
302
- if : contains(matrix.enable-gpu-acc, 'False')
303
- run : |
304
- cd ${SCM_ROOT}/scm/bin
305
- ./run_scm.py --file /home/runner/work/ccpp-scm/ccpp-scm/test/rt_test_cases.py --runtime_mult 0.1 -v
321
+ # - name: Download data for SCM
322
+ # if: contains(matrix.enable-gpu-acc, 'False')
323
+ # run: |
324
+ # cd ${SCM_ROOT}
325
+ # ./contrib/get_all_static_data.sh
326
+ # ./contrib/get_thompson_tables.sh
327
+ # ./contrib/get_aerosol_climo.sh
328
+
329
+ # - name: Run SCM RTs (w/o GPU)
330
+ # if: contains(matrix.enable-gpu-acc, 'False')
331
+ # run: |
332
+ # cd ${SCM_ROOT}/scm/bin
333
+ # ./run_scm.py --file /home/runner/work/ccpp-scm/ccpp-scm/test/rt_test_cases.py --runtime_mult 0.1 -v
0 commit comments