Closed LuEdRaMo closed 1 year ago
Many thanks for this, @LuEdRaMo! I think this will help us avoid maintaining duplicate code, while reusing taylorinteg
. Thank you also for posting the benchmarks, those are indeed helpful. It makes me wonder, have you tried doing runs, of say, about 10 years, in many threads, say 40 threads? I think that could help us have a better idea of the difference in performance between current main
and this PR.
A 10 years, 40 threads integration (in Julia v1.9.2) gives the following benchmarks:
-----------------
Integrator warmup
-----------------
102.183042 seconds (31.20 M allocations: 6.942 GiB, 2.73% gc time, 3707.83% compilation time)
----------------
Full integration
----------------
2687.964587 seconds (10.67 G allocations: 2.631 TiB, 17.19% gc time)
-----------------
Integrator warmup
-----------------
100.689653 seconds (31.19 M allocations: 6.940 GiB, 1.87% gc time, 3751.48% compilation time)
----------------
Full integration
----------------
2561.300486 seconds (10.67 G allocations: 2.631 TiB, 17.47% gc time)
Also, results do not change between both branches.
Many thanks for checking this! From this I reckon performance is pretty much the same actually... These runs include all the 343 asteroids, right?
These runs include all the 343 asteroids, right?
Yes, the benchmarks correspond to a full Solar System integration.
Alright, then just let me know when this is ready for review.
I think this is ready for review.
I'm thinking that this can be an opportunity for us to get rid of NBP_pN_A_J23E_J23M_J2S!
, since in practice we only use the threaded version in DE430!
. Can you try removing this function and the associated jetcoeffs!
method?
Thanks for taking care of this; merging!
In order to solve https://github.com/PerezHz/PlanetaryEphemeris.jl/issues/20, this PR deprecates
taylorinteg_threads
in favor oftaylorinteg
. As a reference, a 100 steps, 4 threads integration gives the followinig benchmarks:Also, results do not change between both branches.