From 5593bf6f2adcc9fa477df626c322e0d9457cfed0 Mon Sep 17 00:00:00 2001 From: Artem Demchenko Date: Mon, 16 Jun 2025 02:56:00 +0300 Subject: [PATCH 1/3] fix: Add warm up runs in benchmark --- src/experiment/bench_commons.h | 14 +++++++++++++- src/experiment/bfs_benchmark.cpp | 16 ++++++++-------- src/experiment/mst_benchmark.cpp | 7 +++---- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/experiment/bench_commons.h b/src/experiment/bench_commons.h index 23aea8f..ff0e692 100644 --- a/src/experiment/bench_commons.h +++ b/src/experiment/bench_commons.h @@ -21,11 +21,23 @@ namespace bench { }; template - BenchmarkResult run_benchmark(const string &algo_name, const string &graph_path, int num_runs) { + BenchmarkResult run_benchmark(const string &algo_name, const string &graph_path, int warm_up_runs, int num_runs) { BenchmarkResult result; result.algorithm_name = algo_name; result.graph_name = filesystem::path(graph_path).filename().string(); + cout << "Warm up before exec " << algo_name << " on " << result.graph_name << "..." << endl; + + for (int i = 0; i < warm_up_runs; ++i) { + const unique_ptr algorithm(create_algorithm()); + + cout << " Run " << (i + 1) << "/" << warm_up_runs << "..." << flush; + + algorithm->load_graph(graph_path); + auto time = algorithm->compute(); + cout << " " << fixed << setprecision(2) << time.count() << " ms" << endl; + } + cout << "Running " << algo_name << " on " << result.graph_name << "..." << endl; result.execution_times.reserve(num_runs); diff --git a/src/experiment/bfs_benchmark.cpp b/src/experiment/bfs_benchmark.cpp index 3be47ed..7eb0cd0 100644 --- a/src/experiment/bfs_benchmark.cpp +++ b/src/experiment/bfs_benchmark.cpp @@ -23,14 +23,13 @@ int main() { print_spla_accelerator_info(); // List of algorithms to benchmark - vector>> algorithms{}; + vector>> algorithms{}; - algorithms.emplace_back("BfsLagraph", [](const string &graph_path, int num_runs) { - return run_benchmark("BfsLagraph", graph_path, - num_runs); + algorithms.emplace_back("BfsLagraph", [](const string &graph_path, int warm_up, int measure) { + return run_benchmark("BfsLagraph", graph_path, warm_up, measure); }); - algorithms.emplace_back("BfsSpla", [](const string &graph_path, int num_runs) { - return run_benchmark("BfsSpla", graph_path, num_runs); + algorithms.emplace_back("BfsSpla", [](const string &graph_path, int warm_up, int measure) { + return run_benchmark("BfsSpla", graph_path, warm_up, measure); }); vector graph_files; @@ -51,13 +50,14 @@ int main() { cout << " - " << filesystem::path(file).filename().string() << endl; } - const int NUM_RUNS = 20; + const int WARM_UP_RUNS = 3; + const int MEASURE_RUNS = 5; vector all_results; for (const auto &graph_file: graph_files) { for (const auto &[algo_name, benchmark_func]: algorithms) { try { - BenchmarkResult result = benchmark_func(graph_file, NUM_RUNS); + BenchmarkResult result = benchmark_func(graph_file, WARM_UP_RUNS, MEASURE_RUNS); all_results.push_back(result); } catch (const exception &e) { cerr << "Error running " << algo_name << " on " << filesystem::path(graph_file).filename().string() diff --git a/src/experiment/mst_benchmark.cpp b/src/experiment/mst_benchmark.cpp index 6859f35..d191768 100644 --- a/src/experiment/mst_benchmark.cpp +++ b/src/experiment/mst_benchmark.cpp @@ -42,14 +42,13 @@ int main() { // List of algorithms to benchmark vector>> algorithms = {{"PrimSpla", [](const string &graph_path, int num_runs) { - return run_benchmark("PrimSpla", graph_path, - num_runs); + return run_benchmark("PrimSpla", graph_path, 0, num_runs); }}}; algorithms.emplace_back("BoruvkaSpla", [](const string &graph_path, int num_runs) { - return run_benchmark("BoruvkaSpla", graph_path, num_runs); + return run_benchmark("BoruvkaSpla", graph_path, 0, num_runs); }); algorithms.emplace_back("BoruvkaLagraph", [](const string &graph_path, int num_runs) { - return run_benchmark("BoruvkaLagraph", graph_path, num_runs); + return run_benchmark("BoruvkaLagraph", graph_path, 0, num_runs); }); #if USE_GUNROCK From d90476e2faa874dd422ffb32cea9b9f1a81e80d3 Mon Sep 17 00:00:00 2001 From: Artem Demchenko Date: Mon, 16 Jun 2025 02:57:07 +0300 Subject: [PATCH 2/3] chore: Update slides --- slides/experiment_results.pdf | Bin 875295 -> 875724 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/slides/experiment_results.pdf b/slides/experiment_results.pdf index 5b12eeaf730576efa342c0a3bc502834fecb200e..64bf59e14549bee9a5f3a166ba187f26f52b2644 100644 GIT binary patch delta 1860 zcmZuv3p7-D7+-HDgSIv@g+yLk=H5GZ?!DD;D#Q$0G)Q?Bkw-dS<&kkTqIE<{MCB+$ z8jtZNA{VnnqsSE5Svl4?A7ks*4Y0!-?`uU{lD+``+eX4=2XK^>)=?n1Y43V z#g=Bvuw~hDZ23wB2^m(EGb4zEsO;!RZmVmB#p(=5I>z=yE4s@BTM8)2Ng8STu*VQE zTPY|K?mqRb=~YTS-?c=SQKsQy$>p zo?qLXi7e+Oo8;4QwQs_E;CW9ZJvq&NBJUMoDtPx@-B|shE*7g}TF3NH$70Us7@Dh} z2v}ZBY-$U;VN=pG2HRNsTgwCTt;{oya<8M~wWaEA^Mq^{zsb3DUIb0Gnx`X1D1P_Iiy@7Up4>Z7ocu#oWcPgVDQ=}h1=xHmUQEx|u& zbM<3B&vcLx9?Lft$}H5w1J+tJIm;sfDxb1$#gQafXSnE2rJ1NuN~|9_y5N)jO~sz* z!t>45vWuC@^BJwSI)N&7?P`T7$FA)ZC}`F5)%*<_^~T=RqDD$dA<+Z8%dy4&Clp1) zyE}FcmB*2COSwy)qOquw+}6Bp0cGRs`>~c$RPjVnU5*hBj)*$!+@d-g!1fK1Zp{ z;fo;1w=t4$t~1HmKB9NzoP*t|5ynzvLuT_H*88G_p+su@sYiqe_;G+asWntRsv!l3 z@{ejy`&$PdwPw`$p2#%YxL>nkeV}5mL1`GC=sqP~u&B<=F6TP6sM|-n1>eg4#~$VwM_}Z`?Oa`Xt1|u;7S&B+>d}#2?}JwN`_%b z0#i-_4+0+R@KCH_$`NUFX^4yg8Q1NILsA%wW(3<4L#0uG3}%em69=VH5C&>G9EeXO z)KCaRwa6<+>$DbO<%=LF41+cKOyYS-76QYoZ($4s0I`l04Ei4o7Q+zyK;UXV6hLvs z)fnyoA!92T>zgeUz{rr883e&VP@IqgKos(7LcAATBTNCwD0NL80)G|$M;F(}i$H`d zHVH}rK~x;0f*2JLBcy;-oN8sQ|Lzy1;&lHN`Kkc{YkH{ A{Q6@n?^%?L;V#a4)m zz~I_CDisnpgW?m4VF-vKf7h|TxyC_^vZfFN#Dx(M6aN=b99uITj-ldDhd^Yq*b|d+ hD`Zgoop6k@#x+EyVj0~oM2mG0z7T@0uK6Jg!e8G`vMT@p delta 1414 zcmX@J({%ne(}ott7N!>F7M2#)7Pc1l7LF~PjI8x*Lv!;l8whN>lmA_^Grr-9-=VLs zZ~o-a>d2k1c1UaM>{Xl*t95f{vsx^ZgX zulL?J8bpFt@ib31TYF<_X5gD?2^T7-WL96~h_cFmyr4l=u}<8eO>|;T!jFYNw(gi{ z@PBU3%KPm<>+3V)54`1!3Anvw%IXz+N+w^C5_S@6VHCaaQsIKSn50hGfklj4uiSdg zwPySFgSxpYW()bUjJ*Wcw%(X5lxTeBz@>&cMf>`8ZH(;MT$kh_S98YG^B=?E^RKVU z^Pb|EEO#P*_fHeI9}9Yz-?q4>hBoXu6ZMbz*Bjny>xMskc2AElt=}qQ-}%fS`|J;& zE&rxEzHM@m=I?S`di2|rEejX1E>tr~JbR9fJx;9uDLemz z=-%~G}SC;I}rH8w}Mg>GNM)%~AC(U&(u zRM#W*lIN}!rVFo@NN2^~J05Cn=V>pU8@oVycG(n0u4`V>*WctSEpK0bdiGC$)x<69 z9tq!$FOCkI&y|{&Qe0A$nwSe>Ms1QhZV zxInbIxrL#T@%G?w-dd)5V-N#sC-y zq3bm_w6p{V8gc-cnHvI~4Kx}l(9DgDj7`wQ%*;(O{9|rpVuG#?C}w7grWYt?fgD>v z`wcA2jZD#_A0&q1JD`{;y6=Eu=4i1B(rbwxGv-EShUk$16k{?mm|h*j>&9(lVQ9>y Ks_N?R#svU7yvou5 From 0e2eae33c5960ebe4c5b33d6bed6b8e831a72e76 Mon Sep 17 00:00:00 2001 From: Artem Demchenko Date: Mon, 16 Jun 2025 02:58:53 +0300 Subject: [PATCH 3/3] fix MEASURE_RUNS number --- src/experiment/bfs_benchmark.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/experiment/bfs_benchmark.cpp b/src/experiment/bfs_benchmark.cpp index 7eb0cd0..cfadd0a 100644 --- a/src/experiment/bfs_benchmark.cpp +++ b/src/experiment/bfs_benchmark.cpp @@ -51,7 +51,7 @@ int main() { } const int WARM_UP_RUNS = 3; - const int MEASURE_RUNS = 5; + const int MEASURE_RUNS = 20; vector all_results; for (const auto &graph_file: graph_files) {