Skip to content

Commit

Permalink
Update g-w to cycle with C1152 ATM (#3206)
Browse files Browse the repository at this point in the history
There are a few updates needed to cycle with the C1152 atmospheric
model:
- config.resources(.$machine): include C1152 case options for DA tasks
- gdasfcst config.ufs: WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GDAS=20 
- source code update for calc_analysis
NOAA-EMC/GSI-utils#59
- resource change needed for atmanl upp

Note that any needed changes to time limits for C1152 will be addressed
at a later date.

Resolves #3173
  • Loading branch information
CatherineThomas-NOAA authored Jan 10, 2025
1 parent bb029b5 commit ed95546
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 22 deletions.
31 changes: 18 additions & 13 deletions parm/config/gfs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ case ${step} in
"snowanl")
# below lines are for creating JEDI YAML
case ${CASE} in
"C768")
"C1152" | "C768")
layout_x=6
layout_y=6
;;
Expand Down Expand Up @@ -353,7 +353,7 @@ case ${step} in
"esnowanl")
# below lines are for creating JEDI YAML
case ${CASE} in
"C768")
"C1152" | "C768")
layout_x=6
layout_y=6
;;
Expand Down Expand Up @@ -390,7 +390,7 @@ case ${step} in
"aeroanlinit")
# below lines are for creating JEDI YAML
case ${CASE} in
"C768")
"C1152" | "C768")
layout_x=8
layout_y=8
;;
Expand Down Expand Up @@ -423,7 +423,7 @@ case ${step} in

"aeroanlvar")
case ${CASE} in
"C768")
"C1152" | "C768")
layout_x=8
layout_y=8
;;
Expand Down Expand Up @@ -457,7 +457,7 @@ case ${step} in

"aeroanlgenb")
case ${CASE} in
"C768")
"C1152" | "C768")
layout_x=8
layout_y=8
;;
Expand Down Expand Up @@ -668,7 +668,7 @@ case ${step} in
walltime_gdas="01:20:00"
walltime_gfs="01:00:00"
case ${CASE} in
"C768")
"C1152" | "C768")
ntasks_gdas=780
ntasks_gfs=825
threads_per_task=5
Expand Down Expand Up @@ -704,7 +704,7 @@ case ${step} in
export threads_per_task_echgres_gfs=12
export is_exclusive=True
memory="48GB"
if [[ "${CASE}" == "C384" || "${CASE}" == "C768" ]]; then
if [[ "${CASE}" == "C384" || "${CASE}" == "C768" || "${CASE}" == "C1152" ]]; then
memory="${mem_node_max}"
fi
;;
Expand Down Expand Up @@ -897,7 +897,7 @@ case ${step} in
;;
"C768" | "C1152")
# Not valid resolutions for ensembles
declare -x "walltime_gdas"="00:40:00"
declare -x "walltime_gdas"="00:50:00"
declare -x "walltime_gfs"="06:00:00"
;;
*)
Expand All @@ -923,16 +923,21 @@ case ${step} in
"C48" | "C96")
ntasks=${CASE:1}
;;
"C192" | "C384" | "C768" )
"C192" | "C384" | "C768")
ntasks=120
memory="${mem_node_max}"
;;
"C1152")
ntasks=200
memory="${mem_node_max}"
;;
*)
echo "FATAL ERROR: Resources not defined for job ${step} at resolution ${CASE}"
exit 4
;;
esac
tasks_per_node=${ntasks}
[[ ${CASE} == "C1152" ]] && tasks_per_node=40

threads_per_task=1

Expand Down Expand Up @@ -1005,7 +1010,7 @@ case ${step} in
threads_per_task=1
tasks_per_node=1
memory="20G"
[[ ${CASE} == "C768" ]] && memory="80GB"
[[ ${CASE} == "C768" || ${CASE} == "C1152" ]] && memory="80GB"
;;

"metp")
Expand Down Expand Up @@ -1145,7 +1150,7 @@ case ${step} in
fi

case ${CASE} in
"C768") ntasks=200;;
"C1152" | "C768") ntasks=200;;
"C384") ntasks=100;;
"C192" | "C96" | "C48") ntasks=40;;
*)
Expand Down Expand Up @@ -1178,7 +1183,7 @@ case ${step} in
"eupd")
walltime="00:30:00"
case ${CASE} in
"C768")
"C1152" | "C768")
ntasks=480
threads_per_task=6
;;
Expand Down Expand Up @@ -1223,7 +1228,7 @@ case ${step} in

"epos")
walltime="00:15:00"
[[ ${CASE} == "C768" ]] && walltime="00:25:00"
[[ ${CASE} == "C768" || ${CASE} == "C1152" ]] && walltime="00:25:00"
ntasks=80
threads_per_task=1
tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
Expand Down
2 changes: 1 addition & 1 deletion parm/config/gfs/config.resources.GAEA
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ case ${step} in
# The number of tasks and cores used must be the same for eobs
# See https://github.com/NOAA-EMC/global-workflow/issues/2092 for details
case ${CASE} in
"C768" | "C384")
"C1152" | "C768" | "C384")
export tasks_per_node=50
;;
*)
Expand Down
4 changes: 2 additions & 2 deletions parm/config/gfs/config.resources.HERA
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ case ${step} in

"eupd")
case ${CASE} in
"C768")
"C1152" | "C768")
export ntasks=80
export threads_per_task=20
;;
Expand All @@ -49,7 +49,7 @@ case ${step} in
;;

"ecen")
if [[ "${CASE}" == "C768" ]]; then export threads_per_task=6; fi
if [[ "${CASE}" == "C768" || "${CASE}" == "C1152" ]]; then export threads_per_task=6; fi
export tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
;;

Expand Down
2 changes: 1 addition & 1 deletion parm/config/gfs/config.resources.JET
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ case ${step} in
;;

"ecen")
if [[ "${CASE}" == "C768" ]]; then export threads_per_task=6; fi
if [[ "${CASE}" == "C768" || "${CASE}" == "C1152" ]]; then export threads_per_task=6; fi
export tasks_per_node=$(( max_tasks_per_node / threads_per_task ))
;;

Expand Down
6 changes: 3 additions & 3 deletions parm/config/gfs/config.resources.WCOSS2
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ case ${step} in
;;

"anal")
if [[ "${CASE}" == "C768" ]]; then
if [[ "${CASE}" == "C768" || "${CASE}" == "C1152" ]]; then
export threads_per_task=8
# Make ntasks a multiple of 16
export ntasks_gdas=784
Expand Down Expand Up @@ -43,7 +43,7 @@ case ${step} in

"eupd")
case ${CASE} in
"C768" | "C384")
"C1152" | "C768" | "C384")
export ntasks=315
export threads_per_task=14
;;
Expand All @@ -55,7 +55,7 @@ case ${step} in

"eobs")
case ${CASE} in
"C768" | "C384")
"C1152" | "C768" | "C384")
export tasks_per_node=50
;;
*)
Expand Down
2 changes: 1 addition & 1 deletion parm/config/gfs/config.ufs
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ case "${fv3_res}" in
export rf_cutoff=100.0
export fv_sg_adj=450
export WRITE_GROUP_GDAS=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GDAS=10 # TODO: refine these numbers when a case is available
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GDAS=20 # TODO: refine these numbers when a case is available
export WRITE_GROUP_GFS=4
export WRTTASK_PER_GROUP_PER_THREAD_PER_TILE_GFS=20 # TODO: refine these numbers when a case is available
;;
Expand Down

0 comments on commit ed95546

Please sign in to comment.