All are solved at reltol=1e-3, abstol=1e-6
using the fastest ODE solver of the respective package for the given problem.
- SciPy LSODA through odeint takes ~489μs
- SciPy LSODA through odeint with Numba takes ~257μs
- NumbaLSODA takes ~25μs
- DifferentialEquations.jl Rosenbrock23 takes ~9.2μs
- SciPy LSODA through odeint takes 53x as long
- SciPy LSODA through odeint with Numba takes 28x as long
- numbalsoda takes 2.7x as long
I realise this is an older gist but it should be pointed out that
timeit.Timer(time_func).timeit(number=100)
doesn't return the average time taken, but the total for the 100 iterations, so for your numbers here, the Numba example is ~6x slower than Julia, not 500x. I reran that example and rewrote it for NumbaLSODA, and the latter is ~6x faster, so equivalent to Julia per the numbers here,