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
Proposal for multi-threading the hydraulic and quality solvers #307
Comments
this is an ambitious task! very nicely thought-out document so thanks @michaeltryby for that. a few random thoughts: This seems like a good opportunity to consider breaking apart the hydraulics and water quality components into different compilable units. You could envision a simulation manager task that can execute a hydraulic step using This paradigm extends well to writing of results. Why wait for the disk I/O round-trip before executing the next analysis step? Spin-off the results persistence into its own compilation unit I'm sure this topic will generate lots of great comments, and I'm looking forward to the discussion! |
Interesting idea @michaeltryby . If one assumes for a best case scenario that a hydraulics solution in a time period is always obtained faster than the water quality updating over the time period then you're essentially cutting the overall run time by the total time spent on solving hydraulics (minus any threading overhead). It seems like one could profile the current EPANET implementation to compare the time spent in |
I think if there are not look at two separate sections , there will still be some solutions |
@michaeltryby i think if we use parallel programming to solve sparse matrix in hydraulic and quality solver , it can save time. |
Might be of relevance for other: "Quest for a New Solver for EPANET 2" |
Please feel free to offer constructive comment.
task-description.txt
The text was updated successfully, but these errors were encountered: