-
Notifications
You must be signed in to change notification settings - Fork 87
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
Gradual slowdown of Amr-wind solver performance #1442
Comments
Thanks @lawrenceccheung . Were you able to check just the precursor sims? I would like to rule that out. |
So this is interesting... in all of the precursor (ABL only) cases I checked, the AMR-Wind solve times have been incredibly consistent, no increasing trend in time/iter. Note that I only checked runs on Sandia hardware, Frontier is down today but I can check when that machine comes back up. This might point to something going on in the I/O for boundary inflow/outflow, or something else that happens when we do these turbine simulations. Lawrence |
Thanks for checking that. Glad the precursor is fine. Yeah... or maybe openfast somehow? I am trying to think of the best way to check this... maybe running out the uniform ALM regtest (which doesn't use boundary planes) could help eliminate candidates? |
Yes, openfast was one of my initial thoughts too, because of the amount of I/O and memory that it requires. But in the exawind hybrid solver runs, the openfast coupling runs through Nalu-Wind. The solve times/iteration look pretty good on the Nalu-Wind side, so I'm thinking it might be something else. |
@lawrenceccheung maybe we should also try a precursor with increasing refinement levels turned on? I think we wanted to do one of those for the benchmark anyway? I could imagine that just adding levels is a possible culprit? |
That's a good thought, all of the turbine cases have refinement regions that could a slow memory leak. Let me see if there's any ABL case that I've run before that has refinement regions, and if that has any impact on long term performance. |
Here is a plot from the HFM benchmark neutral case using AMR-wind. It was run on Kestrel using 20 (CPU) nodes without refinement zones. I don't quite see as catastrophic a slowdown as your case @lawrenceccheung. However, there is a very small gradual slowdown over Solve times (red), and moving average (blue) of solve times: |
Thanks @moprak-nrel. I just checked the NREL5MW ALM case that we ran for the ExaWind benchmarks, and there we see that the solve times remain relatively steady across 50,000+ iterations: This is interesting because that ALM case includes boundary I/O planes and refinements. So I'm not sure yet what could be the problem, but will continue looking across all of the cases that we have. |
Ooof the plot thickens. Keep posting data @lawrenceccheung and hopefully we can make some sense of this. |
This issue is stale because it has been open 30 days with no activity. |
Adding some of the latest timing information from the NREL5MW benchmark case that @ndevelder is running. This is a blade-resolved hybrid ExaWind solver simulation with a tower and 3 blades each in their own overset group. We're seeing an unexplained jump in the AMR-Wind solver time early on, and also this long term increase in solve times. The case is run on Sandia Flight with CPU's. |
And if it wasn't clear, the x-axis on the Nalu-Wind portion of the second plot is not right...these need more work to incorporate the number of eqn system iterations |
Bug description
After running the ExaWind driver or AMR-Wind solver for 10,000's or 100,000's of iterations, there is sometimes a noticeable slowdown in the solver performance. Solve times which were initially on the order of the 3-4 secs/iter can grow to 8-9 secs/iter.
This example is a case is from @ndevelder using the exawind hybrid solver, and showing that the slowdown is coming from the AMR-Wind solver alone:

It also appears in AMR-Wind only solutions, in this this case a 9 turbine wind farm case run with OpenFAST coupling

Here the typical solve time per iterations starts out around ~0.5 sec/iter and then grows to ~1 sec/iter about 40,000 iterations later. What's interesting is that if you restart the case, the solve time go back to ~0.5 sec/iter before slowly growing again.
Timing data from the log files can be extracted and plotted using
for AMR-Wind log files and
for ExaWind log files.
Note the number of solver iterations remains constant in AMR-Wind, here is a plot of the MAC and Nodal projection iterations required over the length the run:

Note also that the solve process also seems relatively unaffected, see the before restart/after restarts snippet from the log file below.
Steps to reproduce
Steps to reproduce the behavior:
Observed this on runs with:
AMR-Wind information
Problem has existed since at least
The text was updated successfully, but these errors were encountered: