[R-sig-dyn-mod] lsoda FASTER than ode45 (was: lsoda (deSolve) order of magnitude slower than ode45)

Maciek Jacek Swat maciej.swat at gmail.com
Wed Nov 22 12:30:26 CET 2017


Thanks Thomas, much appreciated!

However, the Nanda model was only used to learn how to use deSolve most
effectively.
Unfortunately, for a real, very stiff, model with 130 ODEs, which I cannot
share, I have the following stats
- 'lsoda' - 320 seconds
- 'vode' - 150 seconds
- 'bdf'  - 430 seconds
while ode15s takes 5 (five) seconds.

I'm trying now to find the new bottleneck (after correcting the 'times'
setting Karline and you pointed out) ...

Best, Maciej


On Wed, Nov 22, 2017 at 10:47 AM, Thomas Petzoldt <
thomas.petzoldt at tu-dresden.de> wrote:

> Hi Maciek,
>
> I've made a small benchmark with your example (i5 4690, 3.5-3.9GHz, R
> 3.4.2, deSolve 1.21, Windows 10,  average of 10 simulations each):
>
> dt = 0.01
>    lsoda: 2.85s
>
> dt = 1
>    ode45: 0.135
>    lsoda: 0.039
>    bdf:   0.025
>    vode:  0.024
>
>
> The plot of all simulations looks identical. B_CLL shows a steep change at
> the beginning, that's why dedicated solvers for stiff systems (bdf, vode)
> can be minimally faster than the automatic lsoda.
>
> Finally, R/deSolve allows to use compiled C or Fortran models and there
> are now several packages that support creation of such code ...
>
> Thomas
>
>
> gc() # clean up memory to make benchmark more reproducible
> times <- seq(0, 300, by = 1)
> N <- 10
> system.time(
>   for (i in 1:N)
>     out <- ode(y = state, times = times, func = Nanda,
>       method="vode", parms = parameters)
> )/N
>
>
> plot(out)
>
>
> --
> Dr. Thomas Petzoldt
> Technische Universitaet Dresden
> Faculty of Environmental Sciences
> Institute of Hydrobiology
> 01062 Dresden, Germany
>
> E-Mail: thomas.petzoldt at tu-dresden.de
> http://tu-dresden.de/Members/thomas.petzoldt
>
>
>

	[[alternative HTML version deleted]]



More information about the R-sig-dynamic-models mailing list