Skip to content

Commit

Permalink
Limit gfswavepostpnt to 40 PEs/node (NOAA-EMC#2588)
Browse files Browse the repository at this point in the history
This fixes the slow runtime of the gfswavepostpnt job on Hercules. The
job is very I/O intensive and does not scale well to large nodes, so
limit the number of jobs/node to 40.

Resolves NOAA-EMC#2587
  • Loading branch information
DavidHuber-NOAA authored May 13, 2024
1 parent 4fb7c12 commit 6ca106e
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 6 deletions.
20 changes: 17 additions & 3 deletions parm/config/gefs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -252,31 +252,45 @@ case ${step} in
export memory_wavepostsbs="10GB"
;;

# The wavepost*pnt* jobs are I/O heavy and do not scale well to large nodes.
# Limit the number of tasks/node to 40.
"wavepostbndpnt")
export wtime_wavepostbndpnt="01:00:00"
export npe_wavepostbndpnt=240
export nth_wavepostbndpnt=1
export npe_node_wavepostbndpnt=$(( npe_node_max / nth_wavepostbndpnt ))
export NTASKS=${npe_wavepostbndpnt}
export is_exclusive=True
if [[ ${npe_node_wavepostbndpnt} -gt 40 ]]; then
export npe_node_wavepostbndpnt=40
export is_exclusive=False
fi
export NTASKS=${npe_wavepostbndpnt}
;;

"wavepostbndpntbll")
export wtime_wavepostbndpntbll="01:00:00"
export npe_wavepostbndpntbll=448
export nth_wavepostbndpntbll=1
export npe_node_wavepostbndpntbll=$(( npe_node_max / nth_wavepostbndpntbll ))
export NTASKS=${npe_wavepostbndpntbll}
export is_exclusive=True
if [[ ${npe_node_wavepostbndpntbll} -gt 40 ]]; then
export npe_node_wavepostbndpntbll=40
export is_exclusive=False
fi
export NTASKS=${npe_wavepostbndpntbll}
;;

"wavepostpnt")
export wtime_wavepostpnt="04:00:00"
export npe_wavepostpnt=200
export nth_wavepostpnt=1
export npe_node_wavepostpnt=$(( npe_node_max / nth_wavepostpnt ))
export NTASKS=${npe_wavepostpnt}
export is_exclusive=True
if [[ ${npe_node_wavepostpnt} -gt 40 ]]; then
export npe_node_wavepostpnt=40
export is_exclusive=False
fi
export NTASKS=${npe_wavepostpnt}
;;

*)
Expand Down
20 changes: 17 additions & 3 deletions parm/config/gfs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -140,31 +140,45 @@ case ${step} in
export memory_wavepostsbs_gfs="10GB"
;;

# The wavepost*pnt* jobs are I/O heavy and do not scale well to large nodes.
# Limit the number of tasks/node to 40.
"wavepostbndpnt")
export wtime_wavepostbndpnt="01:00:00"
export npe_wavepostbndpnt=240
export nth_wavepostbndpnt=1
export npe_node_wavepostbndpnt=$(( npe_node_max / nth_wavepostbndpnt ))
export NTASKS=${npe_wavepostbndpnt}
export is_exclusive=True
if [[ ${npe_node_wavepostbndpnt} -gt 40 ]]; then
export npe_node_wavepostbndpnt=40
export is_exclusive=False
fi
export NTASKS=${npe_wavepostbndpnt}
;;

"wavepostbndpntbll")
export wtime_wavepostbndpntbll="01:00:00"
export npe_wavepostbndpntbll=448
export nth_wavepostbndpntbll=1
export npe_node_wavepostbndpntbll=$(( npe_node_max / nth_wavepostbndpntbll ))
export NTASKS=${npe_wavepostbndpntbll}
export is_exclusive=True
if [[ ${npe_node_wavepostbndpntbll} -gt 40 ]]; then
export npe_node_wavepostbndpntbll=40
export is_exclusive=False
fi
export NTASKS=${npe_wavepostbndpntbll}
;;

"wavepostpnt")
export wtime_wavepostpnt="04:00:00"
export npe_wavepostpnt=200
export nth_wavepostpnt=1
export npe_node_wavepostpnt=$(( npe_node_max / nth_wavepostpnt ))
export NTASKS=${npe_wavepostpnt}
export is_exclusive=True
if [[ ${npe_node_wavepostpnt} -gt 40 ]]; then
export npe_node_wavepostpnt=40
export is_exclusive=False
fi
export NTASKS=${npe_wavepostpnt}
;;

"wavegempak")
Expand Down

0 comments on commit 6ca106e

Please sign in to comment.