vignettes/web_only/benchmarks.Rmd
benchmarks.Rmd
Each system is characterized by its CPU type, the operating system type and the mkin version. Currently only values for one system are available.
cpu_model <- benchmarkme::get_cpu()$model_name operating_system <- Sys.info()[["sysname"]] mkin_version <- as.character(packageVersion("mkin")) system_string <- paste0(operating_system, ", ", cpu_model, ", mkin version ", mkin_version) load("~/git/mkin/vignettes/web_only/mkin_benchmarks.rda") mkin_benchmarks[system_string, c("CPU", "OS", "mkin")] <- c(cpu_model, operating_system, mkin_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) } }
Parent only:
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"]]
One metabolite:
## Successfully compiled differential equation model from auto-generated C code.
## Successfully compiled differential equation model from auto-generated C code.
## Successfully compiled differential equation model from auto-generated C code.
t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D)))[["elapsed"]] t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D), error_model = "tc"))[["elapsed"]] t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D), error_model = "obs"))[["elapsed"]]
Two metabolites, synthetic data:
m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"), M1 = mkinsub("SFO", "M2"), M2 = mkinsub("SFO"), use_of_ff = "max", quiet = TRUE) m_synth_DFOP_par <- mkinmod(parent = mkinsub("DFOP", c("M1", "M2")), M1 = mkinsub("SFO"), M2 = mkinsub("SFO"), use_of_ff = "max", quiet = TRUE) SFO_lin_a <- synthetic_data_for_UBA_2014[[1]]$data DFOP_par_c <- synthetic_data_for_UBA_2014[[12]]$data t6 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a)))[["elapsed"]] t7 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c)))[["elapsed"]] t8 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "tc"))[["elapsed"]] t9 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "tc"))[["elapsed"]] t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a), error_model = "obs"))[["elapsed"]] t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c), error_model = "obs"))[["elapsed"]]
Currently, we only have benchmark information on one system, therefore only the mkin version is shown with the results below. Timings are in seconds, shorter is better.
rownames(mkin_benchmarks) <- as.character(mkin_benchmarks$mkin)
Benchmarks for all available error models are shown.
Constant variance and two-component error model:
kable(mkin_benchmarks[, c("t1", "t2")])
t1 | t2 | |
---|---|---|
0.9.48.1 | 3.610 | 11.019 |
0.9.49.1 | 8.184 | 22.889 |
0.9.49.2 | 7.064 | 12.558 |
0.9.49.3 | 7.296 | 21.239 |
0.9.49.4 | 5.936 | 20.545 |
0.9.50.2 | 1.659 | 3.900 |
Constant variance, variance by variable and two-component error model:
kable(mkin_benchmarks[, c("t3", "t4", "t5")])
t3 | t4 | t5 | |
---|---|---|---|
0.9.48.1 | 3.764 | 14.347 | 9.495 |
0.9.49.1 | 4.649 | 13.789 | 6.395 |
0.9.49.2 | 4.786 | 8.461 | 5.675 |
0.9.49.3 | 4.510 | 13.805 | 7.386 |
0.9.49.4 | 4.446 | 15.335 | 6.002 |
0.9.50.2 | 1.389 | 6.106 | 2.716 |
Two different datasets, for each constant variance, variance by variable and two-component error model are shown:
kable(mkin_benchmarks[, paste0("t", 6:11)])
t6 | t7 | t8 | t9 | t10 | t11 | |
---|---|---|---|---|---|---|
0.9.48.1 | 2.623 | 4.587 | 7.525 | 16.621 | 8.576 | 31.267 |
0.9.49.1 | 2.542 | 4.128 | 4.632 | 8.171 | 3.676 | 5.636 |
0.9.49.2 | 2.723 | 4.478 | 4.862 | 7.618 | 3.579 | 5.574 |
0.9.49.3 | 2.643 | 4.374 | 7.020 | 11.124 | 5.388 | 7.365 |
0.9.49.4 | 2.635 | 4.259 | 4.737 | 7.763 | 3.427 | 5.626 |
0.9.50.2 | 0.751 | 1.209 | 1.270 | 2.859 | 2.026 | 2.963 |