-
Notifications
You must be signed in to change notification settings - Fork 168
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
Add capability to run forecast in segments #2795
Add capability to run forecast in segments #2795
Conversation
I still have some more testing to do (and I think documentation to update), but wanted to get a draft out since people are going on leave. |
7cd1192
to
cd3d7c8
Compare
Will check and see if the documentation needs to be updated Friday, but I think the last few bugs from this update are gone. |
CI Passed Hercules at
|
Hercules testing completed successfully, resetting label. |
cd3d7c8
to
eb17358
Compare
Appears no documentation updates are needed at this time after all. |
parm/config/gfs/config.base
Outdated
export FCST_SEGMENTS_STR_GFS="@FCST_SEGMENTS_GFS@" | ||
IFS=', ' read -ra FCST_SEGMENTS_GFS <<< "${FCST_SEGMENTS_STR_GFS}" | ||
if (( ${FCST_SEGMENT:- -1} < 0 )); then | ||
# Jobs other than the forecast don't care about segments, only the | ||
# absolute start and end | ||
declare -x FHMIN_GFS=${FCST_SEGMENTS_GFS[0]} | ||
declare -x FHMAX_GFS=${FCST_SEGMENTS_GFS[-1]} | ||
else | ||
declare -x FHMIN_GFS=${FCST_SEGMENTS_GFS[${FCST_SEGMENT}]} | ||
declare -x FHMAX_GFS=${FCST_SEGMENTS_GFS[${FCST_SEGMENT}+1]} | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a way to not do any of this in a config file and calculate this in a j-job or exscript?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not without massive additional changes. FHMAX_GFS
especially gets used later in this config, and then also in the job-specific configs that would be sourced immediately afterwards.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-done how we discussed Mon afternoon.
d9f01cb
to
6816722
Compare
3877cc5
to
c73eecd
Compare
|
Automated global-workflow Testing Results:
|
Experiment C96C48_hybatmDA_c73eecd2 FAIL on Wcoss2 at 08/10/24 07:06:33 AM Error logs:
Follow link here to view the contents of the above file(s): (link) |
|
Automated global-workflow Testing Results:
|
All CI Test Cases Passed on Wcoss2:
|
@@ -24,7 +24,7 @@ if [[ "${DOIAU}" == "YES" ]]; then | |||
export aero_bkg_times="3,6,9" | |||
export JEDIYAML="${PARMgfs}/gdas/aero/variational/3dvar_fgat_gfs_aero.yaml.j2" | |||
else | |||
export aero_bkg_times="6" | |||
export aero_bkg_times="6," # Trailing comma is necessary so this is treated as a list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very clever!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
…e_rocoto * origin/develop: Jenkins Pipeline Updates (NOAA-EMC#2815) Add Gaea C5 to CI (NOAA-EMC#2814) Add support for forecast-only runs on AWS (NOAA-EMC#2711) Add fixes to products for when REPLAY IC's are used (NOAA-EMC#2755) Add capability to run forecast in segments (NOAA-EMC#2795)
Description
Adds the ability to run a forecast in segments instead of all at once. To accomplish this, a new local
checkpnts
variable is introduced toconfig.base
to contain a comma-separated list of intermediate stopping points for the forecast. This is combined withFHMIN_GFS
andFHMAX_GFS
to create a comma-separated stringFCST_SEGMENTS
with all the start/end points that is used byconfig.fcst
and rocoto workflow. Capability to parse these into python lists was added to wxflow in an accompanying PR. Ifcheckpnts
is an empty string, this will result in a single-segment forecast.To accommodate the new segment metatasks that must be run serially, the capability of
create_task()
was expanded to allow a dictionary key ofis_serial
, which controls whether a metatask is parallel or serial using pre-existing capability in rocoto. The default when not given is parallel (i.e. most metatasks).Resolves #2274
Refs NOAA-EMC/wxflow#39
Refs NOAA-EMC/wxflow#40
Type of change
Change characteristics
How has this been tested?
Checklist