diff --git a/test/benchmark/simulation.cpp b/test/benchmark/simulation.cpp index a958d84b4..e7a54d7b4 100644 --- a/test/benchmark/simulation.cpp +++ b/test/benchmark/simulation.cpp @@ -115,101 +115,43 @@ TEST_CASE("Benchmark simulators", "[benchmark]") // 4.50754 ms 4.47813 ms 4.54016 ms // 158.347 us 137.998 us 187.498 us -// Intel Core i6700HQ (8 cores @ 2.60 GHz), Ubuntu 22.04.2 LTS, Ubuntu clang version 14.0.0 (13.04.24) - -// before "Add and subtract parent potential only once" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// QuickExact 100 1 3.20383 m -// 1.87035 s 1.85331 s 1.89046 s -// 94.185 ms 79.5784 ms 114.325 ms -// -// QuickSim 100 1 1.01174 s -// 10.3755 ms 10.2221 ms 10.5144 ms -// 742.128 us 579.253 us 977.237 us +// AMD Ryzen Threadripper PRO 5955X, Ubuntu 20.04, Ubuntu clang version 18.1.3 (15.01.2025) // -// ClusterComplete 100 1 6.36677 s -// 68.1879 ms 66.8025 ms 69.7052 ms -// 7.4455 ms 6.55368 ms 8.6877 ms - -// after "Add and subtract parent potential only once" -// before "Store composition bounds to subtract after recursion" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// QuickExact 100 1 3.05071 m -// 1.86217 s 1.84601 s 1.88107 s -// 88.7133 ms 77.0255 ms 114.574 ms -// -// QuickSim 100 1 966.661 ms -// 9.82326 ms 9.69725 ms 9.95392 ms -// 655.91 us 533.255 us 871.692 us -// -// ClusterComplete 100 1 5.99807 s -// 62.7459 ms 61.3404 ms 64.3648 ms -// 7.71925 ms 6.65408 ms 9.13036 ms - -// after "Store composition bounds to subtract after recursion" -// before "Restructured stores of potential bounds" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// QuickExact 100 1 3.09518 m -// 1.86457 s 1.84747 s 1.88346 s -// 91.8324 ms 82.2694 ms 102.996 ms -// -// QuickSim 100 1 941.808 ms -// 9.84096 ms 9.75242 ms 9.94587 ms -// 491.07 us 387.717 us 673.361 us -// -// ClusterComplete 100 1 4.60825 s -// 45.0607 ms 44.2967 ms 45.9833 ms -// 4.25241 ms 3.59799 ms 5.09686 ms - -// after "Restructured stores of potential bounds" -// before "Compute external projections for each composition in GSS" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// QuickExact 100 1 3.16303 m -// 1.8573 s 1.83863 s 1.87994 s -// 104.263 ms 86.6128 ms 131.582 ms +// Before PR #390: +// benchmark name samples iterations est run time +// mean low mean high mean +// std dev low std dev high std dev +// ----------------------------------------------------------------------------- +// QuickExact 100 1 1.6412 m +// 1.01839 s 1.01649 s 1.02095 s +// 11.1488 ms 8.8668 ms 14.6936 ms // -// QuickSim 100 1 928.817 ms -// 9.50481 ms 9.38153 ms 9.67599 ms -// 731.198 us 519.946 us 1.15811 ms +// QuickSim 100 1 202.955 ms +// 2.00015 ms 1.97047 ms 2.05573 ms +// 199.837 us 129.863 us 357.338 us // -// ClusterComplete 100 1 2.29913 s -// 22.6208 ms 22.2895 ms 23.0093 ms -// 1.82446 ms 1.58868 ms 2.0759 ms - -// after "Compute external projections for each composition in GSS" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// QuickExact 100 1 3.07802 m -// 1.82677 s 1.81125 s 1.84519 s -// 85.8776 ms 73.6874 ms 102.415 ms +// After PR #390: +// benchmark name samples iterations est run time +// mean low mean high mean +// std dev low std dev high std dev +// ----------------------------------------------------------------------------- +// QuickExact 100 1 1.65065 m +// 1.01159 s 1.006 s 1.0285 s +// 45.175 ms 18.3951 ms 98.1386 ms // -// QuickSim 100 1 949.075 ms -// 9.6784 ms 9.55572 ms 9.81532 ms -// 659.103 us 529.837 us 908.398 us +// QuickSim 100 1 185.262 ms +// 1.87537 ms 1.85862 ms 1.92868 ms +// 138.199 us 51.2677 us 305.326 us // -// ClusterComplete 100 1 1.78456 s -// 17.2877 ms 17.0146 ms 17.5923 ms -// 1.46908 ms 1.29383 ms 1.70859 ms +// ClusterComplete 100 1 633.861 ms +// 20.5306 ms 16.53 ms 26.2279 ms +// 24.2954 ms 18.5671 ms 31.7567 ms #if (FICTION_ALGLIB_ENABLED) TEST_CASE("Benchmark ClusterComplete", "[benchmark]") { // number of non-terminating segments of a diagonal wire - const uint64_t i = 1; + const uint64_t i = 2; hex_odd_row_gate_clk_lyt lyt{{(i + 1) / 2, i + 1}}; @@ -225,59 +167,20 @@ TEST_CASE("Benchmark ClusterComplete", "[benchmark]") const lattice cl{convert_layout_to_siqad_coordinates( apply_gate_library(lyt))}; - BENCHMARK("3 Segment Diagonal Bestagon Wire") + BENCHMARK("4 Segment Diagonal Bestagon Wire") { const clustercomplete_params> sim_params{sidb_simulation_parameters{3, -0.32}}; return clustercomplete(cl, sim_params); }; } #endif // FICTION_ALGLIB_ENABLED -// Intel Core i6700HQ (8 cores @ 2.60 GHz), Ubuntu 22.04.2 LTS, Ubuntu clang version 14.0.0 (13.04.24) - -// before "Add and subtract parent potential only once" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// 3 Segment Diagonal Bestagon Wire 100 1 2.86089 m -// 1.57859 s 1.56147 s 1.60054 s -// 98.2992 ms 79.0445 ms 133.074 ms - -// after "Add and subtract parent potential only once" -// before "Store composition bounds to subtract after recursion" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// 3 Segment Diagonal Bestagon Wire 100 1 2.43878 m -// 1.43439 s 1.42121 s 1.44845 s -// 69.1732 ms 60.7787 ms 80.0373 ms - -// after "Store composition bounds to subtract after recursion" -// before "Restructured stores of potential bounds" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// 3 Segment Diagonal Bestagon Wire 100 1 1.88129 m -// 1.12828 s 1.11773 s 1.14043 s -// 57.5402 ms 48.6612 ms 71.5112 ms - -// after "Restructured stores of potential bounds" -// before "Compute external projections for each composition in GSS" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// 3 Segment Diagonal Bestagon Wire 100 1 51.5535 s -// 579.269 ms 571.672 ms 588.093 ms -// 41.8846 ms 35.4194 ms 51.1304 ms - -// after "Compute external projections for each composition in GSS" -// benchmark name samples iterations est run time -// mean low mean high mean -// std dev low std dev high std dev -// ------------------------------------------------------------------------------- -// 3 Segment Diagonal Bestagon Wire 100 1 44.3262 s -// 454.74 ms 448.366 ms 461.915 ms -// +// AMD Ryzen Threadripper PRO 5955X, Ubuntu 20.04, Ubuntu clang version 18.1.3 (15.01.2025) +// +// Without jemalloc: +// benchmark name samples iterations est run time +// mean low mean high mean +// std dev low std dev high std dev +// --------------------------------------------------------------------------------------------- +// 4 Segment Diagonal Bestagon Wire 100 1 2.39773 m +// 1.44927 s 1.44573 s 1.45397 s +// 20.5985 ms 16.1537 ms 32.1081 ms