From 6653ff2507f45eae909f491a9af3f1eb5358a600 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Thu, 1 Mar 2018 14:32:46 +0100 Subject: Static documentation rebuilt using current pkgdown::build_site() --- docs/articles/compiled_models.html | 62 ++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 33 deletions(-) (limited to 'docs/articles/compiled_models.html') diff --git a/docs/articles/compiled_models.html b/docs/articles/compiled_models.html index d5d29a1a..9f0b5708 100644 --- a/docs/articles/compiled_models.html +++ b/docs/articles/compiled_models.html @@ -8,8 +8,11 @@ Performance benefit by using compiled model definitions in mkin • mkin - - + + + + @@ -77,7 +80,7 @@

Performance benefit by using compiled model definitions in mkin

Johannes Ranke

-

2018-01-16

+

2018-03-01

@@ -97,73 +100,66 @@ SFO_SFO <- m1 = mkinsub("SFO"))
## 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 benchmark package.

-
if (require(rbenchmark)) {
+
if (require(rbenchmark)) {
   b.1 <- benchmark(
-    "deSolve, not compiled" = mkinfit(SFO_SFO, FOCUS_2006_D,
+    "deSolve, not compiled" = mkinfit(SFO_SFO, FOCUS_2006_D,
                                       solution_type = "deSolve",
                                       use_compiled = FALSE, quiet = TRUE),
-    "Eigenvalue based" = mkinfit(SFO_SFO, FOCUS_2006_D,
+    "Eigenvalue based" = mkinfit(SFO_SFO, FOCUS_2006_D,
                                  solution_type = "eigen", quiet = TRUE),
-    "deSolve, compiled" = mkinfit(SFO_SFO, FOCUS_2006_D,
+    "deSolve, compiled" = mkinfit(SFO_SFO, FOCUS_2006_D,
                                   solution_type = "deSolve", quiet = TRUE),
     replications = 3)
   print(b.1)
   factor_SFO_SFO <- round(b.1["1", "relative"])
-} else {
+} else {
   factor_SFO_SFO <- NA
   print("R package benchmark is not available")
 }
## Lade nötiges Paket: rbenchmark
-
##                    test replications elapsed relative user.self sys.self
-## 3     deSolve, compiled            3   1.940    1.000     1.940        0
-## 1 deSolve, not compiled            3  13.865    7.147    13.864        0
-## 2      Eigenvalue based            3   2.427    1.251     2.428        0
-##   user.child sys.child
-## 3          0         0
-## 1          0         0
-## 2          0         0
-

We see that using the compiled model is by a factor of around 7 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.

+
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
+## logical.return = TRUE, : es gibt kein Paket namens 'rbenchmark'
+
## [1] "R package benchmark is not available"
+

We see that using the compiled model is by a factor of around NA 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.

Model that can not be solved with Eigenvalues

This evaluation is also taken from the example section of mkinfit.

-
if (require(rbenchmark)) {
+
if (require(rbenchmark)) {
   FOMC_SFO <- mkinmod(
     parent = mkinsub("FOMC", "m1"),
     m1 = mkinsub( "SFO"))
 
   b.2 <- benchmark(
-    "deSolve, not compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D,
+    "deSolve, not compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D,
                                       use_compiled = FALSE, quiet = TRUE),
-    "deSolve, compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE),
+    "deSolve, compiled" = mkinfit(FOMC_SFO, FOCUS_2006_D, quiet = TRUE),
     replications = 3)
   print(b.2)
   factor_FOMC_SFO <- round(b.2["1", "relative"])
-} else {
+} else {
   factor_FOMC_SFO <- NA
   print("R package benchmark is not available")
 }
-
## Successfully compiled differential equation model from auto-generated C code.
-
##                    test replications elapsed relative user.self sys.self
-## 2     deSolve, compiled            3   3.432    1.000     3.428        0
-## 1 deSolve, not compiled            3  28.844    8.404    28.840        0
-##   user.child sys.child
-## 2          0         0
-## 1          0         0
-

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

-

This vignette was built with mkin 0.9.47.1 on

+
## Lade nötiges Paket: rbenchmark
+
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
+## logical.return = TRUE, : es gibt kein Paket namens 'rbenchmark'
+
## [1] "R package benchmark is not available"
+

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

+

This vignette was built with mkin 0.9.46.3 on

## R version 3.4.3 (2017-11-30)
 ## Platform: x86_64-pc-linux-gnu (64-bit)
 ## Running under: Debian GNU/Linux 9 (stretch)
-
## CPU model: Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz
+
## CPU model: AMD Ryzen 7 1700 Eight-Core Processor