aboutsummaryrefslogtreecommitdiff
path: root/vignettes/compiled_models.html
diff options
context:
space:
mode:
Diffstat (limited to 'vignettes/compiled_models.html')
-rw-r--r--vignettes/compiled_models.html69
1 files changed, 39 insertions, 30 deletions
diff --git a/vignettes/compiled_models.html b/vignettes/compiled_models.html
index 5fcd88fb..fc71debe 100644
--- a/vignettes/compiled_models.html
+++ b/vignettes/compiled_models.html
@@ -8,7 +8,9 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
+<meta name="author" content="Johannes Ranke" />
+<meta name="date" content="2015-06-22" />
<title>Performance benefit by using compiled model definitions in mkin</title>
@@ -62,6 +64,8 @@ img {
<div id="header">
<h1 class="title">Performance benefit by using compiled model definitions in mkin</h1>
+<h4 class="author"><em>Johannes Ranke</em></h4>
+<h4 class="date"><em>2015-06-22</em></h4>
</div>
<div id="TOC">
@@ -71,17 +75,17 @@ img {
</ul>
</div>
-<!--
-%\VignetteEngine{knitr::rmarkdown}
-%\VignetteIndexEntry{Performance benefit by using compiled model definitions in mkin}
--->
-<div id="benchmark-for-a-model-that-can-also-be-solved-with-eigenvalues" class="section level1">
-<h1>Benchmark for a model that can also be solved with Eigenvalues</h1>
-<p>This evaluation is taken from the example section of mkinfit. When using an mkin version equal to or greater than 0.9-36 and a compiler (gcc) is installed, you will see a message that the model is being compiled from autogenerated C code when defining a model using mkinmod.</p>
+<div id="benchmark-for-a-model-that-can-also-be-solved-with-eigenvalues" class="section level2">
+<h2>Benchmark for a model that can also be solved with Eigenvalues</h2>
+<p>This evaluation is taken from the example section of mkinfit. When using an mkin version equal to or greater than 0.9-36 and a compiler (gcc) is installed, you will see a message that the model is being compiled from autogenerated C code when defining a model using mkinmod. The package tests for presence of the gcc compiler using</p>
+<pre class="r"><code>Sys.which(&quot;gcc&quot;)</code></pre>
+<pre><code>## gcc
+## &quot;/usr/bin/gcc&quot;</code></pre>
+<p>First, we build a simple degradation model for a parent compound with one metabolite.</p>
<pre class="r"><code>library(&quot;mkin&quot;)
SFO_SFO &lt;- mkinmod(
- parent = list(type = &quot;SFO&quot;, to = &quot;m1&quot;, sink = TRUE),
- m1 = list(type = &quot;SFO&quot;))</code></pre>
+ parent = mkinsub(&quot;SFO&quot;, &quot;m1&quot;),
+ m1 = mkinsub(&quot;SFO&quot;))</code></pre>
<pre><code>## Compiling differential equation model from auto-generated C code...</code></pre>
<p>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.</p>
<pre class="r"><code>library(&quot;microbenchmark&quot;)
@@ -95,26 +99,26 @@ smb.1 &lt;- summary(mb.1)[-1]
rownames(smb.1) &lt;- c(&quot;deSolve, not compiled&quot;, &quot;Eigenvalue based&quot;, &quot;deSolve, compiled&quot;)
print(smb.1)</code></pre>
<pre><code>## min lq mean median uq
-## deSolve, not compiled 6980.8002 6996.4739 7024.5611 7012.1476 7046.4415
-## Eigenvalue based 925.3350 928.9405 951.8405 932.5460 965.0932
-## deSolve, compiled 747.2635 761.9405 771.4339 776.6174 783.5191
+## deSolve, not compiled 5379.4269 5431.6605 5455.0396 5483.8940 5492.8460
+## Eigenvalue based 930.6245 951.6701 959.4653 972.7157 973.8857
+## deSolve, compiled 755.9828 771.1000 794.1810 786.2172 813.2800
## max neval
-## deSolve, not compiled 7080.7354 3
-## Eigenvalue based 997.6404 3
-## deSolve, compiled 790.4207 3</code></pre>
-<p>We see that using the compiled model is by a factor of 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:</p>
+## deSolve, not compiled 5501.7979 3
+## Eigenvalue based 975.0556 3
+## deSolve, compiled 840.3428 3</code></pre>
+<p>We see that using the compiled model is by a factor of 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:</p>
<pre class="r"><code>smb.1[&quot;median&quot;]/smb.1[&quot;deSolve, compiled&quot;, &quot;median&quot;]</code></pre>
<pre><code>## median
-## deSolve, not compiled 9.029089
-## Eigenvalue based 1.200779
+## deSolve, not compiled 6.975037
+## Eigenvalue based 1.237210
## deSolve, compiled 1.000000</code></pre>
</div>
-<div id="benchmark-for-a-model-that-can-not-be-solved-with-eigenvalues" class="section level1">
-<h1>Benchmark for a model that can not be solved with Eigenvalues</h1>
+<div id="benchmark-for-a-model-that-can-not-be-solved-with-eigenvalues" class="section level2">
+<h2>Benchmark for a model that can not be solved with Eigenvalues</h2>
<p>This evaluation is also taken from the example section of mkinfit.</p>
<pre class="r"><code>FOMC_SFO &lt;- mkinmod(
- parent = list(type = &quot;FOMC&quot;, to = &quot;m1&quot;, sink = TRUE),
- m1 = list(type = &quot;SFO&quot;))</code></pre>
+ parent = mkinsub(&quot;FOMC&quot;, &quot;m1&quot;),
+ m1 = mkinsub( &quot;SFO&quot;))</code></pre>
<pre><code>## Compiling differential equation model from auto-generated C code...</code></pre>
<pre class="r"><code>mb.2 &lt;- microbenchmark(
mkinfit(FOMC_SFO, FOCUS_2006_D, use_compiled = FALSE, quiet = TRUE),
@@ -123,17 +127,22 @@ print(smb.1)</code></pre>
smb.2 &lt;- summary(mb.2)[-1]
rownames(smb.2) &lt;- c(&quot;deSolve, not compiled&quot;, &quot;deSolve, compiled&quot;)
print(smb.2)</code></pre>
-<pre><code>## min lq mean median uq
-## deSolve, not compiled 14.127630 14.245064 14.298201 14.362497 14.383486
-## deSolve, compiled 1.354744 1.362167 1.366362 1.369589 1.372171
+<pre><code>## min lq mean median uq
+## deSolve, not compiled 11.815894 11.84960 12.03290 11.883305 12.141404
+## deSolve, compiled 1.387086 1.43514 1.45956 1.483194 1.495796
## max neval
-## deSolve, not compiled 14.404474 3
-## deSolve, compiled 1.374752 3</code></pre>
+## deSolve, not compiled 12.399502 3
+## deSolve, compiled 1.508399 3</code></pre>
<pre class="r"><code>smb.2[&quot;median&quot;]/smb.2[&quot;deSolve, compiled&quot;, &quot;median&quot;]</code></pre>
<pre><code>## median
-## deSolve, not compiled 10.48672
-## deSolve, compiled 1.00000</code></pre>
-<p>Here we get a performance benefit of a factor of 10.5 using the version of the differential equation model compiled from C code using the inline package!</p>
+## deSolve, not compiled 8.011968
+## deSolve, compiled 1.000000</code></pre>
+<p>Here we get a performance benefit of a factor of 8 using the version of the differential equation model compiled from C code using the inline package!</p>
+<p>This vignette was built with mkin 0.9.37 on</p>
+<pre><code>## R version 3.2.1 (2015-06-18)
+## Platform: x86_64-pc-linux-gnu (64-bit)
+## Running under: Debian GNU/Linux 8 (jessie)</code></pre>
+<pre><code>## CPU model: Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz</code></pre>
</div>

Contact - Imprint