Skip to content

Commit

Permalink
Merge branch 'develop' into wavegrid_compath
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonMFernando-NOAA authored Jan 10, 2025
2 parents c51d912 + fea98f9 commit 8ea2253
Show file tree
Hide file tree
Showing 10 changed files with 48 additions and 28 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ jobs:
./.github/scripts/build_docs.sh
- name: Upload documentation (on success)
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: always()
with:
name: documentation
path: artifact/documentation

- name: Upload warnings (on failure)
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure()
with:
name: documentation_warnings.log
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

- if: ${{ always() }}
name: Upload artifact with ShellCheck defects in SARIF format
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Differential ShellCheck SARIF
path: ${{ steps.ShellCheck.outputs.sarif }}
Expand Down
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
21 changes: 18 additions & 3 deletions workflow/generate_workflows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ function _usage() {
directory up from this script's residing directory.
-b Run build_all.sh with default flags
(build the UFS, UPP, UFS_Utils, and GFS-utils only
(build the UFS, UPP, UFS_Utils, and GFS-utils only)
-u Update submodules before building and/or generating experiments.
-y "list of YAMLs to run"
If this option is not specified, the default case (C48_ATM) will be
run. This option is overidden by -G or -E (see below).
run. This option is incompatible with -G, -E, or -S.
Example: -y "C48_ATM C48_S2SW C96C48_hybatmDA"
-Y /path/to/directory/with/YAMLs
Expand All @@ -43,7 +43,6 @@ function _usage() {
Run all valid SFS cases in the specified YAML directory.
NOTES:
- Only one of -G -E or -S may be specified
- Valid cases are determined by the experiment:system key as
well as the skip_ci_on_hosts list in each YAML.
Expand Down Expand Up @@ -223,6 +222,22 @@ else
done
fi

# Empty the _yaml_list array if -G, -E, and/or -S were selected
if [[ "${_run_all_gfs}" == "true" || \
"${_run_all_gefs}" == "true" || \
"${_run_all_sfs}" == "true" ]]; then

# Raise an error if the user specified a yaml list and any of -G -E -S
if [[ "${_specified_yaml_list}" == "true" ]]; then
echo "Ambiguous case selection."
echo "Please select which tests to run explicitly with -y \"list of tests\" or"
echo "by specifying -G (all GFS), -E (all GEFS), and/or -S (all SFS), but not both."
exit 3
fi

_yaml_list=()
fi

# If -S is specified, exit (for now).
# TODO when SFS tests come online, enable this option.
if [[ "${_run_all_sfs}" == "true" ]]; then
Expand Down

0 comments on commit 8ea2253

Please sign in to comment.