aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Ranke <jranke@uni-bremen.de>2022-07-14 09:46:26 +0200
committerJohannes Ranke <jranke@uni-bremen.de>2022-07-14 09:46:26 +0200
commita41ac4ab2cdfb83ec3aa5f7cda6983f06216fba9 (patch)
tree560d9148b1695b7337217c3c17e89864e7e12514
parentab502a6aeacda7c70abe52b8c16e2a15f592a6ed (diff)
Improve readability of benchmark code shown in vignette
-rw-r--r--vignettes/web_only/benchmarks.html40
-rw-r--r--vignettes/web_only/benchmarks.rmd33
-rw-r--r--vignettes/web_only/mkin_benchmarks.rdabin1483 -> 1482 bytes
3 files changed, 44 insertions, 29 deletions
diff --git a/vignettes/web_only/benchmarks.html b/vignettes/web_only/benchmarks.html
index 4afe49c4..5f81f39f 100644
--- a/vignettes/web_only/benchmarks.html
+++ b/vignettes/web_only/benchmarks.html
@@ -1599,13 +1599,23 @@ div.tocify {
<h1 class="title toc-ignore">Benchmark timings for mkin</h1>
<h4 class="author">Johannes Ranke</h4>
-<h4 class="date">Last change 1 July 2022 (rebuilt 2022-07-12)</h4>
+<h4 class="date">Last change 14 July 2022 (rebuilt 2022-07-14)</h4>
</div>
<p>Each system is characterized by the operating system type, the CPU type, the mkin version, and, as in June 2022 the current R version lead to worse performance, the R version. A compiler was available, so if no analytical solution was available, compiled ODE models are used.</p>
<p>Every fit is only performed once, so the accuracy of the benchmarks is limited.</p>
+<p>The following wrapper function for <code>mmkin</code> is used because the way the error model is specified was changed in mkin version 0.9.49.1.</p>
+<pre class="r"><code>if (packageVersion(&quot;mkin&quot;) &gt; &quot;0.9.48.1&quot;) {
+ mmkin_bench &lt;- function(models, datasets, error_model = &quot;const&quot;) {
+ mmkin(models, datasets, error_model = error_model, cores = 1, quiet = TRUE)
+ }
+} else {
+ mmkin_bench &lt;- function(models, datasets, error_model = NULL) {
+ mmkin(models, datasets, reweight.method = error_model, cores = 1, quiet = TRUE)
+ }
+}</code></pre>
<div id="test-cases" class="section level2">
<h2>Test cases</h2>
<p>Parent only:</p>
@@ -1613,6 +1623,7 @@ div.tocify {
FOCUS_D &lt;- subset(FOCUS_2006_D, value != 0)
parent_datasets &lt;- list(FOCUS_C, FOCUS_D)
+
t1 &lt;- system.time(mmkin_bench(c(&quot;SFO&quot;, &quot;FOMC&quot;, &quot;DFOP&quot;, &quot;HS&quot;), parent_datasets))[[&quot;elapsed&quot;]]
t2 &lt;- system.time(mmkin_bench(c(&quot;SFO&quot;, &quot;FOMC&quot;, &quot;DFOP&quot;, &quot;HS&quot;), parent_datasets,
error_model = &quot;tc&quot;))[[&quot;elapsed&quot;]]</code></pre>
@@ -1658,11 +1669,6 @@ t10 &lt;- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a),
error_model = &quot;obs&quot;))[[&quot;elapsed&quot;]]
t11 &lt;- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c),
error_model = &quot;obs&quot;))[[&quot;elapsed&quot;]]</code></pre>
-<pre class="r"><code>mkin_benchmarks[system_string, paste0(&quot;t&quot;, 1:11)] &lt;-
- c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
-save(mkin_benchmarks, file = benchmark_path)
-# Hide rownames from kable for results section
-rownames(mkin_benchmarks) &lt;- NULL</code></pre>
</div>
<div id="results" class="section level2">
<h2>Results</h2>
@@ -1807,8 +1813,8 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="left">Ryzen 7 1700</td>
<td align="left">4.2.1</td>
<td align="left">1.1.1</td>
-<td align="right">1.767</td>
-<td align="right">3.396</td>
+<td align="right">1.770</td>
+<td align="right">3.377</td>
</tr>
</tbody>
</table>
@@ -1969,9 +1975,9 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="left">Ryzen 7 1700</td>
<td align="left">4.2.1</td>
<td align="left">1.1.1</td>
-<td align="right">1.320</td>
-<td align="right">5.774</td>
-<td align="right">2.575</td>
+<td align="right">1.308</td>
+<td align="right">5.758</td>
+<td align="right">2.558</td>
</tr>
</tbody>
</table>
@@ -2180,12 +2186,12 @@ rownames(mkin_benchmarks) &lt;- NULL</code></pre>
<td align="left">Ryzen 7 1700</td>
<td align="left">4.2.1</td>
<td align="left">1.1.1</td>
-<td align="right">0.700</td>
-<td align="right">1.146</td>
-<td align="right">1.334</td>
-<td align="right">2.807</td>
-<td align="right">1.750</td>
-<td align="right">2.593</td>
+<td align="right">0.696</td>
+<td align="right">1.124</td>
+<td align="right">1.321</td>
+<td align="right">2.786</td>
+<td align="right">1.744</td>
+<td align="right">2.566</td>
</tr>
</tbody>
</table>
diff --git a/vignettes/web_only/benchmarks.rmd b/vignettes/web_only/benchmarks.rmd
index 420bef27..9c8c10b7 100644
--- a/vignettes/web_only/benchmarks.rmd
+++ b/vignettes/web_only/benchmarks.rmd
@@ -1,7 +1,7 @@
---
title: "Benchmark timings for mkin"
author: "Johannes Ranke"
-date: Last change 1 July 2022 (rebuilt `r Sys.Date()`)
+date: Last change 14 July 2022 (rebuilt `r Sys.Date()`)
output:
html_document:
toc: true
@@ -26,6 +26,21 @@ solution was available, compiled ODE models are used.
Every fit is only performed once, so the accuracy of the benchmarks is limited.
+The following wrapper function for `mmkin` is used because the way the error
+model is specified was changed in mkin version 0.9.49.1.
+
+```{r}
+if (packageVersion("mkin") > "0.9.48.1") {
+ mmkin_bench <- function(models, datasets, error_model = "const") {
+ mmkin(models, datasets, error_model = error_model, cores = 1, quiet = TRUE)
+ }
+} else {
+ mmkin_bench <- function(models, datasets, error_model = NULL) {
+ mmkin(models, datasets, reweight.method = error_model, cores = 1, quiet = TRUE)
+ }
+}
+```
+
```{r include = FALSE}
cpu_model <- benchmarkme::get_cpu()$model_name
# Abbreviate CPU identifiers
@@ -53,18 +68,11 @@ load(benchmark_path)
mkin_benchmarks[system_string, c("CPU", "OS", "mkin", "R")] <-
c(cpu_model, operating_system, mkin_version, R_version)
-
-if (mkin_version > "0.9.48.1") {
- mmkin_bench <- function(models, datasets, error_model = "const") {
- mmkin(models, datasets, error_model = error_model, cores = 1, quiet = TRUE)
- }
-} else {
- mmkin_bench <- function(models, datasets, error_model = NULL) {
- mmkin(models, datasets, reweight.method = error_model, cores = 1, quiet = TRUE)
- }
-}
```
+
+
+
## Test cases
Parent only:
@@ -74,6 +82,7 @@ FOCUS_C <- FOCUS_2006_C
FOCUS_D <- subset(FOCUS_2006_D, value != 0)
parent_datasets <- list(FOCUS_C, FOCUS_D)
+
t1 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), parent_datasets))[["elapsed"]]
t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), parent_datasets,
error_model = "tc"))[["elapsed"]]
@@ -129,7 +138,7 @@ t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c),
error_model = "obs"))[["elapsed"]]
```
-```{r results}
+```{r results, include = FALSE}
mkin_benchmarks[system_string, paste0("t", 1:11)] <-
c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
save(mkin_benchmarks, file = benchmark_path)
diff --git a/vignettes/web_only/mkin_benchmarks.rda b/vignettes/web_only/mkin_benchmarks.rda
index 49a91664..d507131a 100644
--- a/vignettes/web_only/mkin_benchmarks.rda
+++ b/vignettes/web_only/mkin_benchmarks.rda
Binary files differ

Contact - Imprint