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:
SFO_SFO <- mkinmod(
parent = mkinsub("SFO", "m1"),
m1 = mkinsub("SFO"))
## Successfully compiled differential equation model from auto-generated C code.
FOMC_SFO <- mkinmod(
parent = mkinsub("FOMC", "m1"),
m1 = mkinsub("SFO"))
## Successfully compiled differential equation model from auto-generated C code.
DFOP_SFO <- mkinmod(
parent = mkinsub("FOMC", "m1"),
m1 = mkinsub("SFO"))
## 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"]]
mkin_benchmarks[system_string, paste0("t", 1:11)] <-
c(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11)
save(mkin_benchmarks, file = "~/git/mkin/vignettes/web_only/mkin_benchmarks.rda")
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.559 | 3.929 |
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.352 | 6.110 | 2.841 |
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.759 | 1.204 | 1.275 | 2.837 | 2.026 | 2.976 |