improve performance of DGMulti methods using entropy-projections (for 2D Euler)#822
improve performance of DGMulti methods using entropy-projections (for 2D Euler)#822
Conversation
Personally, I think the code is rather difficult to understand and hard to maintain by anyone else but the initiated, but I do see the benefits of the performance improvements. As long as this is not getting out of hand and spreading to the rest of Trixi, I'd say go for it 🤷 😎 |
|
My second PR to StructArrays.jl speeds up weak forms stuff such as |
jlchan
left a comment
There was a problem hiding this comment.
Thanks for adding this! This is very cool, and gives me some ideas for my next PR. It's also a nice example of "extra" specialization that can be done on top of Trixi.
Co-authored-by: Jesse Chan <jchan985@gmail.com>
|
One side note: I think this would reduce runtimes the most for |
|
Thanks for your nice review, @jlchan!
Just don't push the specializations too hard or @sloede will kill us (and Trixi.jl will become incredibly unreadable).
Yeah - this is a kind of specialization that I prototyped in #429, where we were able to beat some MFEM variants for linear advection 🎉 It's a really nice feature of Julia |
Yeah - that's one thing I'm worried about. This addresses the fact that This PR is helpful to speed things up until we can introduce a |
About what exactly - the readability issue or about getting killed? Please tell me it's the latter... |
Sounds good to me. The problems I addressed in my PRs to StructArrays.jl will still be helpful either way |
Codecov Report
@@ Coverage Diff @@
## main #822 +/- ##
==========================================
+ Coverage 92.73% 92.75% +0.02%
==========================================
Files 187 188 +1
Lines 17357 17398 +41
==========================================
+ Hits 16095 16136 +41
Misses 1262 1262
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
@jlchan This should help us to get some real science done faster.
Running
trixi_include("examples/dgmulti_2d/elixir_euler_rayleigh_taylor_instability.jl", tspan=(0.0, 0.5))(second time, after compilation) with
julia --check-bounds=no --threads=1yields the following results.main:CC @sloede for approving the general strategy of performance optimizations specific to combinations of the solver/equations.