From 9027452bfd5345b89bc09656eb28211ca15fe171 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Fri, 5 Mar 2021 17:01:25 +0000 Subject: [PATCH] Add config.resources.nco.static - added parm/config/config.resources.nco.static; contains resources for operations - added copy of config.resources.nco.static in link_fv3gfs.sh when nco mode Refs: #1,#238 --- parm/config/config.resources.nco.static | 323 ++++++++++++++++++++++++ sorc/link_fv3gfs.sh | 1 + 2 files changed, 324 insertions(+) create mode 100755 parm/config/config.resources.nco.static diff --git a/parm/config/config.resources.nco.static b/parm/config/config.resources.nco.static new file mode 100755 index 0000000000..a6a2c88c0a --- /dev/null +++ b/parm/config/config.resources.nco.static @@ -0,0 +1,323 @@ +#!/bin/ksh -x + +########## config.resources ########## +# Set resource information for job tasks +# e.g. walltime, node, cores per node, memory etc. + +if [ $# -ne 1 ]; then + + echo "Must specify an input task argument to set resource variables!" + echo "argument can be any one of the following:" + echo "anal analcalc analdiag gldas fcst post vrfy metp arch echgres" + echo "eobs ediag eomg eupd ecen esfc efcs epos earc" + echo "waveinit waveprep wavepostsbs wavepostbndpnt wavepostpnt" + echo "wavegempak waveawipsbulls waveawipsgridded" + echo "postsnd awips gempak" + echo "wafs wafsgrib2 wafsblending wafsgrib20p25 wafsblending0p25 wafsgcip" + exit 1 + +fi + +step=$1 + +echo "BEGIN: config.resources" + +export npe_node_max=28 +if [ "$QUEUE" = "dev2" -o "$QUEUE" = "devonprod2" -o "$QUEUE" = "devmax2" ]; then # WCOSS Dell 3.5 + export npe_node_max=40 +fi + +if [ $step = "prep" -o $step = "prepbufr" ]; then + + eval "export wtime_$step='00:45:00'" + eval "export npe_$step=4" + eval "export npe_node_$step=2" + eval "export nth_$step=1" + +elif [ $step = "waveinit" ]; then + + export wtime_waveinit="00:10:00" + export npe_waveinit=12 + export nth_waveinit=1 + export npe_node_waveinit=$(echo "$npe_node_max / $nth_waveinit" | bc) + export NTASKS=${npe_waveinit} + +elif [ $step = "waveprep" ]; then + + export wtime_waveprep="00:10:00" + export wtime_waveprep_gfs="00:30:00" + export npe_waveprep=84 + export nth_waveprep=1 + export npe_node_waveprep=$(echo "$npe_node_max / $nth_waveprep" | bc) + export NTASKS=${npe_waveprep} + +elif [ $step = "wavepostsbs" ]; then + + export wtime_wavepostsbs="00:20:00" + export wtime_wavepostsbs_gfs="03:00:00" + export npe_wavepostsbs=28 + export npe_wavepostsbs_gfs=280 + export nth_wavepostsbs=1 + export npe_node_wavepostsbs=$(echo "$npe_node_max / $nth_wavepostsbs" | bc) + export NTASKS=${npe_wavepostsbs} + +elif [ $step = "wavepostbndpnt" ]; then + + export wtime_wavepostbndpnt="01:00:00" + export npe_wavepostbndpnt=280 + export nth_wavepostbndpnt=1 + export npe_node_wavepostbndpnt=$(echo "$npe_node_max / $nth_wavepostbndpnt" | bc) + export NTASKS=${npe_wavepostbndpnt} + +elif [ $step = "wavepostpnt" ]; then + + export wtime_wavepostpnt="00:12:00" + export wtime_wavepostpnt_gfs="01:30:00" + export npe_wavepostpnt=280 + export nth_wavepostpnt=1 + export npe_node_wavepostpnt=$(echo "$npe_node_max / $nth_wavepostpnt" | bc) + export NTASKS=${npe_wavepostpnt} + +elif [ $step = "wavegempak" ]; then + + export wtime_wavegempak="01:00:00" + export npe_wavegempak=$npe_node_max + export nth_wavegempak=1 + export npe_node_wavegempak=$(echo "$npe_node_max / $nth_wavegempak" | bc) + export NTASKS=${npe_wavegempak} + +elif [ $step = "waveawipsbulls" ]; then + + export wtime_waveawipsbulls="00:30:00" + export npe_waveawipsbulls=$npe_node_max + export nth_waveawipsbulls=1 + export npe_node_waveawipsbulls=$(echo "$npe_node_max / $nth_waveawipsbulls" | bc) + export NTASKS=${npe_waveawipsbulls} + +elif [ $step = "waveawipsgridded" ]; then + + export wtime_waveawipsgridded="00:30:00" + export npe_waveawipsgridded=$npe_node_max + export nth_waveawipsgridded=1 + export npe_node_waveawipsgridded=$(echo "$npe_node_max / $nth_waveawipsgridded" | bc) + export NTASKS=${npe_waveawipsgridded} + +elif [ $step = "anal" ]; then + + export wtime_anal="01:00:00" + export wtime_anal_gfs="00:40:00" + export npe_anal=1000 + export npe_anal_gfs=1000 + export nth_anal=7 + export npe_node_anal=$(echo "$npe_node_max / $nth_anal" | bc) + export nth_cycle=$npe_node_max + +elif [ $step = "analcalc" ]; then + + export wtime_analcalc="00:10:00" + export npe_analcalc=127 + export nth_analcalc=1 + export npe_node_analcalc=$npe_node_max + +elif [ $step = "analdiag" ]; then + + export wtime_analdiag="00:10:00" + export npe_analdiag=112 + export nth_analdiag=1 + export npe_node_analdiag=$npe_node_max + +elif [ $step = "gldas" ]; then + + export wtime_gldas="00:20:00" + export npe_gldas=112 + export nth_gldas=1 + export npe_node_gldas=$npe_node_max + export npe_gaussian=96 + export nth_gaussian=1 + export npe_node_gaussian=24 + +elif [ $step = "fcst" ]; then + + export wtime_fcst="01:00:00" + export wtime_fcst_gfs="02:30:00" + export npe_fcst=$(echo "$layout_x * $layout_y * 6" | bc) + export npe_fcst_gfs=$(echo "$layout_x_gfs * $layout_y_gfs * 6" | bc) + export nth_fcst=${nth_fv3:-2} + export npe_node_fcst=$(echo "$npe_node_max / $nth_fcst" | bc) + +elif [ $step = "post" ]; then + + export wtime_post="00:12:00" + export wtime_post_gfs="00:20:00" + export npe_post=98 + export npe_post_gfs=112 + export nth_post=1 + export npe_node_post=14 + export npe_node_post_gfs=28 + export npe_node_dwn=$npe_node_max + +elif [ $step = "wafs" ]; then + + export wtime_wafs="00:30:00" + export npe_wafs=1 + export npe_node_wafs=1 + export nth_wafs=1 + +elif [ $step = "wafsgcip" ]; then + + export wtime_wafsgcip="00:30:00" + export npe_wafsgcip=2 + export npe_node_wafsgcip=1 + export nth_wafsgcip=1 + +elif [ $step = "wafsgrib2" ]; then + + export wtime_wafsgrib2="00:30:00" + export npe_wafsgrib2=1 + export npe_node_wafsgrib2=1 + export nth_wafsgrib2=1 + +elif [ $step = "wafsblending" ]; then + + export wtime_wafsblending="00:30:00" + export npe_wafsblending=1 + export npe_node_wafsblending=1 + export nth_wafsblending=1 + +elif [ $step = "wafsgrib20p25" ]; then + + export wtime_wafsgrib20p25="00:30:00" + export npe_wafsgrib20p25=1 + export npe_node_wafsgrib20p25=1 + export nth_wafsgrib20p25=1 + +elif [ $step = "wafsblending0p25" ]; then + + export wtime_wafsblending0p25="00:30:00" + export npe_wafsblending0p25=1 + export npe_node_wafsblending0p25=1 + export nth_wafsblending0p25=1 + +elif [ $step = "vrfy" ]; then + + export wtime_vrfy="03:00:00" + export wtime_vrfy_gfs="06:00:00" + export npe_vrfy=3 + export nth_vrfy=1 + export npe_node_vrfy=1 + export npe_vrfy_gfs=1 + export npe_node_vrfy_gfs=1 + +elif [ $step = "metp" ]; then + + export nth_metp=1 + export wtime_metp="03:00:00" + export npe_metp=4 + export npe_node_metp=4 + export wtime_metp_gfs="06:00:00" + export npe_metp_gfs=4 + export npe_node_metp_gfs=4 + +elif [ $step = "echgres" ]; then + + export wtime_echgres="00:10:00" + export npe_echgres=3 + export nth_echgres=$npe_node_max + export npe_node_echgres=1 + +elif [ $step = "arch" -o $step = "earc" -o $step = "getic" ]; then + + eval "export wtime_$step='06:00:00'" + eval "export npe_$step=1" + eval "export npe_node_$step=1" + eval "export nth_$step=1" + eval "export memory_$step=2048M" + +elif [ $step = "eobs" -o $step = "eomg" ]; then + + + export wtime_eobs="00:10:00" + export wtime_eomg="01:00:00" + export npe_eobs=480 + export nth_eobs=7 + export npe_node_eobs=$(echo "$npe_node_max / $nth_eobs" | bc) + +elif [ $step = "ediag" ]; then + + export wtime_ediag="00:06:00" + export npe_ediag=56 + export nth_ediag=1 + export npe_node_ediag=$npe_node_max + +elif [ $step = "eupd" ]; then + + export wtime_eupd="00:30:00" + export npe_eupd=960 + export nth_eupd=7 + export npe_node_eupd=$(echo "$npe_node_max / $nth_eupd" | bc) + +elif [ $step = "ecen" ]; then + + export wtime_ecen="00:10:00" + export npe_ecen=80 + export nth_ecen=7 + export npe_node_ecen=$(echo "$npe_node_max / $nth_ecen" | bc) + export nth_cycle=$nth_ecen + +elif [ $step = "esfc" ]; then + + export wtime_esfc="00:06:00" + export npe_esfc=80 + export npe_node_esfc=$npe_node_max + export nth_esfc=1 + export nth_cycle=$nth_esfc + +elif [ $step = "efcs" ]; then + + export wtime_efcs="00:40:00" + export npe_efcs=$(echo "$layout_x * $layout_y * 6" | bc) + export nth_efcs=${nth_fv3:-2} + export npe_node_efcs=$(echo "$npe_node_max / $nth_efcs" | bc) + +elif [ $step = "epos" ]; then + + export wtime_epos="00:15:00" + export npe_epos=80 + export nth_epos=7 + export npe_node_epos=$(echo "$npe_node_max / $nth_epos" | bc) + +elif [ $step = "postsnd" ]; then + + export wtime_postsnd="02:00:00" + export npe_postsnd=40 + export nth_postsnd=1 + export npe_node_postsnd=5 + export npe_postsndcfp=9 + export npe_node_postsndcfp=3 + if [ $OUTPUT_FILE == "nemsio" ]; then + export npe_postsnd=13 + export npe_node_postsnd=4 + fi + +elif [ $step = "awips" ]; then + + export wtime_awips="03:30:00" + export npe_awips=2 + export npe_node_awips=2 + export nth_awips=1 + +elif [ $step = "gempak" ]; then + + export wtime_gempak="02:00:00" + export npe_gempak=17 + export npe_node_gempak=4 + export nth_gempak=3 + +else + + echo "Invalid step = $step, ABORT!" + exit 2 + +fi + +echo "END: config.resources" diff --git a/sorc/link_fv3gfs.sh b/sorc/link_fv3gfs.sh index 6e1d48796a..38a44930ba 100755 --- a/sorc/link_fv3gfs.sh +++ b/sorc/link_fv3gfs.sh @@ -326,6 +326,7 @@ cd $pwd/../parm/config [[ -s config.base ]] && rm -f config.base if [ $RUN_ENVIR = nco ] ; then cp -p config.base.nco.static config.base + cp -p config.resources.nco.static config.resources else cp -p config.base.emc.dyn config.base fi