@@ -158,7 +158,7 @@ endif
158158ASKHYDRO:
159159
160160set DEFAULT_NON_HYDROSTATIC = @CFG_NONHYDROSTATIC@
161- echo " Do you wish to ${C1} NON-HYDROSTATIC${CN} dynamics? (Default: ${C2}${DEFAULT_NON_HYDROSTATIC}${CN} )"
161+ echo " Do you wish to run ${C1} NON-HYDROSTATIC${CN} dynamics? (Default: ${C2}${DEFAULT_NON_HYDROSTATIC}${CN} )"
162162
163163set DO_NONHYDRO = $<
164164if( .$DO_NONHYDRO == . ) then
@@ -237,46 +237,71 @@ ASKPROC:
237237if ( $SITE == ' NCCS' ) then
238238 echo " Enter the ${C1} Processor Type${CN} you wish to run on:"
239239 echo " ${C2} hasw (Haswell)${CN} (default)"
240- if (-e /etc/os-release) then
241- echo " ${C2} sky (Skylake)${CN} "
242- endif
240+ echo " ${C2} sky (Skylake)${CN} "
241+ # Keep Cascade Lake hidden until in general use
242+ # echo " ${C2}cas (Cascade Lake)${CN}"
243+ echo " "
243244 set MODEL = ` echo $< `
244245 set MODEL = ` echo $MODEL | tr " [:upper:]" " [:lower:]" `
245246 if ( .$MODEL == .) then
246247 set MODEL = ' hasw'
247248 endif
248249
249250 if( $MODEL ! = ' hasw' & \
250- $MODEL ! = ' sky' ) goto ASKPROC
251+ $MODEL ! = ' sky' & \
252+ $MODEL ! = ' cas' ) goto ASKPROC
251253
252254 if ( $MODEL == ' hasw' ) then
253255 set NCPUS_PER_NODE = 28
254256 else if ($MODEL == ' sky' ) then
255257 set NCPUS_PER_NODE = 40
258+ else if ($MODEL == ' cas' ) then
259+ set NCPUS_PER_NODE = 48
256260 endif
257261
258262else if ( $SITE == ' NAS' ) then
263+
264+ # At NAS, if you build on Rome, we currently limit you to run on
265+ # Rome; this is for two reasons. First, Romes are on SLES 15 and
266+ # if you build on SLES 15, you can only run on SLES 15. Second,
267+ # while a built-on-Rome GEOS might work on Intel processors, it
268+ # will (probably) have a different output than if built on Intel
269+ # due to different optimization flags. This would violate the GEOS
270+ # capability to get the same answers at NAS and NCCS
271+
272+ set BUILT_ON_ROME = @CFG_BUILT_ON_ROME@
273+
259274 echo " Enter the ${C1} Processor Type${CN} you wish to run on:"
260- echo " ${C2} has (Haswell)${CN} "
261- echo " ${C2} bro (Broadwell)${CN} "
262- echo " ${C2} sky (Skylake)${CN} (default)"
263- echo " ${C2} cas (Cascade Lake)${CN} "
264- echo " ${C2} rom (AMD Rome)${CN} "
265- echo " "
266- echo " NOTE: Due to how FV3 is compiled by default, Sandy Bridge"
267- echo " and Ivy Bridge are not supported by current GEOS"
275+ if( " $BUILT_ON_ROME " ! = " TRUE" ) then
276+ echo " ${C2} has (Haswell)${CN} "
277+ echo " ${C2} bro (Broadwell)${CN} "
278+ echo " ${C2} sky (Skylake)${CN} (default)"
279+ echo " ${C2} cas (Cascade Lake)${CN} "
280+ echo " "
281+ echo " NOTE: Due to how FV3 is compiled by default, Sandy Bridge"
282+ echo " and Ivy Bridge are not supported by current GEOS"
283+ else
284+ echo " ${C2} rom (AMD Rome)${CN} (default)"
285+ endif
268286 echo " "
269287 set MODEL = ` echo $< `
270288 set MODEL = ` echo $MODEL | tr " [:upper:]" " [:lower:]" `
271289 if ( .$MODEL == .) then
272- set MODEL = ' sky'
290+ if( " $BUILT_ON_ROME " ! = " TRUE" ) then
291+ set MODEL = ' sky'
292+ else
293+ set MODEL = ' rom'
294+ endif
273295 endif
274296
275- if( $MODEL ! = ' has' & \
276- $MODEL ! = ' bro' & \
277- $MODEL ! = ' sky' & \
278- $MODEL ! = ' cas' & \
279- $MODEL ! = ' rom' ) goto ASKPROC
297+ if( " $BUILT_ON_ROME " ! = " TRUE" ) then
298+ if( $MODEL ! = ' has' & \
299+ $MODEL ! = ' bro' & \
300+ $MODEL ! = ' sky' & \
301+ $MODEL ! = ' cas' ) goto ASKPROC
302+ else
303+ if( $MODEL ! = ' rom' ) goto ASKPROC
304+ endif
280305
281306 # Some processors have weird names at NAS
282307 # ---------------------------------------
@@ -602,12 +627,10 @@ EOF
602627else if( $MPI == mvapich2 ) then
603628
604629cat > $EXPDIR /SETENV.commands << EOF
605- #setenv MV2_ON_DEMAND_THRESHOLD 8192
606- #setenv MV2_USE_SHMEM_ALLREDUCE 0
607- #setenv MV2_USE_SHMEM_COLL 0
608- #setenv MV2_USE_UD_HYBRID 0
609630 setenv MV2_ENABLE_AFFINITY 0
610631 setenv SLURM_DISTRIBUTION block
632+ setenv MV2_MPIRUN_TIMEOUT 100
633+ setenv MV2_GATHERV_SSEND_THRESHOLD 256
611634EOF
612635
613636else if( $MPI == mpt ) then
@@ -625,6 +648,8 @@ cat > $EXPDIR/SETENV.commands << EOF
625648 setenv MPI_XPMEM_ENABLED yes
626649 unsetenv SUPPRESS_XPMEM_TRIM_THRESH
627650
651+ setenv MPI_LAUNCH_TIMEOUT 40
652+
628653 # For some reason, PMI_RANK is randomly set and interferes
629654 # with binarytile.x and other executables.
630655 unsetenv PMI_RANK
@@ -641,16 +666,29 @@ else if( $MPI == intelmpi ) then
641666
642667cat > $EXPDIR /SETENV.commands << EOF
643668#setenv MPS_STAT_LEVEL 4
669+ setenv I_MPI_ADJUST_ALLREDUCE 12
670+ setenv I_MPI_ADJUST_GATHERV 3
671+
672+ # This flag prints out the Intel MPI state. Uncomment if needed
673+ #setenv I_MPI_DEBUG 9
674+ EOF
675+
676+ # These are options determined to be useful at NCCS
677+ # Not setting generally as they are more fabric/cluster
678+ # specific compared to the above adjustments
679+ if ( $SITE == ' NCCS' ) then
680+
681+ cat >> $EXPDIR /SETENV.commands << EOF
682+ setenv I_MPI_SHM_HEAP_VSIZE 512
644683setenv PSM2_MEMORY large
645684setenv PSM2_PATH_SELECTION adaptive
646- setenv I_MPI_ADJUST_GATHERV 3
647- setenv I_MPI_ADJUST_ALLREDUCE 12
648685setenv I_MPI_EXTRA_FILESYSTEM 1
649686setenv I_MPI_EXTRA_FILESYSTEM_FORCE gpfs
650687setenv ROMIO_FSTYPE_FORCE "gpfs:"
651- #setenv I_MPI_DEBUG 6
652688EOF
653689
690+ endif # if NCCS
691+
654692endif # if mpi
655693
656694# ######################################################################
0 commit comments