Skip to content
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

Implement global-workflow on AWS #2549

Closed
wants to merge 66 commits into from

Conversation

weihuang-jedi
Copy link
Contributor

@weihuang-jedi weihuang-jedi commented Apr 27, 2024

PRs should meet these guidelines:
- Each PR should address ONE topic and have an associated issue.
- No hard-coded paths or personal directories.
- No temporary or backup files should be committed (including logs).
- Any code that you disabled by being commented out should be removed or reenabled.

Please delete all these comments before submitting the PR.

-->

Description

This PR implement global-workflow on AWS.

Resolves NOAA-EPIC#2

Type of change

  • New feature (adds functionality)

Change characteristics

  • Does this change require a documentation update? YES

How has this been tested?

Tested on AWS

Example:

  • Clone and build on AWS

Checklist

  • [x ] Code changes for GSI-Utils
  • [ x] Code changes for UFS-Utils
  • [ x] Code Changes for GFS-Utils
  • [x ] Code changes for GSI-monitor
  • [x ] Code changes for UPP
  • [x ] Code changes for UFS-weather-model
  • x[ ] Code changes for GSI
  • [x ] Code changes for GDAS

@weihuang-jedi
Copy link
Contributor Author

This is at its early stage, depends on many things. Will mark it ready when things all settled.

@weihuang-jedi weihuang-jedi marked this pull request as ready for review June 14, 2024 20:35
Copy link
Contributor

@aerorahul aerorahul left a comment

Choose a reason for hiding this comment

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

Please describe the hard to understand updates in this PR.
Please see specific comments.

@@ -1,6 +1,6 @@
[submodule "sorc/ufs_model.fd"]
path = sorc/ufs_model.fd
url = https://github.com/ufs-community/ufs-weather-model
url = https://github.com/ufs-community/ufs-weather-model.git
Copy link
Contributor

Choose a reason for hiding this comment

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

please revert.

@@ -0,0 +1,298 @@
#! /usr/bin/env bash
Copy link
Contributor

Choose a reason for hiding this comment

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

Please remove Azure and Google additions from this PR as this PR is titled "Implemente global-workflow on AWS"

Comment on lines +75 to +80
#export DO_TRACKER="@DO_TRACKER@" # Hurricane track verification
#export DO_GENESIS="@DO_GENESIS@" # Cyclone genesis verification
#export DO_GENESIS_FSU="@DO_GENESIS_FSU@" # Cyclone genesis verification (FSU)
export DO_TRACKER="NO" # Hurricane track verification
export DO_GENESIS="NO" # Cyclone genesis verification
export DO_GENESIS_FSU="NO" # Cyclone genesis verification (FSU)
Copy link
Contributor

Choose a reason for hiding this comment

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

Please revert.

Comment on lines +64 to +70
"AZUREPW")
export PARTITION_BATCH="compute"
npe_node_max=24
;;
"GOOGLEPW")
export PARTITION_BATCH="compute"
npe_node_max=30
Copy link
Contributor

Choose a reason for hiding this comment

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

Please withhold till these platforms are available and the workflow is being ported to them.

@@ -804,7 +812,7 @@ case ${step} in
;;

"atmos_products")
export wtime_atmos_products="00:15:00"
export wtime_atmos_products="01:15:00"
Copy link
Contributor

Choose a reason for hiding this comment

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

This is a significant increase.
Please revert.

@@ -0,0 +1,24 @@
BASE_GIT: '/work/noaa/global/glopara/git'
Copy link
Contributor

Choose a reason for hiding this comment

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

Please remove this file.
These are orion paths

Comment on lines 28 to 53
pslot = self._base['PSLOT']
if ( 'BASE_CPLIC' in cpl_ic.keys() ):
base_cplic = f"{cpl_ic['BASE_CPLIC']}"
else:
base_cplic = os.environ.get('BASE_CPLIC')
if ( 'CPL_ATMIC' in cpl_ic.keys() ):
cpl_atmic = f"{cpl_ic['CPL_ATMIC']}"
else:
cpl_atmic = os.environ.get('CPL_ATMIC')

prefix = f"{base_cplic}/{cpl_atmic}/@Y@m@d@H/atmos"

pw_csp = os.environ.get('PW_CSP')
use_ufs_utils_format = os.environ.get('USE_UFS_UTILS_FORMAT', False)
if ( pw_csp in ['aws', 'azure', 'google'] or use_ufs_utils_format):
icdir = f"{base_cplic}/{cpl_atmic}"

if('IC_PREFIX' in cpl_ic.keys()):
cpl_ic_prefix = f"{icdir}/{cpl_ic['IC_PREFIX']}"
else:
cpl_ic_prefix = 'gfs'
if('IC_TYPE' in cpl_ic.keys()):
cpl_ic_type = f"{cpl_ic['IC_TYPE']}"
else:
cpl_ic_type = 'input'
prefix = f"{icdir}/{cpl_ic_prefix}.@Y@m@d/@H/model_data/atmos/{cpl_ic_type}"
Copy link
Contributor

Choose a reason for hiding this comment

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

This should not be needed.

Comment on lines +149 to +150
pw_csp = os.environ.get('PW_CSP')
if pw_csp not in ['aws', 'azure', 'google']:
Copy link
Contributor

Choose a reason for hiding this comment

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

rocoto.py need not know if this is PW_CSP.
Please outline the issue and we can discuss.

Comment on lines +218 to +222
pw_csp = os.environ.get('PW_CSP')
if ( pw_csp in ['aws', 'azure', 'google'] ):
native = '--export=ALL --exclusive'
else:
native = '--export=NONE'
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be handled elsewhere.

Comment on lines +160 to +174
f'#################### {pslot} ####################',
f'MAILTO="{replyto}"'
]
pw_csp = os.environ.get('PW_CSP')
if ( pw_csp in ['aws', 'azure', 'google'] ):
strings = np.append(strings,
[
f'SHELL="/bin/bash"',
f'BASH_ENV="/etc/bashrc"'
])
strings = np.append(strings,
[
f'{cronintstr} {rocotorunstr}',
'#################################################################',
''])
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you describe the reason here

@HenryRWinterbottom
Copy link
Contributor

@weihuang-jedi Please properly follow the PR template guidelines. See, for example, #2688.

@DavidHuber-NOAA
Copy link
Contributor

Should this be closed in favor of #2711?

@aerorahul
Copy link
Contributor

Closing in favor of #2711

@aerorahul aerorahul closed this Jun 25, 2024
@weihuang-jedi weihuang-jedi deleted the wei-epic-aws branch August 9, 2024 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement global-workflow on AWS
4 participants