-
Notifications
You must be signed in to change notification settings - Fork 212
Issue #21 - Add support for WCOSS phase 3.5 #40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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)) | ||
|
|
@@ -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() | ||
|
|
||
|
|
@@ -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': | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @KateFriedman-NOAA
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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)) | ||
|
|
@@ -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() | ||
|
|
||
|
|
@@ -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']: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
|
|
||
There was a problem hiding this comment.
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.