From 3ea655cdbefcf2056da456b7debc68ba7b535f55 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Thu, 24 Mar 2016 08:35:26 +0100 Subject: Static documentation rebuilt by staticdocs::build_site() --- inst/web/vignettes/compiled_models.html | 59 ++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 26 deletions(-) (limited to 'inst/web/vignettes/compiled_models.html') diff --git a/inst/web/vignettes/compiled_models.html b/inst/web/vignettes/compiled_models.html index 756a2753..50db7e9a 100644 --- a/inst/web/vignettes/compiled_models.html +++ b/inst/web/vignettes/compiled_models.html @@ -10,7 +10,7 @@ - + Performance benefit by using compiled model definitions in mkin @@ -65,7 +65,7 @@ img {
@@ -89,8 +89,10 @@ SFO_SFO <- mkinmod(
## Successfully compiled differential equation model from auto-generated C code.

We can compare the performance of the Eigenvalue based solution against the compiled version and the R implementation of the differential equations using the microbenchmark package.

library("microbenchmark")
-library("ggplot2")
-mb.1 <- microbenchmark(
+library("ggplot2")
+
## Need help? Try the ggplot2 mailing list:
+## http://groups.google.com/group/ggplot2.
+
mb.1 <- microbenchmark(
   "deSolve, not compiled" = mkinfit(SFO_SFO, FOCUS_2006_D, 
                                     solution_type = "deSolve", 
                                     use_compiled = FALSE, quiet = TRUE),
@@ -98,27 +100,29 @@ mb.1 <- microbenchmark(
                                solution_type = "eigen", quiet = TRUE),
   "deSolve, compiled" = mkinfit(SFO_SFO, FOCUS_2006_D, 
                                 solution_type = "deSolve", quiet = TRUE),
-  times = 3, control = list(warmup = 1))
-
-smb.1 <- summary(mb.1)
+  times = 3, control = list(warmup = 0))
+
## Warning in microbenchmark(`deSolve, not compiled` = mkinfit(SFO_SFO,
+## FOCUS_2006_D, : Could not measure overhead. Your clock might lack
+## precision.
+
smb.1 <- summary(mb.1)
 print(mb.1)
## Unit: milliseconds
 ##                   expr       min        lq      mean    median        uq
-##  deSolve, not compiled 9539.3064 9543.1547 9554.1987 9547.0031 9561.6448
-##       Eigenvalue based  927.5569  928.1716  943.8293  928.7864  951.9656
-##      deSolve, compiled  734.6125  737.3273  739.0161  740.0420  741.2179
+##  deSolve, not compiled 9280.0854 9299.6757 9323.2559 9319.2659 9344.8411
+##       Eigenvalue based  885.7475  891.8548  907.2823  897.9621  918.0498
+##      deSolve, compiled  713.2624  721.4990  728.2856  729.7357  735.7972
 ##        max neval cld
-##  9576.2865     3   c
-##   975.1447     3  b 
-##   742.3938     3 a
+## 9370.4163 3 c +## 938.1374 3 b +## 741.8588 3 a
autoplot(mb.1)
-

-

We see that using the compiled model is by a factor of 12.9 faster than using the R version with the default ode solver, and it is even faster than the Eigenvalue based solution implemented in R which does not need iterative solution of the ODEs:

+

+

We see that using the compiled model is by a factor of 12.8 faster than using the R version with the default ode solver, and it is even faster than the Eigenvalue based solution implemented in R which does not need iterative solution of the ODEs:

rownames(smb.1) <- smb.1$expr
 smb.1["median"]/smb.1["deSolve, compiled", "median"]
##                          median
-## deSolve, not compiled 12.900624
-## Eigenvalue based       1.255046
+## deSolve, not compiled 12.770742
+## Eigenvalue based       1.230531
 ## deSolve, compiled      1.000000
@@ -132,23 +136,26 @@ smb.1["median"]/smb.1["deSolve, compiled", "median" "deSolve, not compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D, use_compiled = FALSE, quiet = TRUE), "deSolve, compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE), - times = 3, control = list(warmup = 1)) -smb.2 <- summary(mb.2) + times = 3, control = list(warmup = 0)) +
## Warning in microbenchmark(`deSolve, not compiled` = mkinfit(FOMC_SFO,
+## FOCUS_2006_D, : Could not measure overhead. Your clock might lack
+## precision.
+
smb.2 <- summary(mb.2)
 print(mb.2)
## Unit: seconds
 ##                   expr       min        lq      mean    median        uq
-##  deSolve, not compiled 20.728228 20.867978 20.959811 21.007729 21.075602
-##      deSolve, compiled  1.343219  1.382365  1.399697  1.421511  1.427936
-##        max neval cld
-##  21.143476     3   b
-##   1.434362     3  a
+## deSolve, not compiled 20.543131 20.661195 20.720383 20.779259 20.809008 +## deSolve, compiled 1.314865 1.316439 1.328049 1.318014 1.334642 +## max neval cld +## 20.83876 3 b +## 1.35127 3 a
smb.2["median"]/smb.2["deSolve, compiled", "median"]
##   median
 ## 1     NA
 ## 2     NA
autoplot(mb.2)
-

-

Here we get a performance benefit of a factor of 14.8 using the version of the differential equation model compiled from C code using the inline package!

+

+

Here we get a performance benefit of a factor of 15.8 using the version of the differential equation model compiled from C code using the inline package!

This vignette was built with mkin 0.9.42 on

## R version 3.2.4 Revised (2016-03-16 r70336)
 ## Platform: x86_64-pc-linux-gnu (64-bit)
-- 
cgit v1.2.1