diff options
Diffstat (limited to 'docs/articles/compiled_models.html')
-rw-r--r-- | docs/articles/compiled_models.html | 50 |
1 files changed, 22 insertions, 28 deletions
diff --git a/docs/articles/compiled_models.html b/docs/articles/compiled_models.html index 5a04168e..09039f62 100644 --- a/docs/articles/compiled_models.html +++ b/docs/articles/compiled_models.html @@ -24,13 +24,7 @@ <li> <a href="../news/index.html">News</a> </li> - </ul><ul class="nav navbar-nav navbar-right"><li> - <a href="http://github.com/jranke/mkin"> - <span class="fa fa-github fa-lg"></span> - - </a> -</li> - </ul></div><!--/.nav-collapse --> + </ul><ul class="nav navbar-nav navbar-right"></ul></div><!--/.nav-collapse --> </div><!--/.container --> </div><!--/.navbar --> @@ -41,14 +35,14 @@ <h1>Performance benefit by using compiled model definitions in mkin</h1> <h4 class="author">Johannes Ranke</h4> - <h4 class="date">2016-11-03</h4> + <h4 class="date">2016-11-04</h4> </div> <div class="contents"> -<div id="benchmark-for-a-model-that-can-also-be-solved-with-eigenvalues" class="section level2"> -<h2 class="hasAnchor"><html><body><a href="#benchmark-for-a-model-that-can-also-be-solved-with-eigenvalues" class="anchor"> </a></body></html>Benchmark for a model that can also be solved with Eigenvalues</h2> +<div id="model-that-can-also-be-solved-with-eigenvalues" class="section level2"> +<h2 class="hasAnchor"><html><body><a href="#model-that-can-also-be-solved-with-eigenvalues" class="anchor"> </a></body></html>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 C compiler (gcc) is available, you will see a message that the model is being compiled from autogenerated C code when defining a model using mkinmod. The <code><a href="../reference/mkinmod.html">mkinmod()</a></code> function checks for presence of the gcc compiler using</p> <div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">Sys.which</span>(<span class="st">"gcc"</span>)</code></pre></div> <pre><code>## gcc @@ -78,25 +72,25 @@ mb<span class="fl">.1</span> <-<span class="st"> </span><span class="kw">micr <span class="kw">print</span>(mb<span class="fl">.1</span>)</code></pre></div> <pre><code>## Unit: milliseconds ## expr min lq mean median uq -## deSolve, not compiled 6306.4527 6340.7895 6403.5937 6375.1264 6452.1643 -## Eigenvalue based 918.0808 929.7217 948.9742 941.3626 964.4210 -## deSolve, compiled 736.1337 753.6016 773.5605 771.0696 792.2739 +## deSolve, not compiled 6581.1731 6598.7831 6630.0395 6616.3931 6654.4726 +## Eigenvalue based 880.1617 890.3517 911.2758 900.5416 926.8328 +## deSolve, compiled 739.4343 749.6078 753.6543 759.7813 760.7643 ## max neval cld -## 6529.2022 3 b -## 987.4793 3 a -## 813.4783 3 a</code></pre> +## 6692.5522 3 c +## 953.1240 3 b +## 761.7474 3 a</code></pre> <div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">autoplot</span>(mb<span class="fl">.1</span>)</code></pre></div> <p><img src="compiled_models_files/figure-html/benchmark_SFO_SFO-1.png" width="672"></p> -<p>We see that using the compiled model is by a factor of 8.3 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> +<p>We see that using the compiled model is by a factor of 8.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> <div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">rownames</span>(smb<span class="fl">.1</span>) <-<span class="st"> </span>smb<span class="fl">.1</span>$expr smb<span class="fl">.1</span>[<span class="st">"median"</span>]/smb<span class="fl">.1</span>[<span class="st">"deSolve, compiled"</span>, <span class="st">"median"</span>]</code></pre></div> <pre><code>## median -## deSolve, not compiled 8.267900 -## Eigenvalue based 1.220853 +## deSolve, not compiled 8.708286 +## Eigenvalue based 1.185264 ## deSolve, compiled 1.000000</code></pre> </div> -<div id="benchmark-for-a-model-that-can-not-be-solved-with-eigenvalues" class="section level2"> -<h2 class="hasAnchor"><html><body><a href="#benchmark-for-a-model-that-can-not-be-solved-with-eigenvalues" class="anchor"> </a></body></html>Benchmark for a model that can not be solved with Eigenvalues</h2> +<div id="model-that-can-not-be-solved-with-eigenvalues" class="section level2"> +<h2 class="hasAnchor"><html><body><a href="#model-that-can-not-be-solved-with-eigenvalues" class="anchor"> </a></body></html>Model that can not be solved with Eigenvalues</h2> <p>This evaluation is also taken from the example section of mkinfit.</p> <div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">FOMC_SFO <-<span class="st"> </span><span class="kw"><a href="../reference/mkinmod.html">mkinmod</a></span>( <span class="dt">parent =</span> <span class="kw"><a href="../reference/mkinsub.html">mkinsub</a></span>(<span class="st">"FOMC"</span>, <span class="st">"m1"</span>), @@ -114,18 +108,18 @@ smb<span class="fl">.1</span>[<span class="st">"median"</span>]/smb<span class=" <span class="kw">print</span>(mb<span class="fl">.2</span>)</code></pre></div> <pre><code>## Unit: seconds ## expr min lq mean median uq -## deSolve, not compiled 13.604720 13.667244 13.689764 13.729768 13.732286 -## deSolve, compiled 1.305077 1.311124 1.328943 1.317172 1.340876 +## deSolve, not compiled 13.756286 13.813205 13.874083 13.870125 13.932982 +## deSolve, compiled 1.323196 1.372916 1.391915 1.422635 1.426274 ## max neval cld -## 13.734804 3 b -## 1.364579 3 a</code></pre> +## 13.995838 3 b +## 1.429913 3 a</code></pre> <div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">smb<span class="fl">.2</span>[<span class="st">"median"</span>]/smb<span class="fl">.2</span>[<span class="st">"deSolve, compiled"</span>, <span class="st">"median"</span>]</code></pre></div> <pre><code>## median ## 1 NA ## 2 NA</code></pre> <div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">autoplot</span>(mb<span class="fl">.2</span>)</code></pre></div> <p><img src="compiled_models_files/figure-html/benchmark_FOMC_SFO-1.png" width="672"></p> -<p>Here we get a performance benefit of a factor of 10.4 using the version of the differential equation model compiled from C code!</p> +<p>Here we get a performance benefit of a factor of 9.7 using the version of the differential equation model compiled from C code!</p> <p>This vignette was built with mkin 0.9.44.9000 on</p> <pre><code>## R version 3.3.2 (2016-10-31) ## Platform: x86_64-pc-linux-gnu (64-bit) @@ -138,8 +132,8 @@ smb<span class="fl">.1</span>[<span class="st">"median"</span>]/smb<span class=" <div class="col-md-3 hidden-xs hidden-sm" id="sidebar"> <div id="tocnav"> <h2>Contents</h2> - <ul class="nav nav-pills nav-stacked"><li><a href="#benchmark-for-a-model-that-can-also-be-solved-with-eigenvalues">Benchmark for a model that can also be solved with Eigenvalues</a></li> - <li><a href="#benchmark-for-a-model-that-can-not-be-solved-with-eigenvalues">Benchmark for a model that can not be solved with Eigenvalues</a></li> + <ul class="nav nav-pills nav-stacked"><li><a href="#model-that-can-also-be-solved-with-eigenvalues">Model that can also be solved with Eigenvalues</a></li> + <li><a href="#model-that-can-not-be-solved-with-eigenvalues">Model that can not be solved with Eigenvalues</a></li> </ul></div> </div> |