From 91a5834dd701211f929fd25419dc34561ce3b4e7 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 14 Feb 2025 09:15:20 +0100 Subject: Initialize dev docs --- docs/dev/articles/web_only/benchmarks.html | 1133 ++++++++++++++++++++++++++++ 1 file changed, 1133 insertions(+) create mode 100644 docs/dev/articles/web_only/benchmarks.html (limited to 'docs/dev/articles/web_only/benchmarks.html') diff --git a/docs/dev/articles/web_only/benchmarks.html b/docs/dev/articles/web_only/benchmarks.html new file mode 100644 index 00000000..bd6a443a --- /dev/null +++ b/docs/dev/articles/web_only/benchmarks.html @@ -0,0 +1,1133 @@ + + + + + + + +Benchmark timings for mkin • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

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.

+

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.

+
+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)
+  }
+}
+
+

Test cases +

+

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"))
+FOMC_SFO <- mkinmod(
+  parent = mkinsub("FOMC", "m1"),
+  m1 = mkinsub("SFO"))
+DFOP_SFO <- mkinmod(
+  parent = mkinsub("FOMC", "m1"), # erroneously used FOMC twice, not fixed for consistency
+  m1 = mkinsub("SFO"))
+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"]]
+
+
+

Results +

+

Benchmarks for all available error models are shown. They are +intended for improving mkin, not for comparing CPUs or operating +systems. All trademarks belong to their respective owners.

+
+

Parent only +

+

Constant variance (t1) and two-component error model (t2) for four +models fitted to two datasets, i.e. eight fits for each test.

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OSCPURmkint1t2
LinuxRyzen 7 1700NA0.9.48.13.61011.019
LinuxRyzen 7 1700NA0.9.49.18.18422.889
LinuxRyzen 7 1700NA0.9.49.27.06412.558
LinuxRyzen 7 1700NA0.9.49.37.29621.239
LinuxRyzen 7 1700NA0.9.49.45.93620.545
LinuxRyzen 7 1700NA0.9.50.21.7143.971
LinuxRyzen 7 1700NA0.9.50.31.7524.156
LinuxRyzen 7 1700NA0.9.50.41.7863.729
LinuxRyzen 7 1700NA1.0.31.8813.504
LinuxRyzen 7 1700NA1.0.41.8673.450
LinuxRyzen 7 17004.1.31.1.01.7913.289
LinuxRyzen 7 17004.2.11.1.01.8423.453
Linuxi7-4710MQ4.2.11.1.01.9594.116
Linuxi7-4710MQ4.1.31.1.01.8773.906
Linuxi7-4710MQ4.2.11.1.11.6443.172
LinuxRyzen 7 17004.2.11.1.11.7703.377
LinuxRyzen 7 17004.2.11.1.21.9573.633
LinuxRyzen 7 17004.2.21.2.02.1403.774
LinuxRyzen 7 17004.2.21.2.22.1873.851
LinuxRyzen 9 7950X4.2.21.2.01.2881.794
LinuxRyzen 9 7950X4.2.21.2.21.2761.804
LinuxRyzen 9 7950X4.2.21.2.31.3701.883
LinuxRyzen 9 7950X4.2.31.2.31.4061.948
LinuxRyzen 9 7950X4.3.01.2.41.3861.960
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.52.3693.632
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.62.8564.960
LinuxRyzen 9 7950X4.3.21.2.61.4082.041
LinuxRyzen 9 7950X4.4.21.2.91.3231.925
LinuxRyzen 9 7950X4.4.21.2.101.3711.980
+
+
+

One metabolite +

+

Constant variance (t3), two-component error model (t4), and variance +by variable (t5) for three models fitted to one dataset, i.e. three fits +for each test.

+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OSCPURmkint3t4t5
LinuxRyzen 7 1700NA0.9.48.13.76414.3479.495
LinuxRyzen 7 1700NA0.9.49.14.64913.7896.395
LinuxRyzen 7 1700NA0.9.49.24.7868.4615.675
LinuxRyzen 7 1700NA0.9.49.34.51013.8057.386
LinuxRyzen 7 1700NA0.9.49.44.44615.3356.002
LinuxRyzen 7 1700NA0.9.50.21.4026.1742.764
LinuxRyzen 7 1700NA0.9.50.31.4306.6152.878
LinuxRyzen 7 1700NA0.9.50.41.3977.2512.810
LinuxRyzen 7 1700NA1.0.31.4306.3442.798
LinuxRyzen 7 1700NA1.0.41.4156.3642.820
LinuxRyzen 7 17004.1.31.1.01.3106.2792.681
LinuxRyzen 7 17004.2.11.1.03.80221.2478.461
Linuxi7-4710MQ4.2.11.1.03.33419.5217.565
Linuxi7-4710MQ4.1.31.1.01.5788.0583.339
Linuxi7-4710MQ4.2.11.1.11.2305.8392.444
LinuxRyzen 7 17004.2.11.1.11.3085.7582.558
LinuxRyzen 7 17004.2.11.1.21.5036.1472.803
LinuxRyzen 7 17004.2.21.2.01.5546.1932.843
LinuxRyzen 7 17004.2.21.2.21.5856.3353.003
LinuxRyzen 9 7950X4.2.21.2.00.7922.3781.245
LinuxRyzen 9 7950X4.2.21.2.20.7842.3551.233
LinuxRyzen 9 7950X4.2.21.2.30.7702.0111.123
LinuxRyzen 9 7950X4.2.31.2.30.7932.1091.178
LinuxRyzen 9 7950X4.3.01.2.40.7792.0801.106
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.51.8235.5552.404
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.61.7615.4052.462
LinuxRyzen 9 7950X4.3.21.2.60.7952.2281.178
LinuxRyzen 9 7950X4.4.21.2.90.7542.1531.139
LinuxRyzen 9 7950X4.4.21.2.100.7622.1791.131
+
+
+

Two metabolites +

+

Constant variance (t6 and t7), two-component error model (t8 and t9), +and variance by variable (t10 and t11) for one model fitted to one +dataset, i.e. one fit for each test.

+ ++++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OSCPURmkint6t7t8t9t10t11
LinuxRyzen 7 1700NA0.9.48.12.6234.5877.52516.6218.57631.267
LinuxRyzen 7 1700NA0.9.49.12.5424.1284.6328.1713.6765.636
LinuxRyzen 7 1700NA0.9.49.22.7234.4784.8627.6183.5795.574
LinuxRyzen 7 1700NA0.9.49.32.6434.3747.02011.1245.3887.365
LinuxRyzen 7 1700NA0.9.49.42.6354.2594.7377.7633.4275.626
LinuxRyzen 7 1700NA0.9.50.20.7771.2361.3322.8722.0692.987
LinuxRyzen 7 1700NA0.9.50.30.8581.2641.3332.9842.1133.073
LinuxRyzen 7 1700NA0.9.50.40.7831.2821.4863.8151.9583.105
LinuxRyzen 7 1700NA1.0.30.7631.2441.4573.0541.9232.839
LinuxRyzen 7 1700NA1.0.40.7851.2521.4663.0911.9362.826
LinuxRyzen 7 17004.1.31.1.00.7441.2271.2883.5531.8952.738
LinuxRyzen 7 17004.2.11.1.03.0184.1655.03610.8446.6239.722
Linuxi7-4710MQ4.2.11.1.02.5223.7924.14311.2685.9358.728
Linuxi7-4710MQ4.1.31.1.00.9071.5351.5894.5442.3023.463
Linuxi7-4710MQ4.2.11.1.10.6781.0951.1493.2471.6582.472
LinuxRyzen 7 17004.2.11.1.10.6961.1241.3212.7861.7442.566
LinuxRyzen 7 17004.2.11.1.20.8611.2951.5073.1021.9612.852
LinuxRyzen 7 17004.2.21.2.00.9131.3451.5393.0111.9872.802
LinuxRyzen 7 17004.2.21.2.20.9351.3811.5513.2091.9763.013
LinuxRyzen 9 7950X4.2.21.2.00.4450.5910.6601.1900.8141.100
LinuxRyzen 9 7950X4.2.21.2.20.4430.5860.6611.1760.8031.097
LinuxRyzen 9 7950X4.2.21.2.30.4180.5300.5911.0060.7160.949
LinuxRyzen 9 7950X4.2.31.2.30.4320.5490.6091.0520.7430.989
LinuxRyzen 9 7950X4.3.01.2.40.4100.5260.5531.2490.7120.948
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.50.7981.0961.2173.1731.6342.271
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.60.8131.1361.2203.1141.5982.255
LinuxRyzen 9 7950X4.3.21.2.60.4390.5570.5851.3380.7490.999
LinuxRyzen 9 7950X4.4.21.2.90.4240.5340.5601.2980.7350.981
LinuxRyzen 9 7950X4.4.21.2.100.4260.5330.5651.2960.7280.978
+
+
+
+
+ + + + +
+ + + + + + + -- cgit v1.2.1