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

Tim Keitt tkeitt at utexas.edu
Wed Nov 22 21:51:26 CET 2017


If you like C++, you might have a look at odeintr.

THK

http://www.keittlab.org/

On Wed, Nov 22, 2017 at 10:10 AM, John Harrold <john.m.harrold at gmail.com>
wrote:

> Hello Maciek,
>
> I go back and forth between Matlab and R. In Matlab I run my models in C
> through Simulink as an S-function. In R I use the compiled C that Thomas
> mentions above. It took me some experimentation, but I've managed to
> get things to run at comparable speeds in both Matlab and R. I've put a bit
> more effort in optimizing my R code, and I actually have R running faster
> in some instances.
>
> John
>
> On Wed, Nov 22, 2017 at 2: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
> >
> > _______________________________________________
> > R-sig-dynamic-models mailing list
> > R-sig-dynamic-models at r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-dynamic-models
> >
>
>
>
> --
> -------------------------------------
> John M. Harrold
> john.m.harrold _at_gmail
> -------------------------------------
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-dynamic-models mailing list
> R-sig-dynamic-models at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-dynamic-models
>

	[[alternative HTML version deleted]]



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