Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding benchmark-like tests #67

Merged
merged 11 commits into from
Apr 15, 2020
Merged
2 changes: 1 addition & 1 deletion FV3
Submodule FV3 updated 1 files
+1 −1 atmos_cubed_sphere
67 changes: 55 additions & 12 deletions compsets/all.input
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
load 'fv3mom6cice5.input'
load 'fv3mom6cice5_ccpp.input'
#load 'bm3p5_cold_ccpp.input'
#load 'bm3p5_35d_ccpp.input'

########################################################################

Expand Down Expand Up @@ -99,7 +101,7 @@ run cpld_fv3_ccpp_384_mom6_cice_ww3_1d_bmark_rt @ fv3, coupledapp, warm384, phys
########################################################################
#Run the Benchmark-like inputs for a single date
#These can be run separately from the baseline test cases
#above by commenting those 4 tests out. The user must then
#above by commenting those 2 tests out. The user must then
#first run the benchmark cold start alone. The location of
#cold start mediator files is then used to run the warm start.
#The full path to the cold start mediator files is specified as
Expand All @@ -112,22 +114,63 @@ run cpld_fv3_ccpp_384_mom6_cice_ww3_1d_bmark_rt @ fv3, coupledapp, warm384, phys
#run cpld_fv3_384_mom6_cice_2d_bmark @ benchmark, warmBM2

########################################################################
#Run the Benchmark-like inputs for 4 standard dates
#Run the Benchmark-like inputs for 8 standard dates
#These can be run separately from the baseline test cases
#above by commenting those 4 tests out. The user must then
#first run the 4 cold starts alone. The location of
#above by commenting those 16 tests out. The user must then
#first run the 8 cold starts alone. The location of
#cold start mediator files is then used to run the warm starts. The
#full path to the cold start mediator files is specified as ROOTDIR
#in the datesuite_warm.input.

#IPD Version:

#load 'datesuite_cold.input'
#run cpld_fv3_384_mom6_cice_cold_2012010100 @ benchmark, coldBM2
#run cpld_fv3_384_mom6_cice_cold_2012040100 @ benchmark, coldBM2
#run cpld_fv3_384_mom6_cice_cold_2012070100 @ benchmark, coldBM2
#run cpld_fv3_384_mom6_cice_cold_2012100100 @ benchmark, coldBM2
#run cpld_fv3_384_mom6_cice_cold_2012010100 @ benchmark, coldBM
#run cpld_fv3_384_mom6_cice_cold_2012040100 @ benchmark, coldBM
#run cpld_fv3_384_mom6_cice_cold_2012070100 @ benchmark, coldBM
#run cpld_fv3_384_mom6_cice_cold_2012100100 @ benchmark, coldBM
#run cpld_fv3_384_mom6_cice_cold_2013010100 @ benchmark, coldBM
#run cpld_fv3_384_mom6_cice_cold_2013040100 @ benchmark, coldBM
#run cpld_fv3_384_mom6_cice_cold_2013070100 @ benchmark, coldBM
#run cpld_fv3_384_mom6_cice_cold_2013100100 @ benchmark, coldBM

#load 'datesuite_warm.input'
#run cpld_fv3_384_mom6_cice_5d_2012010100 @ benchmark, warmBM2
#run cpld_fv3_384_mom6_cice_5d_2012040100 @ benchmark, warmBM2
#run cpld_fv3_384_mom6_cice_5d_2012070100 @ benchmark, warmBM2
#run cpld_fv3_384_mom6_cice_5d_2012100100 @ benchmark, warmBM2
#run cpld_fv3_384_mom6_cice_5d_2012010100 @ benchmark, warmBM
#run cpld_fv3_384_mom6_cice_5d_2012040100 @ benchmark, warmBM
#run cpld_fv3_384_mom6_cice_5d_2012070100 @ benchmark, warmBM
#run cpld_fv3_384_mom6_cice_5d_2012100100 @ benchmark, warmBM
#run cpld_fv3_384_mom6_cice_5d_2013010100 @ benchmark, warmBM
#run cpld_fv3_384_mom6_cice_5d_2013040100 @ benchmark, warmBM
#run cpld_fv3_384_mom6_cice_5d_2013070100 @ benchmark, warmBM
#run cpld_fv3_384_mom6_cice_5d_2013100100 @ benchmark, warmBM

#CCPP version

#load 'datesuite_cold_ccpp.input'
#run cpld_fv3_ccpp_384_mom6_cice_cold_2012010100 @ benchmark, coldBM
#run cpld_fv3_ccpp_384_mom6_cice_cold_2012040100 @ benchmark, coldBM
#run cpld_fv3_ccpp_384_mom6_cice_cold_2012070100 @ benchmark, coldBM
#run cpld_fv3_ccpp_384_mom6_cice_cold_2012100100 @ benchmark, coldBM
#run cpld_fv3_ccpp_384_mom6_cice_cold_2013010100 @ benchmark, coldBM
#run cpld_fv3_ccpp_384_mom6_cice_cold_2013040100 @ benchmark, coldBM
#run cpld_fv3_ccpp_384_mom6_cice_cold_2013070100 @ benchmark, coldBM
#run cpld_fv3_ccpp_384_mom6_cice_cold_2013100100 @ benchmark, coldBM

#load 'datesuite_warm_ccpp.input'
#run cpld_fv3_ccpp_384_mom6_cice_5d_2012010100 @ benchmark, warmBM
#run cpld_fv3_ccpp_384_mom6_cice_5d_2012040100 @ benchmark, warmBM
#run cpld_fv3_ccpp_384_mom6_cice_5d_2012070100 @ benchmark, warmBM
#run cpld_fv3_ccpp_384_mom6_cice_5d_2012100100 @ benchmark, warmBM
#run cpld_fv3_ccpp_384_mom6_cice_5d_2013010100 @ benchmark, warmBM
#run cpld_fv3_ccpp_384_mom6_cice_5d_2013040100 @ benchmark, warmBM
#run cpld_fv3_ccpp_384_mom6_cice_5d_2013070100 @ benchmark, warmBM
#run cpld_fv3_ccpp_384_mom6_cice_5d_2013100100 @ benchmark, warmBM

# Use Benchmark inputs with CCPP version.
# Two cold-start runs and two 35-day runs
# Baseline results are generated.
#run fv3_ccpp_384_mom6_cice_cold_2012010100 @ benchmark35, coldBM35
#run fv3_ccpp_384_mom6_cice_cold_2012070100 @ benchmark35, coldBM35

#run fv3_ccpp_384_mom6_cice_35d_2012010100 @ benchmark35, warmBM35
#run fv3_ccpp_384_mom6_cice_35d_2012070100 @ benchmark35, warmBM35
62 changes: 62 additions & 0 deletions compsets/benchmark_cold_ccpp.input
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
########################################################################

test cpld_fv3_ccpp_384_mom6_cice_cold_bmark: fv3_ccpp_mom6_cice.exe {
use cpld_fv3_ccpp_mom6_cice_cold_atm_flux
use plat%default_cpl_benchmark

ATMRES='384'
TEST_DESCR="Fully coupled FV3-MOM6-CICE system - cold 384"

DT_ATMOS='450'
NPX='385'
NPY='385'
IMO='1536'
JMO='768'
FNALBC="'global_snowfree_albedo.bosu.t766.1536.768.rg.grb',"
FNVETC="'global_vegtype.igbp.t766.1536.768.rg.grb',"
FNSOTC="'global_soiltype.statsgo.t766.1536.768.rg.grb',"
FNSMCC="'global_soilmgldas.statsgo.t766.1536.768.grb',"
FNABSC="'global_mxsnoalb.uariz.t766.1536.768.rg.grb',"

FV3_mosaic="C@[ATMRES]"

# inputs and fixed files for benchmark runs to match workflow
INPUT_NML="input.benchmark_ccpp.nml.IN"
SUITE_NAME='FV3_GFS_v15p2_coupled'
FIELD_TABLE="field_table.gfdlmp"
OZONE_data="@[FV3_input_data]/ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77"
CO2_data="@[plat%INPUTS]/FV3_input_bm2/INPUT"

# - set date YYYYMMDDHH
SYEAR='2012'
SMONTH='01'
SDAY='01'
SHOUR='00'
CDATE="@[SYEAR]@[SMONTH]@[SDAY]@[SHOUR]"

# - set run type for CICE in ice_in
RUNID='cpcice'

# - set initialization type for MOM6
MOM6_RESTART_SETTING = 'r'

# set locations of ICs
BM_IC="/scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS/@[CDATE]"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally we don't allow personal directory in the repository code, maybe we can change this later. E.g. get run directory $RUNDIR first , then define BM_IC=$RUNDIR/FROM_HPSS/@[CDATE]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're working on moving all the ICs to the climpara area and we could point to that in the date suite/benchmark tests (this location). I don't know if you want to add all the ICs to the RT area for the datesuite test area though. For the regression test, I added the benchmark IC files to the regression test baseline area:
https://github.com/ufs-community/ufs-s2s-model/blob/develop/compsets/benchmarkRT_cold.input#L45
BM_IC="@[plat%INPUTS]/BM_IC/@[CDATE]"

Maybe we should add the 2012010100 and 2012010100 IC dates there for what are actually regression tests?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer all the ICs to be the RT area as we consider the RT could be independent. We do the same for the fix files in weather. It will be easier for code porting and testing as we don't need to have climpara ready to do RT.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ICs for 2012010100 and 2012070100 will be in the RT area in the next ufs-s2s-model update.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's 4TB worth of data, so I don't think you want all of the ICs in the RT area. I would think the 3 tests that are regression tests or at most the 8 ICs currently set up in the datesuite tests? @DeniseWorthen if we point to the RT baseline area for those 8 datesuite tests, are we then loosing the ability to run any date which I think was part of your desire when you originally made these tests?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. The datesuites would still need to point to the original data location. It should work to add a line to the datesuite tests re-setting the BM_IC location w/in each datesuite test (both cold and warm):

# - set date YYYYMMDDHH
SYEAR='2012'
SMONTH='01'
SDAY='01'
SHOUR='00'
CDATE="@[SYEAR]@[SMONTH]@[SDAY]@[SHOUR]"

# set locations of ICs
BM_IC="/scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS/@[CDATE]"

FV3_IC="@[BM_IC]/gfs/C384/INPUT"
MOM6_IC="@[BM_IC]/mom6_da"
CICE5_IC="@[BM_IC]/cpc"

# Specify output files:
criteria output {
# WORKFILE .comparison. TARGET
# Executable validation. This makes an MD5 sum of the fv3.exe
# for comparison against the MD5 sum made in the build job.
# This is to ensure the executable did not change during the
# test suite.
"@[build%target]" .md5cmp. "@[fv3_ccpp_mom6_cice.exe%md5sum]"
}

spawn execute {
{"@[build%target]", ranks="@[TASKS]", threads="@[THRD]", ppn="@[TPN]" }
}
}
83 changes: 83 additions & 0 deletions compsets/benchmark_warm_ccpp.input
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
########################################################################

test cpld_fv3_ccpp_384_mom6_cice_2d_bmark: fv3_ccpp_mom6_cice.exe {
use cpld_fv3_ccpp_mom6_cice_2d_atm_flux
use plat%default_cpl_benchmark

ATMRES='384'
TEST_DESCR="Fully coupled FV3-MOM6-CICE system - benchmark"

#For a 35 day run:
#DAYS='35'
#FHMAX='840'
#walltime=28800 # seconds
walltime=1800 # seconds

DT_ATMOS='450'
NPX='385'
NPY='385'
IMO='1536'
JMO='768'
FNALBC="'global_snowfree_albedo.bosu.t766.1536.768.rg.grb',"
FNVETC="'global_vegtype.igbp.t766.1536.768.rg.grb',"
FNSOTC="'global_soiltype.statsgo.t766.1536.768.rg.grb',"
FNSMCC="'global_soilmgldas.statsgo.t766.1536.768.grb',"
FNABSC="'global_mxsnoalb.uariz.t766.1536.768.rg.grb',"

FV3_mosaic="C@[ATMRES]"

#no high freq fv3 output
NFHMAX_HF='-1'
NFHOUT_HF='-1'

# turn off CICE history averaging
#CICE_HIST_AVG='.false.'
# matching 6hour FV3 output
#NFHOUT='6'

# inputs and fixed files for benchmark runs to match workflow
INPUT_NML="input.benchmark_ccpp.nml.IN"
SUITE_NAME='FV3_GFS_v15p2_coupled'
FIELD_TABLE="field_table.gfdlmp"
OZONE_data="@[FV3_input_data]/ozprdlos_2015_new_sbuvO3_tclm15_nuchem.f77"
CO2_data="@[plat%INPUTS]/FV3_input_bm2/INPUT"

# - set date YYYYMMDDHH
SYEAR='2012'
SMONTH='01'
SDAY='01'
SHOUR='00'
CDATE="@[SYEAR]@[SMONTH]@[SDAY]@[SHOUR]"

# - set run type for CICE in ice_in
RUNID='cpcice'

# - set initialization type for MOM6
MOM6_RESTART_SETTING = 'r'

# set locations of ICs
BM_IC="/scratch1/NCEPDEV/nems/Bin.Li/S2S/FROM_HPSS/@[CDATE]"
FV3_IC="@[BM_IC]/gfs/C384/INPUT"
MOM6_IC="@[BM_IC]/mom6_da"
CICE5_IC="@[BM_IC]/cpc"

# set location of cold start for mediator restarts
# THIS IS A USER's OWN RUN and should reflect the full path to the location of the cold start
# eg: "/scratch2/NCEPDEV/stmp1/First.LastName/rtgen.NUMBER/tmp/cpld_fv3_ccpp_384_mom6_cice_cold_bmark"
MED_restart_data="full-path-to-user-coldstart"
RESTART_MED="mediator_*"

# Specify output files:
criteria output {
# WORKFILE .comparison. TARGET
# Executable validation. This makes an MD5 sum of the fv3.exe
# for comparison against the MD5 sum made in the build job.
# This is to ensure the executable did not change during the
# test suite.
"@[build%target]" .md5cmp. "@[fv3_ccpp_mom6_cice.exe%md5sum]"
}

spawn execute {
{"@[build%target]", ranks="@[TASKS]", threads="@[THRD]", ppn="@[TPN]" }
}
}
Loading