Skip to content

Commit c43aecf

Browse files
committed
Speed up benchmark compilation
1 parent e073e63 commit c43aecf

File tree

2 files changed

+65
-55
lines changed

2 files changed

+65
-55
lines changed

benchmark/CMakeLists.txt

Lines changed: 58 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -16,66 +16,69 @@ endif()
1616
set(CMAKE_CXX_STANDARD 17)
1717
set(LIBS "${LIBS} Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a")
1818

19-
SET(BINARIES "bench_bst_insert;bench_bst_move;bench_bst_delete;bench_bst_search;bench_dst_insert;bench_dst_delete;bench_dst_move;run_all;bench_bst_erase")
20-
21-
FOREACH(BINARY ${BINARIES})
22-
add_executable(${BINARY} ${BINARY}.cpp random.cpp)
23-
add_dependencies(${BINARY} gbenchmark)
24-
target_link_libraries(${BINARY} Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a)
25-
26-
if (PAPI_FOUND)
27-
add_executable(${BINARY}_papi ${BINARY}.cpp random.cpp)
28-
add_dependencies(${BINARY}_papi gbenchmark)
29-
target_link_libraries(${BINARY}_papi Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a ${PAPI_LIBRARIES})
30-
set_target_properties (${BINARY}_papi PROPERTIES COMPILE_DEFINITIONS "USEPAPI")
31-
endif()
32-
ENDFOREACH()
19+
# Normal
20+
add_executable(run_all run_all.cpp random.cpp)
21+
add_dependencies(run_all gbenchmark)
22+
target_link_libraries(run_all Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a)
23+
24+
if (PAPI_FOUND)
25+
add_executable(run_all_papi run_all.cpp random.cpp)
26+
add_dependencies(run_all_papi gbenchmark)
27+
target_link_libraries(run_all_papi Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a ${PAPI_LIBRARIES})
28+
set_target_properties (run_all_papi PROPERTIES COMPILE_DEFINITIONS "USEPAPI")
29+
endif()
3330

34-
SET(ZIPF_BINARIES "bench_bst_move;bench_bst_insert;bench_bst_search;bench_bst_erase")
35-
FOREACH(BINARY ${ZIPF_BINARIES})
36-
add_executable(${BINARY}_zipf ${BINARY}.cpp random.cpp)
37-
add_dependencies(${BINARY}_zipf gbenchmark)
38-
target_link_libraries(${BINARY}_zipf Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a)
39-
set_target_properties (${BINARY}_zipf PROPERTIES COMPILE_DEFINITIONS "USEZIPF")
40-
41-
if (PAPI_FOUND)
42-
add_executable(${BINARY}_zipf_papi ${BINARY}.cpp random.cpp)
43-
add_dependencies(${BINARY}_zipf_papi gbenchmark)
44-
target_link_libraries(${BINARY}_zipf_papi Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a ${PAPI_LIBRARIES})
45-
target_compile_definitions(${BINARY}_zipf_papi PUBLIC USEPAPI USEZIPF)
46-
endif()
47-
ENDFOREACH()
31+
# Zipf
32+
add_executable(run_all_zipf run_all.cpp random.cpp)
33+
add_dependencies(run_all_zipf gbenchmark)
34+
target_link_libraries(run_all_zipf Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a)
35+
set_target_properties (run_all_zipf PROPERTIES COMPILE_DEFINITIONS "USEZIPF")
36+
37+
if (PAPI_FOUND)
38+
add_executable(run_all_zipf_papi run_all.cpp random.cpp)
39+
add_dependencies(run_all_zipf_papi gbenchmark)
40+
target_link_libraries(run_all_zipf_papi Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a ${PAPI_LIBRARIES})
41+
target_compile_definitions(run_all_zipf_papi PUBLIC USEPAPI USEZIPF)
42+
endif()
4843

49-
SET(SKEWED_BINARIES "bench_bst_move;bench_bst_insert;bench_bst_search;bench_bst_erase")
50-
FOREACH(BINARY ${SKEWED_BINARIES})
51-
add_executable(${BINARY}_skewed ${BINARY}.cpp random.cpp)
52-
add_dependencies(${BINARY}_skewed gbenchmark)
53-
target_link_libraries(${BINARY}_skewed Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a)
54-
set_target_properties (${BINARY}_skewed PROPERTIES COMPILE_DEFINITIONS "USESKEWED")
55-
56-
if (PAPI_FOUND)
57-
add_executable(${BINARY}_skewed_papi ${BINARY}.cpp random.cpp)
58-
add_dependencies(${BINARY}_skewed_papi gbenchmark)
59-
target_link_libraries(${BINARY}_skewed_papi Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a ${PAPI_LIBRARIES})
60-
target_compile_definitions(${BINARY}_skewed_papi PUBLIC USEPAPI USESKEWED)
61-
endif()
62-
ENDFOREACH()
44+
# Presorted
45+
add_executable(run_all_presorted run_all.cpp random.cpp)
46+
add_dependencies(run_all_presorted gbenchmark)
47+
target_link_libraries(run_all_presorted Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a)
48+
set_target_properties (run_all_presorted PROPERTIES COMPILE_DEFINITIONS "PRESORT")
49+
50+
if (PAPI_FOUND)
51+
add_executable(run_all_presorted_papi run_all.cpp random.cpp)
52+
add_dependencies(run_all_presorted_papi gbenchmark)
53+
target_link_libraries(run_all_presorted_papi Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a ${PAPI_LIBRARIES})
54+
target_compile_definitions(run_all_presorted_papi PUBLIC USEPAPI PRESORT)
55+
endif()
56+
57+
# Skewed
58+
add_executable(run_all_skewed run_all.cpp random.cpp)
59+
add_dependencies(run_all_skewed gbenchmark)
60+
target_link_libraries(run_all_skewed Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a)
61+
set_target_properties (run_all_skewed PROPERTIES COMPILE_DEFINITIONS "USESKEWED")
62+
63+
if (PAPI_FOUND)
64+
add_executable(run_all_skewed_papi run_all.cpp random.cpp)
65+
add_dependencies(run_all_skewed_papi gbenchmark)
66+
target_link_libraries(run_all_skewed_papi Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a ${PAPI_LIBRARIES})
67+
target_compile_definitions(run_all_skewed_papi PUBLIC USEPAPI USESKEWED)
68+
endif()
6369

64-
SET(PRESORTED_BINARIES "bench_bst_move;bench_bst_insert;bench_bst_erase;bench_bst_delete")
65-
FOREACH(BINARY ${PRESORTED_BINARIES})
66-
add_executable(${BINARY}_presorted ${BINARY}.cpp random.cpp)
67-
add_dependencies(${BINARY}_presorted gbenchmark)
68-
target_link_libraries(${BINARY}_presorted Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a)
69-
set_target_properties (${BINARY}_presorted PROPERTIES COMPILE_DEFINITIONS "PRESORT")
70-
71-
if (PAPI_FOUND)
72-
add_executable(${BINARY}_presorted_papi ${BINARY}.cpp random.cpp)
73-
add_dependencies(${BINARY}_presorted_papi gbenchmark)
74-
target_link_libraries(${BINARY}_presorted_papi Threads::Threads ${GBENCHMARK_LIBS_DIR}/libbenchmark.a ${PAPI_LIBRARIES})
75-
target_compile_definitions(${BINARY}_presorted_papi PUBLIC USEPAPI PRESORT)
76-
endif()
70+
71+
# Create BST scripts
72+
set(BENCH_DATASTRUCTURE "BST")
73+
set(BST_OPERATIONS "Insert;Delete;Move;Erase")
74+
set(BST_POSTFIXES ";_zipf;_skewed;_presorted")
75+
FOREACH(OPERATION ${BST_OPERATIONS})
76+
FOREACH(POSTFIX ${BST_POSTFIXES})
77+
configure_file(${PROJECT_SOURCE_DIR}/../scripts/benchmark/benchmark.sh.in ${CMAKE_CURRENT_BINARY_DIR}/bench_${BENCH_DATASTRUCTURE}_${OPERATION}${POSTFIX})
78+
ENDFOREACH()
7779
ENDFOREACH()
7880

81+
7982
add_executable(pathlengths pathlengths.cpp random.cpp)
8083
add_executable(wbtree_balance wbtree_balance.cpp)
8184
add_executable(count_rotations count_rotations.cpp)

scripts/benchmark/benchmark.sh.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/sh
2+
3+
DATASTRUCTURE=${BENCH_DATASTRUCTURE}
4+
POSTFIX=${POSTFIX}
5+
OPERATION=${OPERATION}
6+
7+
./run_all${POSTFIX} --filter '^${BENCH_DATASTRUCTURE} :: ${OPERATION} ::.*' "$@"

0 commit comments

Comments
 (0)