Skip to content

Commit 8a6a6c6

Browse files
authored
Merge pull request #257 from GEOS-ESM/develop
Gitflow: Merge Develop into main for release
2 parents 32b7768 + 8a1f14d commit 8a6a6c6

File tree

1 file changed

+55
-22
lines changed

1 file changed

+55
-22
lines changed

scripts/fv3_setup

Lines changed: 55 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -306,29 +306,51 @@ endif
306306
ASKPROC:
307307

308308
if ( $SITE == 'NCCS' ) then
309-
echo "Enter the ${C1}Processor Type${CN} you wish to run on:"
310-
echo " ${C2}sky (Skylake)${CN}"
311-
echo " ${C2}cas (Cascade Lake)${CN} (default)"
312-
echo " "
313-
set MODEL = `echo $<`
314-
set MODEL = `echo $MODEL | tr "[:upper:]" "[:lower:]"`
315-
if ( .$MODEL == .) then
316-
set MODEL = 'cas'
317-
endif
318309

319-
if( $MODEL != 'sky' & \
320-
$MODEL != 'cas' ) goto ASKPROC
310+
set BUILT_ON_SLES15 = @BUILT_ON_SLES15@
321311

322-
if ($MODEL == 'sky') then
323-
set NCPUS_PER_NODE = 40
324-
else if ($MODEL == 'cas') then
325-
# NCCS currently recommends that users do not run with
326-
# 48 cores per node on SCU16 due to OS issues and
327-
# recommends that CPU-intensive works run with 46 or less
328-
# cores. As 45 is a multiple of 3, it's the best value
329-
# that doesn't waste too much
330-
#set NCPUS_PER_NODE = 48
331-
set NCPUS_PER_NODE = 45
312+
if ("$BUILT_ON_SLES15" == "TRUE") then
313+
set DEFAULT_MODEL = 'mil'
314+
echo "Enter the ${C1}Processor Type${CN} you wish to run on:"
315+
echo " ${C2}mil (Milan)${CN} (default)"
316+
echo " "
317+
set MODEL = `echo $<`
318+
set MODEL = `echo $MODEL | tr "[:upper:]" "[:lower:]"`
319+
if ( .$MODEL == .) then
320+
set MODEL = 'mil'
321+
endif
322+
323+
if( $MODEL != 'mil' ) goto ASKPROC
324+
325+
if ($MODEL == 'mil') then
326+
# We save a couple processes for the kernel
327+
set NCPUS_PER_NODE = 126
328+
endif
329+
else
330+
echo "Enter the ${C1}Processor Type${CN} you wish to run on:"
331+
echo " ${C2}sky (Skylake)${CN}"
332+
echo " ${C2}cas (Cascade Lake)${CN} (default)"
333+
echo " "
334+
set MODEL = `echo $<`
335+
set MODEL = `echo $MODEL | tr "[:upper:]" "[:lower:]"`
336+
if ( .$MODEL == .) then
337+
set MODEL = 'cas'
338+
endif
339+
340+
if( $MODEL != 'sky' & \
341+
$MODEL != 'cas' ) goto ASKPROC
342+
343+
if ($MODEL == 'sky') then
344+
set NCPUS_PER_NODE = 40
345+
else if ($MODEL == 'cas') then
346+
# NCCS currently recommends that users do not run with
347+
# 48 cores per node on SCU16 due to OS issues and
348+
# recommends that CPU-intensive works run with 46 or less
349+
# cores. As 45 is a multiple of 3, it's the best value
350+
# that doesn't waste too much
351+
#set NCPUS_PER_NODE = 48
352+
set NCPUS_PER_NODE = 45
353+
endif
332354
endif
333355

334356
else if ( $SITE == 'NAS' ) then
@@ -708,7 +730,7 @@ EOF
708730
# The below settings seem to be recommended for hybrid
709731
# systems using MVAPICH2 but could change
710732

711-
else if( $MPI == mvapich2 ) then
733+
else if( $MPI == mvapich ) then
712734

713735
cat > $EXPDIR/SETENV.commands << EOF
714736
setenv MV2_ENABLE_AFFINITY 0
@@ -778,6 +800,17 @@ EOF
778800

779801
endif # if NOT Singularity
780802

803+
# Testing on SLES15 showed that the mlx provider did not seem
804+
# to work at scale. So we move to use the verbs provider. Note:
805+
# still seems to have issues at c720
806+
if ("$BUILT_ON_SLES15" == "TRUE") then
807+
cat >> $EXPDIR/SETENV.commands << EOF
808+
setenv I_MPI_OFI_PROVIDER verbs
809+
setenv I_MPI_COLL_EXTERNAL 0
810+
EOF
811+
812+
endif # if SLES15
813+
781814
endif # if NCCS
782815

783816
endif # if mpi

0 commit comments

Comments
 (0)