-
Notifications
You must be signed in to change notification settings - Fork 37
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
Add LTS option to dam_break and parabolic_bowl test cases #738
Conversation
While LTS seems to work better than RK4 with the coarser mesh (120 cm) it does not show the same improved behavior at finer meshes (40 cm) as the pictures below will show. It seems to be a thing though for the W/D scheme to not improve consistently with finer meshes as observed, for instance, here: #670 and here: #716 |
I am not showing the |
An interesting thing for the |
Notice how the wave has moved away from the dark grey region in the picture from https://www.sciencedirect.com/science/article/abs/pii/S0098300413001362?via%3Dihub This is LTS, and there is no wave front anymore in [10,13]x[11,13]: A second wave front seems to have barely just left the region [10,13]x[11,13] with RK4, I cannot tell for sure if the second wave front has left that region or not: |
for icell in range(1, len(lines)): | ||
if (lts_rgn[icell - 1] == 1 or lts_rgn[icell - 1] == 5): # fine | ||
|
||
# newf+= "0 1 0 " + lines[icell].strip() + "\n" |
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.
Did you intend to remove these lines?
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.
I don't think so, why?
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.
Oh, just that they can be deleted rather than commented out.
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.
Even though I do not anticipate using them in the future, I would rather have them there as a record in case we will need to use that old METIS partitioning for some reason. If I remove them then I will not remember how they were :)
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.
Ok. Why don't you leave a comment that mentions that they refer to the old METIS partitioning so others know why they are there?
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.
Thanks for the suggestion, done!
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.
@gcapodag I haven't yet tried running with this branch, but I hope to get to it along with the E3SM PR by the end of the week. Just saw a few things that you might want to clean up when you have a chance.
@@ -1,92 +0,0 @@ | |||
from mpas_tools.io import write_netcdf |
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.
Did you mean to remove this file? Just looking at the github page it seems to be missing.
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.
oops sorry, let me restore it
@cbegeman thanks for your comments, sorry it took me a minute to address them. I just did. When you get a chance, please test this out using the companion LTS/WD PR in E3SM. Also, do you have any suggestions on how to fix the failures for CI? Thanks. |
On the head of this PR, I try:
and I get the error
@gcapodag I suspect that the file
exists locally for you but was not added to the repo. |
Thanks @mark-petersen. I created this PR copying over files from another branch where there are extra files that should not be included here. It looks like that |
@gcapodag All of the dam break tests ran fine for me on Chrys with intel, impi. I checked the viz and LTS looks visually identical to RK4 time integrator. |
Update: I got a timeout at 2h on 1 node for just the ramp_lts/forward_5km step. It reached 0001-01-02_14:07:12. |
Thanks @cbegeman . Unfortunately I do not have access to Chrysalis and can only test on Perlmutter. On Perlmutter I ran the test
All the resolutions were run one after the other and the times above have been outputted right after the viz step had completed, which happens after the 5km forward step is done. |
@gcapodag I got a time out with debug on at |
@cbegeman can you please try again on Chrysalis to see if it still hangs? I realized that I had not modified the forward namelist to set |
@gcapodag Great! That namelist fix did the trick for me on Chyrsalis. Approving now. |
Awesome! Thank you so much for working with me on this @cbegeman , you've been a huge help! |
@cbegeman, I'm assigning this to you to merge once it's been reviewed. Does that work for you? |
Yes, happy to take care of the merge. @mark-petersen and @sbrus89 It appears that we are still waiting on your reviews. |
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.
I ran these cases successfully on Perlmutter with debug flags and everything ran successfully and looks good! My only comment is that maybe the documentation for these cases should be updated to reflect the addition of LTS configs?
Thank you @sbrus89 ! That is a good observation. I do not have a preference so I am going to defer to you and the others. One thing I would like to mention is that these tests serve as a check that W/D works with LTS and do not leverage any "LTS power" in terms of running faster, from this point of view, having LTS on is just a matter of using a different time integrator. |
@gcapodag, it seems worth creating an I would still add something about LTS support to the docs for these tests wouldn't hurt. You can say that it's just for regression testing and doesn't provide a performance improvement. |
Sounds good everyone. I just created an |
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.
@gcapodag, this looks great to me. Nice job on getting LTS working with wetting/drying!
@sbrus89 @gcapodag Can one of you post an issue for this when you have a chance so we don't lose track of it? Thanks! |
@sbrus89 did you see that issue with the plot in your latest tests or is it only on my end? |
Tested by rebasing this pr on the head of main, then on chicoma
and using the head of E3SM-Project/E3SM#6074 compiled with gnu optimized. This proceeds through the steps, and I can see the same images as above. Beautiful! I then tested:
and it also runs fine. Thanks! |
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.
@gcapodag thank you for the addition of these insightful test cases to show that wetting and drying work with LTS. This is a great example of coordinated code and testing PRs. The documentation *.rst
pages also look great.
Also tested both |
Great, thanks @mark-petersen ! |
Merged! Thanks for all your work on this @gcapodag! |
Oh, I see this should have had an "E3SM PR required" label. I think since these tests are not included in any regular test suites it will be ok until the E3SM PR is merged, but I can revert if need-be. |
Thanks @cbegeman ! I see that the E3SM PR received all the necessary approvals yesterday so it should be merged any day now I believe. |
This PR enhances the
dam_break
andparabolic_bowl
test cases with the option to run using the local time-stepping (LTS) time integrator. Note that LTS only works in a single layer setting. Please also see the companion PR E3SM-Project/E3SM#6074Checklist
api.rst
) has any new or modified class, method and/or functions listedE3SM-Project
submodule has been updated with relevant E3SM changesMALI-Dev
submodule has been updated with relevant MALI changesTesting
in this PR) any testing that was used to verify the changes