Skip to content

Commit 6d5f939

Browse files
authored
Merge pull request #303 from GEOS-ESM/feature/mathomp4/v12-benchmark-fv3
2 parents 869d505 + 7eacf99 commit 6d5f939

File tree

3 files changed

+55
-92
lines changed

3 files changed

+55
-92
lines changed

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,12 @@ ecbuild_add_executable (
160160
SOURCES StandAlone_FV3_Dycore.F90
161161
LIBS ${this} OpenMP::OpenMP_Fortran)
162162

163+
find_package (JeMalloc)
164+
if(JeMalloc_FOUND)
165+
message(STATUS "JeMalloc found, using for StandAlone_FV3_Dycore.x")
166+
target_link_libraries (StandAlone_FV3_Dycore.x JeMalloc::JeMalloc)
167+
endif()
168+
163169
ecbuild_add_executable (
164170
TARGET rs_scale.x
165171
SOURCES rs_scale.F90

scripts/fv3.j

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ limit coredumpsize 0
2020
# Set Model Run Parameters
2121
#######################################################################
2222

23-
set NH = @USE_NONHYDRO
2423
set FV_NX = @FV_NX
2524
set FV_NY = @FV_NY
2625
set NX = $FV_NX
@@ -124,8 +123,8 @@ endif
124123
#######################################################################
125124

126125
setenv GEOSDIR @GEOSDIR
127-
setenv GEOSBIN @GEOSBIN
128-
setenv GEOSETC @GEOSETC
126+
setenv GEOSBIN ${GEOSDIR}/bin
127+
setenv GEOSETC ${GEOSDIR}/etc
129128

130129
set TAG = `cat $GEOSETC/.FV3_VERSION`
131130
set RUN_CMD = "$GEOSBIN/esma_mpirun -np "
@@ -151,7 +150,6 @@ module list
151150
setenv EXPDSC "c${AGCM_IM}_L${AGCM_LM}_T${N_TRACERS}_${NX}x${NY}_${N_OMP}threads"
152151
setenv EXPDIR @EXPDIR
153152
setenv SCRDIR $EXPDIR/scratch_${EXPID}_${EXETAG}-${FV3PRC}
154-
if ($NH) setenv SCRDIR ${SCRDIR}_NH.$$
155153

156154
#######################################################################
157155
# Create Experiment Scratch-Directory
@@ -314,30 +312,25 @@ PC@HIST_IMx@HIST_JM-DC.LM: @AGCM_LM
314312
::
315313
EOF
316314

317-
set hydrostatic='.true.'
318-
if ($NH) set hydrostatic='.false.'
319-
320315
set GRID_INPUT = "'INLINE'"
321316

322317
/bin/rm -f input.nml
323318
cat > input.nml << EOF
324319
&fv_core_nml
325-
npx = ${FV3_NPX}
326-
npy = ${FV3_NPX}
327-
npz = ${FV3_NPZ}
328-
adiabatic = .true.
329-
hydrostatic = ${hydrostatic}
330-
make_nh = .T.
331-
fv_debug = .F.
332-
fv_sg_adj = -1
333-
n_sponge = -1
334-
n_zfilter = 0
335-
compute_coords_locally = .false.
320+
npx = ${FV3_NPX}
321+
npy = ${FV3_NPX}
322+
npz = ${FV3_NPZ}
323+
adiabatic = .true.
324+
fv_debug = .F.
325+
range_warn = .F.
326+
fv_sg_adj = -1
327+
n_sponge = -1
328+
n_zfilter = 0
329+
compute_coords_locally = .false.
336330
/
337331
338332
&fv_grid_nml
339333
/
340-
# grid_file = $GRID_INPUT
341334
342335
&main_nml
343336
/
@@ -350,8 +343,10 @@ cat > input.nml << EOF
350343
/
351344
352345
&fms_nml
353-
print_memory_usage=.false.
354-
domains_stack_size = 24000000
346+
print_memory_usage=.true.
347+
domains_stack_size = 12000000
348+
clock_grain='MODULE',
349+
clock_flags='DETAILED',
355350
/
356351
EOF
357352

scripts/fv3_setup

Lines changed: 33 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -198,47 +198,10 @@ set CUBE_AGCM = ""
198198
set AGCM_NF = 6
199199
set GRID_TYPE = "Cubed-Sphere"
200200

201-
echo "Enter the ${C1}Vertical Resolution${CN}: ${C2}LM${CN} (Default: 72)"
201+
echo "Enter the ${C1}Vertical Resolution${CN}: ${C2}LM${CN} (Default: 181)"
202202
set AGCM_LM = $<
203203
if( .$AGCM_LM == . ) then
204-
set AGCM_LM = 72
205-
endif
206-
207-
208-
#######################################################################
209-
# Test to see if you want to use non-hydrostatic
210-
#######################################################################
211-
212-
ASKHYDRO:
213-
214-
set DEFAULT_NON_HYDROSTATIC = FALSE
215-
echo "Do you wish to run ${C1}NON-HYDROSTATIC${CN} dynamics? (Default: ${C2}${DEFAULT_NON_HYDROSTATIC}${CN})"
216-
217-
set DO_NONHYDRO = $<
218-
if( .$DO_NONHYDRO == . ) then
219-
set DO_NONHYDRO = $DEFAULT_NON_HYDROSTATIC
220-
else
221-
set DO_NONHYDRO = `echo $DO_NONHYDRO | tr "[:lower:]" "[:upper:]"`
222-
if( $DO_NONHYDRO == "Y" | \
223-
$DO_NONHYDRO == "YES" | \
224-
$DO_NONHYDRO == "T" | \
225-
$DO_NONHYDRO == "TRUE" ) set DO_NONHYDRO = TRUE
226-
if( $DO_NONHYDRO == "N" | \
227-
$DO_NONHYDRO == "NO" | \
228-
$DO_NONHYDRO == "F" | \
229-
$DO_NONHYDRO == "FALSE" ) set DO_NONHYDRO = FALSE
230-
231-
if( $DO_NONHYDRO != "TRUE" & $DO_NONHYDRO != "FALSE" ) then
232-
echo
233-
echo "${C1}NON-HYDROSTATIC${CN} must be set equal to ${C2}TRUE/YES${CN} or ${C2}FALSE/NO${CN}!"
234-
goto ASKHYDRO
235-
endif
236-
endif
237-
238-
if ( $DO_NONHYDRO == "TRUE" ) then
239-
set USE_NONHYDRO = 1
240-
else
241-
set USE_NONHYDRO = 0
204+
set AGCM_LM = 181
242205
endif
243206

244207
#######################################################################
@@ -358,15 +321,16 @@ else if ( $SITE == 'NAS' ) then
358321
if ($MODEL == 'has') then
359322
set NCPUS_PER_NODE = 24
360323
else if ($MODEL == 'bro') then
361-
set NCPUS_PER_NODE = 28
324+
# We use 24 of 28 cores per node for even division
325+
set NCPUS_PER_NODE = 24
362326
else if ($MODEL == 'sky_ele') then
363327
set NCPUS_PER_NODE = 40
364328
else if ($MODEL == 'cas_ait') then
365329
set NCPUS_PER_NODE = 40
366330
else if ($MODEL == 'rom_ait') then
367-
set NCPUS_PER_NODE = 128
331+
set NCPUS_PER_NODE = 120
368332
else if ($MODEL == 'mil_ait') then
369-
set NCPUS_PER_NODE = 128
333+
set NCPUS_PER_NODE = 120
370334
endif
371335

372336
else if( $SITE == 'AWS' | $SITE == 'Azure' ) then
@@ -428,62 +392,68 @@ set HIST_IM = `expr $AGCM_IM \* 4`
428392
set HIST_JM = `expr $AGCM_IM \* 2 + 1`
429393

430394
if( $AGCM_IM <= 12 ) then
431-
set DT = 900
395+
set DT = 3600
432396
set FV_NX = 2
433397
else if( $AGCM_IM <= 24 ) then
434-
set DT = 900
398+
set DT = 1800
435399
set FV_NX = 4
436400
else if( $AGCM_IM <= 48 ) then
437-
set DT = 450
438-
set FV_NX = 4
401+
set DT = 1200
402+
set FV_NX = 6
439403
else if( $AGCM_IM <= 90 ) then
440-
set DT = 450
441-
set FV_NX = 4
404+
set DT = 900
405+
set FV_NX = 10
442406
else if( $AGCM_IM <= 180 ) then
443-
set DT = 450
444-
set FV_NX = 6
407+
set DT = 600
408+
set FV_NX = 20
445409
set NUM_READERS = 2
446410
set DEF_IOS_NDS = 2
447411
else if( $AGCM_IM <= 360 ) then
448412
set DT = 450
449-
set FV_NX = 12
413+
set FV_NX = 30
450414
set NUM_READERS = 4
451415
set DEF_IOS_NDS = 2
452416
else if( $AGCM_IM <= 500 ) then
453417
set DT = 450
454-
set FV_NX = 12
418+
set FV_NX = 30
455419
set NUM_READERS = 4
456420
set USE_SHMEM = 1
457421
set DEF_IOS_NDS = 2
458422
else if( $AGCM_IM <= 720 ) then
459-
set DT = 450
460-
set FV_NX = 16
423+
set DT = 300
424+
set FV_NX = 40
461425
set NUM_READERS = 6
462426
set USE_SHMEM = 1
463427
set DEF_IOS_NDS = 3
428+
else if( $AGCM_IM <= 1120 ) then
429+
set DT = 300
430+
set FV_NX = 60
431+
set NUM_READERS = 6
432+
set USE_SHMEM = 1
433+
set DEF_IOS_NDS = 4
464434
else if( $AGCM_IM <= 1440 ) then
465-
set DT = 450
466-
set FV_NX = 30
435+
set DT = 225
436+
set FV_NX = 80
467437
set NUM_READERS = 6
468438
set USE_SHMEM = 1
469439
set DEF_IOS_NDS = 4
470-
else if( $AGCM_IM <= 1536 ) then
471-
set DT = 90
472-
set FV_NX = 64
440+
else if( $AGCM_IM <= 2880 ) then
441+
set DT = 150
442+
set FV_NX = 80
473443
set NUM_READERS = 6
474444
set USE_SHMEM = 1
475445
set DEF_IOS_NDS = 4
476446
else
477-
set DT = 45
478-
set FV_NX = 64
447+
set DT = 75
448+
set FV_NX = 80
479449
set NUM_READERS = 6
480450
set USE_SHMEM = 1
481451
set DEF_IOS_NDS = 5
482452
endif
483453

484-
# On desktop, we default to 6 processes
454+
# On SITE == GMAO.desktop, we default to 6 processes
485455
# Must be set here due to MODEL_NPES calc below
486-
if( $SITE != 'NAS' && $SITE != 'NCCS' && $SITE != 'AWS' && $SITE != 'Azure' ) then
456+
if( $SITE == 'GMAO.desktop' ) then
487457
set FV_NX = 1
488458
endif
489459

@@ -643,9 +613,6 @@ set GEOSDIR = $GEOSDEF
643613
#
644614
setenv GEOSSRC ${GEOSDIR}
645615
setenv GEOSBIN ${GEOSDIR}/bin
646-
setenv GEOSETC ${GEOSDIR}/etc
647-
648-
setenv GEOSUTIL ${GEOSSRC}
649616

650617
#######################################################################
651618
# Check for Group ID Sponsor Code
@@ -831,10 +798,6 @@ s?@BATCH_OUTPUTNAME?$BATCH_OUTPUTNAME?g
831798
s?@BATCH_JOINOUTERR?$BATCH_JOINOUTERR?g
832799
s?@SITE?$SITE?g
833800
s?@GEOSDIR?$GEOSDIR?g
834-
s?@GEOSSRC?$GEOSSRC?g
835-
s?@GEOSBIN?$GEOSBIN?g
836-
s?@GEOSETC?$GEOSETC?g
837-
s?@GEOSUTIL?$GEOSUTIL?g
838801
s?@SINGULARITY_BUILD?$SINGULARITY_BUILD?g
839802
s?@NATIVE_BUILD?$NATIVE_BUILD?g
840803
s?@SINGULARITY_SANDBOX?$SINGULARITY_SANDBOX?g
@@ -850,7 +813,6 @@ s/@FV_NY/$FV_NY/g
850813
s/@FV_PRECISION/$FV_PRECISION/g
851814
s/@USE_SHMEM/$USE_SHMEM/g
852815
s/@USE_IOSERVER/$USE_IOSERVER/g
853-
s/@USE_NONHYDRO/$USE_NONHYDRO/g
854816
s/@IOS_NDS/$IOS_NDS/g
855817
s/@NCPUS_PER_NODE/$NCPUS_PER_NODE/g
856818
s/@NUM_READERS/$NUM_READERS/g

0 commit comments

Comments
 (0)