Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion env/WCOSS_DELL_P3.env
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,11 @@ fi
step=$1

# WCOSS_DELL_P3 information
export npe_node_max=28
export launcher="mpirun -n"
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

# Due to ESMF issue, fv3gfs model must run with npe_node_max=24
if [ $step = "fcst" -o $step = "efcs" ]; then
Expand Down
87 changes: 16 additions & 71 deletions parm/config/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,9 @@ export machine="@MACHINE@"
export RUN_ENVIR="emc"

# Account, queue, etc.
if [ $machine = "HERA" ]; then

export ACCOUNT="fv3-cpu"
export QUEUE="batch"
export QUEUE_ARCH="service"

elif [ $machine = "WCOSS_C" -o $machine = "WCOSS_DELL_P3" ]; then

export ACCOUNT="GFS-DEV"
export QUEUE="dev"
export QUEUE_ARCH="dev_transfer"

fi
export ACCOUNT="@ACCOUNT@"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kate, removing the references to specific machines in config.base is fine, but where will these parameters be defined, including account, queue and directory settings ? Do you have a script that defines these parameters for each machine and then call the python setup scripts ? No one can remember all the parameters for different platforms. I have been using a script, for example, /gpfs/dell6/emc/modeling/noscrub/emc.glopara/para_gfs/misc/rocoto_cycled_warm.sh, to set up my runs.

export QUEUE="@QUEUE@"
export QUEUE_ARCH="@QUEUE_ARCH@"

# Project to use in mass store:
HPSS_PROJECT=emc-global
Expand All @@ -41,64 +31,19 @@ export SCRgfs=$HOMEgfs/scripts
########################################################################

# GLOBAL static environment parameters
if [ $machine = "HERA" ]; then

#export NWPROD="/scratch1/NCEPDEV/global/glopara/nwpara"
export DMPDIR="/scratch1/NCEPDEV/global/glopara/dump"
export RTMFIX=$CRTM_FIX

elif [ $machine = "WCOSS_C" ]; then

export NWPROD="/gpfs/hps/nco/ops/nwprod"
export DMPDIR="/gpfs/dell3/emc/global/dump"
export RTMFIX=$CRTM_FIX

elif [ $machine = "WCOSS_DELL_P3" ]; then

export NWPROD="/gpfs/dell1/nco/ops/nwprod"
export DMPDIR="/gpfs/dell3/emc/global/dump"
export RTMFIX=$CRTM_FIX
fi


# Machine specific paths used everywhere
if [ $machine = "HERA" ]; then

# USER specific paths
export HOMEDIR="/scratch1/NCEPDEV/global/$USER"
export STMP="/scratch1/NCEPDEV/stmp2/$USER"
export PTMP="/scratch1/NCEPDEV/stmp4/$USER"
export NOSCRUB="$HOMEDIR"

# Base directories for various builds
export BASE_GIT="/scratch1/NCEPDEV/global/glopara/git"
export BASE_SVN="/scratch1/NCEPDEV/global/glopara/svn"

elif [ $machine = "WCOSS_C" ]; then

# USER specific paths
export HOMEDIR="/gpfs/hps3/emc/global/noscrub/$USER"
export STMP="/gpfs/hps2/stmp/$USER"
export PTMP="/gpfs/hps2/ptmp/$USER"
export NOSCRUB="/gpfs/hps3/emc/global/noscrub/$USER"

# Base directories for various builds
export BASE_GIT="/gpfs/hps3/emc/global/noscrub/emc.glopara/git"
export BASE_SVN="/gpfs/hps3/emc/global/noscrub/emc.glopara/svn"

elif [ $machine = "WCOSS_DELL_P3" ]; then

# USER specific paths
export HOMEDIR="/gpfs/dell2/emc/modeling/noscrub/$USER"
export STMP="/gpfs/dell3/stmp/$USER"
export PTMP="/gpfs/dell3/ptmp/$USER"
export NOSCRUB="/gpfs/dell2/emc/modeling/noscrub/$USER"

# Base directories for various builds
export BASE_GIT="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git"
export BASE_SVN="/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git"

fi
export NWPROD="@NWPROD@"
export DMPDIR="@DMPDIR@"
export RTMFIX=$CRTM_FIX

# USER specific paths
export HOMEDIR="@HOMEDIR@"
export STMP="@STMP@"
export PTMP="@PTMP@"
export NOSCRUB="@NOSCRUB@"

# Base directories for various builds
export BASE_GIT="@BASE_GIT@"
export BASE_SVN="@BASE_SVN@"

# Toggle to turn on/off GFS downstream processing.
export DO_BUFRSND="NO"
Expand Down
3 changes: 3 additions & 0 deletions parm/config/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ echo "BEGIN: config.resources"

if [[ "$machine" = "WCOSS_DELL_P3" ]]; then
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
elif [[ "$machine" = "WCOSS_C" ]]; then
export npe_node_max=24
elif [[ "$machine" = "JET" ]]; then
Expand Down
54 changes: 54 additions & 0 deletions ush/rocoto/setup_expt.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,17 @@ def edit_baseconfig():
.replace('@CASECTL@', 'C%d' % resdet) \
.replace('@NMEM_ENKF@', '%d' % nens) \
.replace('@HOMEgfs@', top) \
.replace('@BASE_GIT@', base_git) \
.replace('@BASE_SVN@', base_svn) \
.replace('@DMPDIR@', dmpdir) \
.replace('@NWPROD@', nwprod) \
.replace('@HOMEDIR@', homedir) \
.replace('@STMP@', stmp) \
.replace('@PTMP@', ptmp) \
.replace('@NOSCRUB@', noscrub) \
.replace('@ACCOUNT@', account) \
.replace('@QUEUE@', queue) \
.replace('@QUEUE_ARCH@', queue_arch) \
.replace('@gfs_cyc@', '%d' % gfs_cyc)
if expdir is not None:
line = line.replace('@EXPDIR@', os.path.dirname(expdir))
Expand Down Expand Up @@ -129,6 +140,7 @@ def edit_baseconfig():
parser.add_argument('--nens', help='number of ensemble members', type=int, required=False, default=20)
parser.add_argument('--cdump', help='CDUMP to start the experiment', type=str, required=False, default='gdas')
parser.add_argument('--gfs_cyc', help='GFS cycles to run', type=int, choices=[0, 1, 2, 4], default=1, required=False)
parser.add_argument('--partition', help='partition on machine', type=str, required=False, default=None)

args = parser.parse_args()

Expand All @@ -149,6 +161,48 @@ def edit_baseconfig():
nens = args.nens
cdump = args.cdump
gfs_cyc = args.gfs_cyc
partition = args.partition

# Set machine defaults
if machine is 'WCOSS_DELL_P3':

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I see now you have most of the parameters defined in the setup python script. It is fine. Still, users may have to edit these settings locally in their EXPRDIR because not all are using or can use the same disk allocation.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The defaults we had in config.base.emc.dyn before were moved into the setup_expt scripts so the final config.base generated will only include the defaults for the machine the user is on. Users will then need to update their config.base before running setup_workflow script, just as they had to before.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@KateFriedman-NOAA
You should be using if machine == 'WCOSS_DELL_P3' and not if machine is 'WCOSS_DELL_P3'.
The is relational evaluates to True if the two variables point to the same object.
The == relational evaluates to True if the variables are equal.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotcha, thanks!

base_git = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git'
base_svn = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git'
dmpdir = '/gpfs/dell3/emc/global/dump'
nwprod = '/gpfs/dell1/nco/ops/nwprod'
homedir = '/gpfs/dell2/emc/modeling/noscrub/$USER'
stmp = '/gpfs/dell3/stmp/$USER'
ptmp = '/gpfs/dell3/ptmp/$USER'
noscrub = '/gpfs/dell2/emc/modeling/noscrub/$USER'
account = 'GFS-DEV'
queue = 'dev'
queue_arch = 'dev_transfer'
if partition is not None and partition in ['3p5']:
queue = 'dev2'
queue_arch = 'dev2_transfer'
elif machine is 'WCOSS_C':
base_git = '/gpfs/hps3/emc/global/noscrub/emc.glopara/git'
base_svn = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn'
dmpdir = '/gpfs/dell3/emc/global/dump'
nwprod = '/gpfs/hps/nco/ops/nwprod'
homedir = '/gpfs/hps3/emc/global/noscrub/$USER'
stmp = '/gpfs/hps2/stmp/$USER'
ptmp = '/gpfs/hps2/ptmp/$USER'
noscrub = '/gpfs/hps3/emc/global/noscrub/$USER'
account = 'GFS-DEV'
queue = 'dev'
queue_arch = 'dev_transfer'
elif machine is 'HERA':
base_git = '/scratch1/NCEPDEV/global/glopara/git'
base_svn = '/scratch1/NCEPDEV/global/glopara/svn'
dmpdir = '/scratch1/NCEPDEV/global/glopara/dump'
nwprod = '/scratch1/NCEPDEV/global/glopara/nwpara'
homedir = '/scratch1/NCEPDEV/global/$USER'
stmp = '/scratch1/NCEPDEV/stmp2/$USER'
ptmp = '/scratch1/NCEPDEV/stmp4/$USER'
noscrub = '$HOMEDIR'
account = 'fv3-cpu'
queue = 'batch'
queue_arch = 'service'

if args.icsdir is not None and not os.path.exists(icsdir):
msg = 'Initial conditions do not exist in %s' % icsdir
Expand Down
54 changes: 54 additions & 0 deletions ush/rocoto/setup_expt_fcstonly.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ def edit_baseconfig():
.replace('@EDATE@', edate.strftime('%Y%m%d%H')) \
.replace('@CASECTL@', 'C%d' % res) \
.replace('@HOMEgfs@', top) \
.replace('@BASE_GIT@', base_git) \
.replace('@BASE_SVN@', base_svn) \
.replace('@DMPDIR@', dmpdir) \
.replace('@NWPROD@', nwprod) \
.replace('@HOMEDIR@', homedir) \
.replace('@STMP@', stmp) \
.replace('@PTMP@', ptmp) \
.replace('@NOSCRUB@', noscrub) \
.replace('@ACCOUNT@', account) \
.replace('@QUEUE@', queue) \
.replace('@QUEUE_ARCH@', queue_arch) \
.replace('@gfs_cyc@', '%d' % gfs_cyc)
if expdir is not None:
line = line.replace('@EXPDIR@', os.path.dirname(expdir))
Expand Down Expand Up @@ -99,6 +110,7 @@ def edit_baseconfig():
parser.add_argument('--edate', help='end date experiment', type=str, required=True)
parser.add_argument('--configdir', help='full path to directory containing the config files', type=str, required=False, default=None)
parser.add_argument('--gfs_cyc', help='GFS cycles to run', type=int, choices=[0, 1, 2, 4], default=1, required=False)
parser.add_argument('--partition', help='partition on machine', type=str, required=False, default=None)

args = parser.parse_args()

Expand All @@ -115,6 +127,48 @@ def edit_baseconfig():
comrot = args.comrot if args.comrot is None else os.path.join(args.comrot, pslot)
expdir = args.expdir if args.expdir is None else os.path.join(args.expdir, pslot)
gfs_cyc = args.gfs_cyc
partition = args.partition

# Set machine defaults
if machine is 'WCOSS_DELL_P3':
base_git = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git'
base_svn = '/gpfs/dell2/emc/modeling/noscrub/emc.glopara/git'
dmpdir = '/gpfs/dell3/emc/global/dump'
nwprod = '/gpfs/dell1/nco/ops/nwprod'
homedir = '/gpfs/dell2/emc/modeling/noscrub/$USER'
stmp = '/gpfs/dell3/stmp/$USER'
ptmp = '/gpfs/dell3/ptmp/$USER'
noscrub = '/gpfs/dell2/emc/modeling/noscrub/$USER'
account = 'GFS-DEV'
queue = 'dev'
queue_arch = 'dev_transfer'
if partition is not None and partition in ['3p5']:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if partition is not None is not required here, because if it is None, the partition in ['3p5'] will evaluate to False.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I'll remove that bit.

queue = 'dev2'
queue_arch = 'dev2_transfer'
elif machine is 'WCOSS_C':
base_git = '/gpfs/hps3/emc/global/noscrub/emc.glopara/git'
base_svn = '/gpfs/hps3/emc/global/noscrub/emc.glopara/svn'
dmpdir = '/gpfs/dell3/emc/global/dump'
nwprod = '/gpfs/hps/nco/ops/nwprod'
homedir = '/gpfs/hps3/emc/global/noscrub/$USER'
stmp = '/gpfs/hps2/stmp/$USER'
ptmp = '/gpfs/hps2/ptmp/$USER'
noscrub = '/gpfs/hps3/emc/global/noscrub/$USER'
account = 'GFS-DEV'
queue = 'dev'
queue_arch = 'dev_transfer'
elif machine is 'HERA':
base_git = '/scratch1/NCEPDEV/global/glopara/git'
base_svn = '/scratch1/NCEPDEV/global/glopara/svn'
dmpdir = '/scratch1/NCEPDEV/global/glopara/dump'
nwprod = '/scratch1/NCEPDEV/global/glopara/nwpara'
homedir = '/scratch1/NCEPDEV/global/$USER'
stmp = '/scratch1/NCEPDEV/stmp2/$USER'
ptmp = '/scratch1/NCEPDEV/stmp4/$USER'
noscrub = '$HOMEDIR'
account = 'fv3-cpu'
queue = 'batch'
queue_arch = 'service'

# COMROT directory
create_comrot = True
Expand Down