Skip to content

Commit 89b56ef

Browse files
authored
Merge pull request #771 from GEOS-ESM/feature/v11-intelmpi-nas
2 parents 7aba790 + 8db73ce commit 89b56ef

File tree

8 files changed

+79
-230
lines changed

8 files changed

+79
-230
lines changed

.github/workflows/push-to-develop.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
steps:
1313
- name: Checkout repo
14-
uses: actions/checkout@v4
14+
uses: actions/checkout@v5
1515
with:
1616
fetch-depth: 0
1717
filter: blob:none

.github/workflows/spack-ci.yml

Lines changed: 0 additions & 123 deletions
This file was deleted.

.github/workflows/validate_yaml_files.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- name: Checkout repo
19-
uses: actions/checkout@v4
19+
uses: actions/checkout@v5
2020
with:
2121
fetch-depth: 0
2222
filter: blob:none

.github/workflows/workflow.yml

Lines changed: 17 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -17,69 +17,21 @@ concurrency:
1717

1818
jobs:
1919
build_gcm:
20-
name: Build GEOSgcm
21-
if: "!contains(github.event.pull_request.labels.*.name, '0 diff trivial')"
22-
runs-on: ubuntu-24.04
23-
container:
24-
image: gmao/ubuntu24-geos-env:v7.33.0-intelmpi_2021.13-ifort_2021.13
25-
# Per https://github.com/actions/virtual-environments/issues/1445#issuecomment-713861495
26-
# It seems like we might not need secrets on GitHub Actions which is good for forked
27-
# pull requests
28-
#credentials:
29-
#username: ${{ secrets.DOCKERHUB_USERNAME }}
30-
#password: ${{ secrets.DOCKERHUB_TOKEN }}
20+
strategy:
21+
matrix:
22+
compiler: [ifort, gfortran-14, gfortran-15]
23+
build-type: [Debug]
24+
uses: GEOS-ESM/CI-workflows/.github/workflows/geosgcm_build_tests.yml@project/geosgcm
25+
with:
26+
compiler: ${{ matrix.compiler }}
27+
cmake-build-type: ${{ matrix.build-type }}
28+
fixture-repo: GEOS-ESM/GEOSgcm
29+
30+
spack_build:
31+
uses: GEOS-ESM/CI-workflows/.github/workflows/spack_gcc_build.yml@project/geosgcm
32+
secrets:
33+
BUILDCACHE_USERNAME: ${{ secrets.BUILDCACHE_USERNAME }}
34+
BUILDCACHE_TOKEN: ${{ secrets.BUILDCACHE_TOKEN }}
35+
with:
36+
fixture-repo: GEOS-ESM/GEOSgcm
3137

32-
env:
33-
OMPI_ALLOW_RUN_AS_ROOT: 1
34-
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
35-
OMPI_MCA_btl_vader_single_copy_mechanism: none
36-
37-
steps:
38-
# https://github.com/orgs/community/discussions/25678#discussioncomment-5242449
39-
- name: Delete huge unnecessary tools folder
40-
run: rm -rf /opt/hostedtoolcache
41-
42-
- name: Checkout GCM
43-
uses: actions/checkout@v4
44-
with:
45-
fetch-depth: 1
46-
filter: blob:none
47-
repository: GEOS-ESM/GEOSgcm
48-
49-
- name: Set all directories as git safe
50-
run: |
51-
git config --global --add safe.directory '*'
52-
53-
- name: Versions etc.
54-
run: |
55-
ifort --version
56-
mpirun --version
57-
echo $BASEDIR
58-
59-
- name: Mepo clone external repos
60-
run: |
61-
mepo clone --partial blobless
62-
mepo status
63-
64-
- name: Mepo develop usual suspects
65-
run: |
66-
mepo develop GEOSgcm_GridComp GEOSgcm_App GMAO_Shared GEOS_Util
67-
mepo status
68-
69-
- name: Debug PR branch
70-
run: echo "PR is coming from ${{ github.event.pull_request.head.ref }}"
71-
72-
- name: Update other branches
73-
if: ${{ github.event.pull_request.head.ref != 'main' && github.event.pull_request.head.ref != 'develop' }}
74-
run: |
75-
mepo checkout-if-exists ${GITHUB_HEAD_REF}
76-
mepo status
77-
78-
- name: CMake
79-
run: |
80-
cmake -B build -S . --install-prefix=${pwd}/install -DCMAKE_Fortran_COMPILER=ifort -DCMAKE_BUILD_TYPE=Debug -DMPIEXEC_PREFLAGS='--oversubscribe' -DUSE_F2PY=OFF
81-
82-
- name: Build
83-
run: |
84-
cmake --build build -j 4
85-
cmake --install build

gcm_setup

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2258,16 +2258,12 @@ cat > $HOMDIR/SETENV.commands << EOF
22582258
#setenv I_MPI_DEBUG 9
22592259
EOF
22602260

2261-
# These are options determined to be useful at NCCS
2261+
# These are options determined to be useful at NCCS and NAS
22622262
# Not setting generally as they are more fabric/cluster
2263-
# specific compared to the above adjustments
2264-
if ( $SITE == 'NCCS' ) then
2265-
2266-
# Some flags we know work on SLES15 and Milan (see below)
2267-
# For safety, we keep the old SLES12 flags for that system
2268-
#
2269-
# NOTE: When Cascade Lake is on SLES15, the following flags
2270-
# might need to be Milan only
2263+
# specific compared to the above adjustments. We protect
2264+
# like this because these settings do *not* work on systems like
2265+
# CI runners
2266+
if ( $SITE == 'NCCS' | $SITE == 'NAS' ) then
22712267

22722268
cat >> $HOMDIR/SETENV.commands << EOF
22732269
setenv I_MPI_ADJUST_ALLREDUCE 12
@@ -2278,9 +2274,18 @@ setenv I_MPI_OFI_PROVIDER psm3
22782274
22792275
# This has been found to help with congestion
22802276
setenv FI_PSM3_CONN_TIMEOUT 120
2277+
2278+
# NOTE: If you are seeing oddities with Intel MPI
2279+
# and a -perhost/-ppn use, you might need to
2280+
# uncomment the below line
2281+
#
2282+
#setenv I_MPI_JOB_RESPECT_PROCESS_PLACEMENT disable
2283+
#
2284+
# This is usually needed when running interactively
2285+
# as SLURM/PBS in batch mode is usually fine with process placement
22812286
EOF
22822287

2283-
endif # if NCCS
2288+
endif # if NCCS or NAS
22842289

22852290
endif # if mpi
22862291

geoschemchem_setup

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2288,16 +2288,12 @@ cat > $HOMDIR/SETENV.commands << EOF
22882288
#setenv I_MPI_DEBUG 9
22892289
EOF
22902290

2291-
# These are options determined to be useful at NCCS
2291+
# These are options determined to be useful at NCCS and NAS
22922292
# Not setting generally as they are more fabric/cluster
2293-
# specific compared to the above adjustments
2294-
if ( $SITE == 'NCCS' ) then
2295-
2296-
# Some flags we know work on SLES15 and Milan (see below)
2297-
# For safety, we keep the old SLES12 flags for that system
2298-
#
2299-
# NOTE: When Cascade Lake is on SLES15, the following flags
2300-
# might need to be Milan only
2293+
# specific compared to the above adjustments. We protect
2294+
# like this because these settings do *not* work on systems like
2295+
# CI runners
2296+
if ( $SITE == 'NCCS' | $SITE == 'NAS' ) then
23012297

23022298
cat >> $HOMDIR/SETENV.commands << EOF
23032299
setenv I_MPI_ADJUST_ALLREDUCE 12
@@ -2308,9 +2304,18 @@ setenv I_MPI_OFI_PROVIDER psm3
23082304
23092305
# This has been found to help with congestion
23102306
setenv FI_PSM3_CONN_TIMEOUT 120
2307+
2308+
# NOTE: If you are seeing oddities with Intel MPI
2309+
# and a -perhost/-ppn use, you might need to
2310+
# uncomment the below line
2311+
#
2312+
#setenv I_MPI_JOB_RESPECT_PROCESS_PLACEMENT disable
2313+
#
2314+
# This is usually needed when running interactively
2315+
# as SLURM/PBS in batch mode is usually fine with process placement
23112316
EOF
23122317

2313-
endif # if NCCS
2318+
endif # if NCCS or NAS
23142319

23152320
endif # if mpi
23162321

gmichem_setup

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2460,16 +2460,12 @@ cat > $HOMDIR/SETENV.commands << EOF
24602460
#setenv I_MPI_DEBUG 9
24612461
EOF
24622462

2463-
# These are options determined to be useful at NCCS
2463+
# These are options determined to be useful at NCCS and NAS
24642464
# Not setting generally as they are more fabric/cluster
2465-
# specific compared to the above adjustments
2466-
if ( $SITE == 'NCCS' ) then
2467-
2468-
# Some flags we know work on SLES15 and Milan (see below)
2469-
# For safety, we keep the old SLES12 flags for that system
2470-
#
2471-
# NOTE: When Cascade Lake is on SLES15, the following flags
2472-
# might need to be Milan only
2465+
# specific compared to the above adjustments. We protect
2466+
# like this because these settings do *not* work on systems like
2467+
# CI runners
2468+
if ( $SITE == 'NCCS' | $SITE == 'NAS' ) then
24732469

24742470
cat >> $HOMDIR/SETENV.commands << EOF
24752471
setenv I_MPI_ADJUST_ALLREDUCE 12
@@ -2480,9 +2476,18 @@ setenv I_MPI_OFI_PROVIDER psm3
24802476
24812477
# This has been found to help with congestion
24822478
setenv FI_PSM3_CONN_TIMEOUT 120
2479+
2480+
# NOTE: If you are seeing oddities with Intel MPI
2481+
# and a -perhost/-ppn use, you might need to
2482+
# uncomment the below line
2483+
#
2484+
#setenv I_MPI_JOB_RESPECT_PROCESS_PLACEMENT disable
2485+
#
2486+
# This is usually needed when running interactively
2487+
# as SLURM/PBS in batch mode is usually fine with process placement
24832488
EOF
24842489

2485-
endif # if NCCS
2490+
endif # if NCCS or NAS
24862491

24872492
endif # if mpi
24882493

stratchem_setup

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2273,16 +2273,12 @@ cat > $HOMDIR/SETENV.commands << EOF
22732273
#setenv I_MPI_DEBUG 9
22742274
EOF
22752275

2276-
# These are options determined to be useful at NCCS
2276+
# These are options determined to be useful at NCCS and NAS
22772277
# Not setting generally as they are more fabric/cluster
2278-
# specific compared to the above adjustments
2279-
if ( $SITE == 'NCCS' ) then
2280-
2281-
# Some flags we know work on SLES15 and Milan (see below)
2282-
# For safety, we keep the old SLES12 flags for that system
2283-
#
2284-
# NOTE: When Cascade Lake is on SLES15, the following flags
2285-
# might need to be Milan only
2278+
# specific compared to the above adjustments. We protect
2279+
# like this because these settings do *not* work on systems like
2280+
# CI runners
2281+
if ( $SITE == 'NCCS' | $SITE == 'NAS' ) then
22862282

22872283
cat >> $HOMDIR/SETENV.commands << EOF
22882284
setenv I_MPI_ADJUST_ALLREDUCE 12
@@ -2293,9 +2289,18 @@ setenv I_MPI_OFI_PROVIDER psm3
22932289
22942290
# This has been found to help with congestion
22952291
setenv FI_PSM3_CONN_TIMEOUT 120
2292+
2293+
# NOTE: If you are seeing oddities with Intel MPI
2294+
# and a -perhost/-ppn use, you might need to
2295+
# uncomment the below line
2296+
#
2297+
#setenv I_MPI_JOB_RESPECT_PROCESS_PLACEMENT disable
2298+
#
2299+
# This is usually needed when running interactively
2300+
# as SLURM/PBS in batch mode is usually fine with process placement
22962301
EOF
22972302

2298-
endif # if NCCS
2303+
endif # if NCCS or NAS
22992304

23002305
endif # if mpi
23012306

0 commit comments

Comments
 (0)