Open efaulhaber opened 6 months ago
Thanks a lot for investigating this. It seems all be related to using some form of positivity limiting
Most, if not all closure errors on Apple Silicon are caused by similar constructs as in #1462 in different indicators used for AMR and limiting.
The current problems in 1D and 2D are caused by:
IndicatorHennemannGassner
in 1D.IndicatorHennemannGassnerShallowWater
in 1D.IndicatorHennemannGassner
in 2D.IndicatorHennemannGassnerShallowWater
in 2D.elixir_euler_warm_bubble.jl
and elixir_euleracoustics_co-rotating_vortex_pair.jl
seem to be caused by the @threded
loop in compute_coefficients!
. No idea why this is not causing problems elsewhere.Note that I mentioned the 1D and 2D indicators separately because these are different codes that need to be refactored like I did in #1462.
As I mentioned in #1830, many elixirs are still not working on Apple Silicon on multiple threads. To determine a definite list of elixirs, I started running all tests on 2 threads (ignoring allocation tests, which will fail on multiple threads due to extra allocations).
Here is the summary for
TreeMesh
. I'll keep running more tests in the background. The failing tests are due to slight differences in the L2/Linf errors. The errors are all due toLoadError: cfunction: closures are not supported on this platform
(see #1462 for a solution that has to be applied to the remaining indicators).test_tree_2d_part1.jl
passed.