[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