-
Notifications
You must be signed in to change notification settings - Fork 15
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
Make TC Analysis parallel #631
Conversation
Unit tests pass (https://github.com/E3SM-Project/zppy/actions/runs/11355423070/job/31584722994?pr=631). I didn't run into any of the issues from #180. Those errors were intermittent, so I do have some concern they just didn't happen to happen this time. That said, it's very possible underlying things have changed since those bugs were first noticed. For reference, those bugs were:
Full testing details
|
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.
This should resolve: #180, #622. However, #623 will still need to be done in some form to account for dependency handling in other tasks. Furthermore, we still need to implement the equivalent changes of E3SM-Project/e3sm_diags#824.
@@ -1,20 +1,20 @@ | |||
[default] | |||
case = "#expand case_name#" | |||
case = "#expand case_name_v2#" |
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.
Any test using tc_analysis
now uses the v2 input data because of E3SM-Project/e3sm_diags#866 (comment)
@@ -0,0 +1,36 @@ | |||
[default] |
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.
New min-case test where E3SM Diags runs in parallel to generate tc_analysis
plots for two year sets.
for c in tasks: | ||
dependencies: List[str] = [] |
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.
The relevant changes from #623. We want to reset the dependencies list at the beginning of each task (i.e., nothing should be carried over).
|
||
# Due to a `socket.gaierror: [Errno -2] Name or service not known` error when running e3sm_diags with tc_analysis | ||
# on multiple year_sets, if tc_analysis is in sets, then e3sm_diags should be run sequentially. | ||
if "tc_analysis" in c["sets"]: |
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.
No longer running e3sm_diags
sequentially
for c in tasks: | ||
|
||
dependencies: List[str] = [] |
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.
Relevant change from #623
# Note that this line should still be executed even if jobid == -1 | ||
# The later tc_analysis tasks still depend on this task (and thus will also fail). | ||
# Add to the dependency list | ||
dependencies.append(status_file) |
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.
No longer running tc_analysis
sequentially.
3cb5659
to
a70db5e
Compare
@forsyth2 thank you for working on the PR and the comments. I visually checked and it looks good. I'm happy to review any upcoming TC analysis related PRs, so feel free to tag me. |
Thanks @chengzhuzhang! |
Issue resolution
e3sm_diags
piece of Improve carryover dependency handling #623, thus closing [Bug]: Issues withtc_analysis
in zppy #622.Select one: This pull request is...
1. Does this do what we want it to do?
Objectives:
tc_analysis
task.e3sm_diags
task whentc_analysis
is insets
.min-case
tests oftc_analysis
to use v2, since data in v3 is unavailable at the moment (Add support for multiple time series datasets via glob and fixenso_diags
set e3sm_diags#866 (comment))Required:
2. Are the implementation details accurate & efficient?
Required:
3. Is this well documented?
Required:
tc_analysis
sequentially.4. Is this code clean?
Required:
If applicable: