From b77a4d4810d2617ea69b898ad390af60fcb825b9 Mon Sep 17 00:00:00 2001 From: Jeffrey Whitaker Date: Fri, 24 Jan 2025 12:36:03 -0700 Subject: [PATCH] Enable DA cycling on gaea C5/C6 (#3255) Follow on to PR #3106 that enables DA cycling to run on gaea c5/c6 Resolves issue #2985 --- env/GAEAC5.env | 225 ++++++++++++++++++++++-- env/GAEAC6.env | 223 +++++++++++++++++++++-- parm/config/gfs/config.resources.GAEAC5 | 24 --- sorc/gsi_monitor.fd | 2 +- versions/build.gaeac6.ver | 4 +- versions/run.gaeac5.ver | 4 +- 6 files changed, 415 insertions(+), 67 deletions(-) diff --git a/env/GAEAC5.env b/env/GAEAC5.env index 4fdb6d3546..8af8003dff 100755 --- a/env/GAEAC5.env +++ b/env/GAEAC5.env @@ -34,14 +34,118 @@ else exit 2 fi -if [[ "${step}" = "prep" ]]; then +case ${step} in + "prep" | "prepbufr") export POE="NO" - export BACK="NO" + export BACK=${BACK:-"YES"} export sys_tp="GAEAC5" export launcher_PREP="srun" + ;; + "prep_emissions") -elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then + export APRUN="${APRUN_default}" + ;; + "waveinit" | "waveprep" | "wavepostsbs" | "wavepostbndpnt" | "wavepostpnt" | "wavepostbndpntbll") + + export CFP_MP="YES" + [[ "${step}" = "waveprep" ]] && export MP_PULSE=0 + export wavempexec=${launcher} + export wave_mpmd=${mpmd_opt} + + ;; + "atmanlvar") + + export NTHREADS_ATMANLVAR=${NTHREADSmax} + export APRUN_ATMANLVAR="${APRUN_default} --cpus-per-task=${NTHREADS_ATMANLVAR}" + ;; + "atmanlfv3inc") + + export NTHREADS_ATMANLFV3INC=${NTHREADSmax} + export APRUN_ATMANLFV3INC="${APRUN_default} --cpus-per-task=${NTHREADS_ATMANLFV3INC}" + ;; + "atmensanlobs") + + export NTHREADS_ATMENSANLOBS=${NTHREADSmax} + export APRUN_ATMENSANLOBS="${APRUN_default} --cpus-per-task=${NTHREADS_ATMENSANLOBS}" + ;; + "atmensanlsol") + + export NTHREADS_ATMENSANLSOL=${NTHREADSmax} + export APRUN_ATMENSANLSOL="${APRUN_default} --cpus-per-task=${NTHREADS_ATMENSANLSOL}" + ;; + "atmensanlletkf") + + export NTHREADS_ATMENSANLLETKF=${NTHREADSmax} + export APRUN_ATMENSANLLETKF="${APRUN_default} --cpus-per-task=${NTHREADS_ATMENSANLLETKF}" + ;; + "atmensanlfv3inc") + + export NTHREADS_ATMENSANLFV3INC=${NTHREADSmax} + export APRUN_ATMENSANLFV3INC="${APRUN_default} --cpus-per-task=${NTHREADS_ATMENSANLFV3INC}" + ;; + "aeroanlvar") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + export NTHREADS_AEROANL=${NTHREADSmax} + export APRUN_AEROANL="${APRUN_default} --cpus-per-task=${NTHREADS_AEROANL}" + ;; + "aeroanlgenb") + + export NTHREADS_AEROANLGENB=${NTHREADSmax} + export APRUN_AEROANLGENB="${APRUN_default} --cpus-per-task=${NTHREADS_AEROANLGENB}" + ;; + "prepobsaero") + + export NTHREADS_PREPOBSAERO=${NTHREADS1} + export APRUN_PREPOBSAERO="${APRUN_default} --cpus-per-task=${NTHREADS_PREPOBSAERO}" +;; + "snowanl") + + export APRUN_CALCFIMS="${launcher} -n 1" + + export NTHREADS_SNOWANL=${NTHREADSmax} + export APRUN_SNOWANL="${APRUN_default} --cpus-per-task=${NTHREADS_SNOWANL}" + + export APRUN_APPLY_INCR="${launcher} -n 6" + ;; + "esnowrecen") + + export NTHREADS_ESNOWRECEN=${NTHREADSmax} + export APRUN_ESNOWRECEN="${APRUN_default} --cpus-per-task=${NTHREADS_ESNOWRECEN}" + + export APRUN_APPLY_INCR="${launcher} -n 6" + ;; + + "marinebmat") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + export APRUN_MARINEBMAT="${APRUN_default}" + ;; + "marineanlvar") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + export APRUN_MARINEANLVAR="${APRUN_default}" + ;; +"ocnanalecen") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + max_threads_per_task=$((max_tasks_per_node / tasks_per_node_ocnanalecen)) + + export NTHREADS_OCNANALECEN=${threads_per_task_ocnanalecen:-${max_threads_per_task}} + [[ ${NTHREADS_OCNANALECEN} -gt ${max_threads_per_task} ]] && export NTHREADS_OCNANALECEN=${max_threads_per_task} + export APRUN_OCNANALECEN="${launcher} -n ${ntasks_ocnanalecen} --cpus-per-task=${NTHREADS_OCNANALECEN}" +;; + "marineanlchkpt") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + export NTHREADS_OCNANAL=${NTHREADSmax} + export APRUN_MARINEANLCHKPT="${APRUN_default} --cpus-per-task=${NTHREADS_OCNANAL}" + ;; + "anal" | "analcalc") export MKL_NUM_THREADS=4 export MKL_CBWR=AUTO @@ -50,7 +154,7 @@ elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then export USE_CFP=${USE_CFP:-"YES"} export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" - export NTHREADS_GSI=${NTHREADSmax} + export NTHREADS_GSI=${threads_per_task_anal:-${max_threads_per_task}} export APRUN_GSI="${APRUN_default} --cpus-per-task=${NTHREADS_GSI}" export NTHREADS_CALCINC=${threads_per_task_calcinc:-1} @@ -65,44 +169,127 @@ elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then export NTHREADS_GAUSFCANL=1 ntasks_gausfcanl=${ntasks_gausfcanl:-1} export APRUN_GAUSFCANL="${launcher} -n ${ntasks_gausfcanl} --cpus-per-task=${NTHREADS_GAUSFCANL}" - -elif [[ "${step}" = "sfcanl" ]]; then + ;; + "sfcanl") export NTHREADS_CYCLE=${threads_per_task:-14} + [[ ${NTHREADS_CYCLE} -gt ${max_tasks_per_node} ]] && export NTHREADS_CYCLE=${max_tasks_per_node} export APRUN_CYCLE="${APRUN_default} --cpus-per-task=${NTHREADS_CYCLE}" + ;; + "eobs") + + export MKL_NUM_THREADS=4 + export MKL_CBWR=AUTO + + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + + export NTHREADS_GSI=${NTHREADSmax} + [[ ${NTHREADS_GSI} -gt ${max_threads_per_task} ]] && export NTHREADS_GSI=${max_threads_per_task} + export APRUN_GSI="${APRUN_default} --cpus-per-task=${NTHREADS_GSI}" + ;; + "eupd") + + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + + export NTHREADS_ENKF=${NTHREADSmax} + export APRUN_ENKF="${launcher} -n ${ntasks_enkf:-${ntasks}} --cpus-per-task=${NTHREADS_ENKF}" + ;; + "fcst" | "efcs") -elif [[ "${step}" = "fcst" ]]; then + export OMP_STACKSIZE=512M (( nnodes = (ntasks+tasks_per_node-1)/tasks_per_node )) (( ufs_ntasks = nnodes*tasks_per_node )) # With ESMF threading, the model wants to use the full node export APRUN_UFS="${launcher} -n ${ufs_ntasks}" unset nnodes ufs_ntasks + ;; -elif [[ "${step}" = "upp" ]]; then + "upp") export NTHREADS_UPP=${NTHREADS1} export APRUN_UPP="${APRUN_default} --cpus-per-task=${NTHREADS_UPP}" + ;; -elif [[ "${step}" = "atmos_products" ]]; then + "atmos_products") - export USE_CFP="YES" # Use MPMD for downstream product generation on GaeaC5 + export USE_CFP="YES" # Use MPMD for downstream product generation + ;; -elif [[ "${step}" = "oceanice_products" ]]; then +"oceanice_products") export NTHREADS_OCNICEPOST=${NTHREADS1} export APRUN_OCNICEPOST="${launcher} -n 1 --cpus-per-task=${NTHREADS_OCNICEPOST}" +;; -elif [[ "${step}" = "fit2obs" ]]; then + "ecen") - export NTHREADS_FIT2OBS=${NTHREADS1} - export MPIRUN="${APRUN_default} --cpus-per-task=${NTHREADS_FIT2OBS}" + export NTHREADS_ECEN=${NTHREADSmax} + export APRUN_ECEN="${APRUN_default} --cpus-per-task=${NTHREADS_ECEN}" + + export NTHREADS_CHGRES=${threads_per_task_chgres:-12} + [[ ${NTHREADS_CHGRES} -gt ${max_tasks_per_node} ]] && export NTHREADS_CHGRES=${max_tasks_per_node} + export APRUN_CHGRES="time" + + export NTHREADS_CALCINC=${threads_per_task_calcinc:-1} + [[ ${NTHREADS_CALCINC} -gt ${max_threads_per_task} ]] && export NTHREADS_CALCINC=${max_threads_per_task} + export APRUN_CALCINC="${APRUN_default} --cpus-per-task=${NTHREADS_CALCINC}" + + ;; + "esfc") -elif [[ "${step}" = "waveinit" ]] || [[ "${step}" = "waveprep" ]] || [[ "${step}" = "wavepostsbs" ]] || [[ "${step}" = "wavepostbndpnt" ]] || [[ "${step}" = "wavepostbndpntbll" ]] || [[ "${step}" = "wavepostpnt" ]]; then + export NTHREADS_ESFC=${NTHREADSmax} + export APRUN_ESFC="${APRUN_default} --cpus-per-task=${NTHREADS_ESFC}" + + export NTHREADS_CYCLE=${threads_per_task_cycle:-14} + [[ ${NTHREADS_CYCLE} -gt ${max_tasks_per_node} ]] && export NTHREADS_CYCLE=${max_tasks_per_node} + export APRUN_CYCLE="${APRUN_default} --cpus-per-task=${NTHREADS_CYCLE}" + + ;; + "epos") + + export NTHREADS_EPOS=${NTHREADSmax} + export APRUN_EPOS="${APRUN_default} --cpus-per-task=${NTHREADS_EPOS}" + + ;; + "postsnd") export CFP_MP="YES" - if [[ "${step}" = "waveprep" ]]; then export MP_PULSE=0 ; fi - export wavempexec=${launcher} - export wave_mpmd=${mpmd_opt} -fi + export NTHREADS_POSTSND=${NTHREADS1} + export APRUN_POSTSND="${APRUN_default} --cpus-per-task=${NTHREADS_POSTSND}" + + export NTHREADS_POSTSNDCFP=${threads_per_task_postsndcfp:-1} + [[ ${NTHREADS_POSTSNDCFP} -gt ${max_threads_per_task} ]] && export NTHREADS_POSTSNDCFP=${max_threads_per_task} + export APRUN_POSTSNDCFP="${launcher} -n ${ntasks_postsndcfp} ${mpmd_opt}" + + ;; + "awips") + + export NTHREADS_AWIPS=${NTHREADS1} + export APRUN_AWIPSCFP="${APRUN_default} ${mpmd_opt}" + + ;; + "gempak") + + echo "WARNING: ${step} is not enabled on ${machine}!" + + ;; + "fit2obs") + + export NTHREADS_FIT2OBS=${NTHREADS1} + export MPIRUN="${APRUN_default} --cpus-per-task=${NTHREADS_FIT2OBS}" + + ;; + *) + # Some other job not yet defined here + echo "WARNING: The job step ${step} does not specify GAEAC5-specific resources" + ;; +esac + diff --git a/env/GAEAC6.env b/env/GAEAC6.env index 09bbd6530b..90150948e3 100755 --- a/env/GAEAC6.env +++ b/env/GAEAC6.env @@ -34,14 +34,118 @@ else exit 2 fi -if [[ "${step}" = "prep" ]]; then +case ${step} in + "prep" | "prepbufr") export POE="NO" - export BACK="NO" + export BACK=${BACK:-"YES"} export sys_tp="GAEAC6" export launcher_PREP="srun" + ;; + "prep_emissions") -elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then + export APRUN="${APRUN_default}" + ;; + "waveinit" | "waveprep" | "wavepostsbs" | "wavepostbndpnt" | "wavepostpnt" | "wavepostbndpntbll") + + export CFP_MP="YES" + [[ "${step}" = "waveprep" ]] && export MP_PULSE=0 + export wavempexec=${launcher} + export wave_mpmd=${mpmd_opt} + + ;; + "atmanlvar") + + export NTHREADS_ATMANLVAR=${NTHREADSmax} + export APRUN_ATMANLVAR="${APRUN_default} --cpus-per-task=${NTHREADS_ATMANLVAR}" + ;; + "atmanlfv3inc") + + export NTHREADS_ATMANLFV3INC=${NTHREADSmax} + export APRUN_ATMANLFV3INC="${APRUN_default} --cpus-per-task=${NTHREADS_ATMANLFV3INC}" + ;; + "atmensanlobs") + + export NTHREADS_ATMENSANLOBS=${NTHREADSmax} + export APRUN_ATMENSANLOBS="${APRUN_default} --cpus-per-task=${NTHREADS_ATMENSANLOBS}" + ;; + "atmensanlsol") + + export NTHREADS_ATMENSANLSOL=${NTHREADSmax} + export APRUN_ATMENSANLSOL="${APRUN_default} --cpus-per-task=${NTHREADS_ATMENSANLSOL}" + ;; + "atmensanlletkf") + + export NTHREADS_ATMENSANLLETKF=${NTHREADSmax} + export APRUN_ATMENSANLLETKF="${APRUN_default} --cpus-per-task=${NTHREADS_ATMENSANLLETKF}" + ;; + "atmensanlfv3inc") + + export NTHREADS_ATMENSANLFV3INC=${NTHREADSmax} + export APRUN_ATMENSANLFV3INC="${APRUN_default} --cpus-per-task=${NTHREADS_ATMENSANLFV3INC}" + ;; + "aeroanlvar") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + export NTHREADS_AEROANL=${NTHREADSmax} + export APRUN_AEROANL="${APRUN_default} --cpus-per-task=${NTHREADS_AEROANL}" + ;; + "aeroanlgenb") + + export NTHREADS_AEROANLGENB=${NTHREADSmax} + export APRUN_AEROANLGENB="${APRUN_default} --cpus-per-task=${NTHREADS_AEROANLGENB}" + ;; + "prepobsaero") + + export NTHREADS_PREPOBSAERO=${NTHREADS1} + export APRUN_PREPOBSAERO="${APRUN_default} --cpus-per-task=${NTHREADS_PREPOBSAERO}" +;; + "snowanl") + + export APRUN_CALCFIMS="${launcher} -n 1" + + export NTHREADS_SNOWANL=${NTHREADSmax} + export APRUN_SNOWANL="${APRUN_default} --cpus-per-task=${NTHREADS_SNOWANL}" + + export APRUN_APPLY_INCR="${launcher} -n 6" + ;; + "esnowrecen") + + export NTHREADS_ESNOWRECEN=${NTHREADSmax} + export APRUN_ESNOWRECEN="${APRUN_default} --cpus-per-task=${NTHREADS_ESNOWRECEN}" + + export APRUN_APPLY_INCR="${launcher} -n 6" + ;; + + "marinebmat") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + export APRUN_MARINEBMAT="${APRUN_default}" + ;; + "marineanlvar") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + export APRUN_MARINEANLVAR="${APRUN_default}" + ;; +"ocnanalecen") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + max_threads_per_task=$((max_tasks_per_node / tasks_per_node_ocnanalecen)) + + export NTHREADS_OCNANALECEN=${threads_per_task_ocnanalecen:-${max_threads_per_task}} + [[ ${NTHREADS_OCNANALECEN} -gt ${max_threads_per_task} ]] && export NTHREADS_OCNANALECEN=${max_threads_per_task} + export APRUN_OCNANALECEN="${launcher} -n ${ntasks_ocnanalecen} --cpus-per-task=${NTHREADS_OCNANALECEN}" +;; + "marineanlchkpt") + + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + export NTHREADS_OCNANAL=${NTHREADSmax} + export APRUN_MARINEANLCHKPT="${APRUN_default} --cpus-per-task=${NTHREADS_OCNANAL}" + ;; + "anal" | "analcalc") export MKL_NUM_THREADS=4 export MKL_CBWR=AUTO @@ -50,7 +154,7 @@ elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then export USE_CFP=${USE_CFP:-"YES"} export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" - export NTHREADS_GSI=${NTHREADSmax} + export NTHREADS_GSI=${threads_per_task_anal:-${max_threads_per_task}} export APRUN_GSI="${APRUN_default} --cpus-per-task=${NTHREADS_GSI}" export NTHREADS_CALCINC=${threads_per_task_calcinc:-1} @@ -65,44 +169,125 @@ elif [[ "${step}" = "anal" ]] || [[ "${step}" = "analcalc" ]]; then export NTHREADS_GAUSFCANL=1 ntasks_gausfcanl=${ntasks_gausfcanl:-1} export APRUN_GAUSFCANL="${launcher} -n ${ntasks_gausfcanl} --cpus-per-task=${NTHREADS_GAUSFCANL}" - -elif [[ "${step}" = "sfcanl" ]]; then + ;; + "sfcanl") export NTHREADS_CYCLE=${threads_per_task:-14} + [[ ${NTHREADS_CYCLE} -gt ${max_tasks_per_node} ]] && export NTHREADS_CYCLE=${max_tasks_per_node} export APRUN_CYCLE="${APRUN_default} --cpus-per-task=${NTHREADS_CYCLE}" + ;; + "eobs") + + export MKL_NUM_THREADS=4 + export MKL_CBWR=AUTO -elif [[ "${step}" = "fcst" ]]; then + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + + export NTHREADS_GSI=${NTHREADSmax} + [[ ${NTHREADS_GSI} -gt ${max_threads_per_task} ]] && export NTHREADS_GSI=${max_threads_per_task} + export APRUN_GSI="${APRUN_default} --cpus-per-task=${NTHREADS_GSI}" + ;; + "eupd") + + export CFP_MP=${CFP_MP:-"YES"} + export USE_CFP=${USE_CFP:-"YES"} + export APRUNCFP="${launcher} -n \$ncmd ${mpmd_opt}" + + + export NTHREADS_ENKF=${NTHREADSmax} + export APRUN_ENKF="${launcher} -n ${ntasks_enkf:-${ntasks}} --cpus-per-task=${NTHREADS_ENKF}" + ;; + "fcst" | "efcs") + + export OMP_STACKSIZE=512M (( nnodes = (ntasks+tasks_per_node-1)/tasks_per_node )) (( ufs_ntasks = nnodes*tasks_per_node )) # With ESMF threading, the model wants to use the full node export APRUN_UFS="${launcher} -n ${ufs_ntasks}" unset nnodes ufs_ntasks + ;; -elif [[ "${step}" = "upp" ]]; then + "upp") export NTHREADS_UPP=${NTHREADS1} export APRUN_UPP="${APRUN_default} --cpus-per-task=${NTHREADS_UPP}" + ;; -elif [[ "${step}" = "atmos_products" ]]; then + "atmos_products") - export USE_CFP="YES" # Use MPMD for downstream product generation on GaeaC6 + export USE_CFP="YES" # Use MPMD for downstream product generation + ;; -elif [[ "${step}" = "oceanice_products" ]]; then +"oceanice_products") export NTHREADS_OCNICEPOST=${NTHREADS1} export APRUN_OCNICEPOST="${launcher} -n 1 --cpus-per-task=${NTHREADS_OCNICEPOST}" +;; -elif [[ "${step}" = "fit2obs" ]]; then + "ecen") - export NTHREADS_FIT2OBS=${NTHREADS1} - export MPIRUN="${APRUN_default} --cpus-per-task=${NTHREADS_FIT2OBS}" + export NTHREADS_ECEN=${NTHREADSmax} + export APRUN_ECEN="${APRUN_default} --cpus-per-task=${NTHREADS_ECEN}" + + export NTHREADS_CHGRES=${threads_per_task_chgres:-12} + [[ ${NTHREADS_CHGRES} -gt ${max_tasks_per_node} ]] && export NTHREADS_CHGRES=${max_tasks_per_node} + export APRUN_CHGRES="time" + + export NTHREADS_CALCINC=${threads_per_task_calcinc:-1} + [[ ${NTHREADS_CALCINC} -gt ${max_threads_per_task} ]] && export NTHREADS_CALCINC=${max_threads_per_task} + export APRUN_CALCINC="${APRUN_default} --cpus-per-task=${NTHREADS_CALCINC}" -elif [[ "${step}" = "waveinit" ]] || [[ "${step}" = "waveprep" ]] || [[ "${step}" = "wavepostsbs" ]] || [[ "${step}" = "wavepostbndpnt" ]] || [[ "${step}" = "wavepostbndpntbll" ]] || [[ "${step}" = "wavepostpnt" ]]; then + ;; + "esfc") + + export NTHREADS_ESFC=${NTHREADSmax} + export APRUN_ESFC="${APRUN_default} --cpus-per-task=${NTHREADS_ESFC}" + + export NTHREADS_CYCLE=${threads_per_task_cycle:-14} + [[ ${NTHREADS_CYCLE} -gt ${max_tasks_per_node} ]] && export NTHREADS_CYCLE=${max_tasks_per_node} + export APRUN_CYCLE="${APRUN_default} --cpus-per-task=${NTHREADS_CYCLE}" + + ;; + "epos") + + export NTHREADS_EPOS=${NTHREADSmax} + export APRUN_EPOS="${APRUN_default} --cpus-per-task=${NTHREADS_EPOS}" + + ;; + "postsnd") export CFP_MP="YES" - if [[ "${step}" = "waveprep" ]]; then export MP_PULSE=0 ; fi - export wavempexec=${launcher} - export wave_mpmd=${mpmd_opt} -fi + export NTHREADS_POSTSND=${NTHREADS1} + export APRUN_POSTSND="${APRUN_default} --cpus-per-task=${NTHREADS_POSTSND}" + + export NTHREADS_POSTSNDCFP=${threads_per_task_postsndcfp:-1} + [[ ${NTHREADS_POSTSNDCFP} -gt ${max_threads_per_task} ]] && export NTHREADS_POSTSNDCFP=${max_threads_per_task} + export APRUN_POSTSNDCFP="${launcher} -n ${ntasks_postsndcfp} ${mpmd_opt}" + + ;; + "awips") + + export NTHREADS_AWIPS=${NTHREADS1} + export APRUN_AWIPSCFP="${APRUN_default} ${mpmd_opt}" + + ;; + "gempak") + + echo "WARNING: ${step} is not enabled on ${machine}!" + + ;; + "fit2obs") + + export NTHREADS_FIT2OBS=${NTHREADS1} + export MPIRUN="${APRUN_default} --cpus-per-task=${NTHREADS_FIT2OBS}" + ;; + *) + # Some other job not yet defined here + echo "WARNING: The job step ${step} does not specify GAEAC6-specific resources" + ;; +esac diff --git a/parm/config/gfs/config.resources.GAEAC5 b/parm/config/gfs/config.resources.GAEAC5 index a925705bd0..525773f036 100644 --- a/parm/config/gfs/config.resources.GAEAC5 +++ b/parm/config/gfs/config.resources.GAEAC5 @@ -2,30 +2,6 @@ # GaeaC5-specific job resources -case ${step} in - "prep") - # Run on two nodes (requires ~400GB total) - tasks_per_node=7 - ;; - - "eobs") - # 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 - "C1152" | "C768" | "C384") - export tasks_per_node=50 - ;; - *) - export tasks_per_node=40 - ;; - esac - ;; - - *) - ;; - -esac - export FI_VERBS_PREFER_XRC=0 unset memory diff --git a/sorc/gsi_monitor.fd b/sorc/gsi_monitor.fd index 278ee629e8..879f5900d9 160000 --- a/sorc/gsi_monitor.fd +++ b/sorc/gsi_monitor.fd @@ -1 +1 @@ -Subproject commit 278ee629e87558822e8d13b3fb3b0e16006aa856 +Subproject commit 879f5900d9236e144a18cba8e804618fa6c449e3 diff --git a/versions/build.gaeac6.ver b/versions/build.gaeac6.ver index 8b6e641eb6..33f8f3f756 100644 --- a/versions/build.gaeac6.ver +++ b/versions/build.gaeac6.ver @@ -1,5 +1,5 @@ -export stack_intel_ver=2023.1.0 -export stack_cray_mpich_ver=8.1.25 +export stack_intel_ver=2023.2.0 +export stack_cray_mpich_ver=8.1.29 export spack_env=gsi-addon-dev source "${HOMEgfs:-}/versions/spack.ver" export spack_mod_path="/ncrc/proj/epic/spack-stack/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core" diff --git a/versions/run.gaeac5.ver b/versions/run.gaeac5.ver index 9d4075f334..81aa70df57 100644 --- a/versions/run.gaeac5.ver +++ b/versions/run.gaeac5.ver @@ -1,5 +1,5 @@ -export stack_intel_ver=2023.2.0 -export stack_cray_mpich_ver=8.1.28 +export stack_intel_ver=2023.1.0 +export stack_cray_mpich_ver=8.1.25 export spack_env=gsi-addon-dev export perl_ver=5.38.2