summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2024-05-14 16:27:42 -0400
committerDouglas Rumbaugh <dbr4@psu.edu>2024-05-14 16:27:42 -0400
commit8643fe194dec05b4e3f3ea31e162ac0b2b00e162 (patch)
treeee5613ce182b2c9caa228d3abeb65dc27fef2db3
parenta23eaca80aa137b041810a98cb9589c2b1e34b2f (diff)
downloaddynamic-extension-8643fe194dec05b4e3f3ea31e162ac0b2b00e162.tar.gz
Added btree thread scaling benchmark
-rw-r--r--CMakeLists.txt13
-rw-r--r--benchmarks/vldb/btree_thread_scaling_bench.cpp (renamed from benchmarks/btree_insert_query_tput.cpp)20
2 files changed, 19 insertions, 14 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9b229ea..a03c351 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -271,6 +271,15 @@ if (vldb_bench)
target_link_libraries(thread_scaling_bench PUBLIC gsl pthread atomic)
target_include_directories(thread_scaling_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
target_link_options(thread_scaling_bench PUBLIC -mcx16)
+ target_compile_options(thread_scaling_bench PUBLIC -fopenmp)
+
+
+ add_executable(btree_thread_scaling_bench
+ ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/btree_thread_scaling_bench.cpp)
+ target_link_libraries(btree_thread_scaling_bench PUBLIC gsl pthread atomic)
+ target_include_directories(btree_thread_scaling_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
+ target_link_options(btree_thread_scaling_bench PUBLIC -mcx16)
+ target_compile_options(btree_thread_scaling_bench PUBLIC -fopenmp)
endif()
@@ -317,10 +326,6 @@ if (bench)
target_include_directories(cedar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/hat-trie/include/tsl)
target_link_options(cedar_trie PUBLIC -mcx16)
- #add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp)
- #target_link_libraries(btree_insert_query_tput PUBLIC gsl cblas pthread atomic)
- #target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
- #target_link_options(btree_insert_query_tput PUBLIC -mcx16)
add_executable(watermark_testing ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/watermark_testing.cpp)
target_link_libraries(watermark_testing PUBLIC gsl pthread atomic)
diff --git a/benchmarks/btree_insert_query_tput.cpp b/benchmarks/vldb/btree_thread_scaling_bench.cpp
index f838f80..557e966 100644
--- a/benchmarks/btree_insert_query_tput.cpp
+++ b/benchmarks/vldb/btree_thread_scaling_bench.cpp
@@ -7,8 +7,8 @@
#include <thread>
#include "query/irs.h"
-#include "include/data-proc.h"
-#include "psu-ds/BTree.h"
+#include "benchmark_types.h"
+#include "file_util.h"
#include <mutex>
#include <gsl/gsl_rng.h>
@@ -16,7 +16,7 @@
#include "psu-util/timer.h"
-typedef de::Record<int64_t, int64_t> Rec;
+typedef btree_record<int64_t, int64_t> Rec;
typedef de::irs::Parms<Rec> QP;
std::atomic<bool> inserts_done = false;
@@ -46,11 +46,11 @@ void query_thread(BenchBTree *tree, std::vector<QP> *queries) {
gsl_rng_free(rng);
}
-void insert_thread(BenchBTree *tree, size_t start, std::vector<int64_t> *records) {
+void insert_thread(BenchBTree *tree, size_t start, std::vector<Rec> *records) {
size_t reccnt = 0;
for (size_t i=start; i<records->size(); i++) {
- btree_record r;
- r.key = (*records)[i];
+ btree_record<int64_t, int64_t> r;
+ r.key = (*records)[i].key;
r.value = i;
g_btree_lock.lock();
@@ -80,15 +80,15 @@ int main(int argc, char **argv) {
auto tree = new BenchBTree();
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
- auto data = read_sosd_file(d_fname, n);
+ auto data = read_sosd_file<Rec>(d_fname, n);
auto queries = read_range_queries<QP>(q_fname, .001);
/* warmup structure w/ 10% of records */
size_t warmup = .1 * n;
for (size_t i=0; i<warmup; i++) {
- btree_record r;
- r.key = data[i];
- r.value = i;
+ btree_record<int64_t, int64_t> r;
+ r.key = data[i].key;
+ r.value = data[i].value;
tree->insert(r);
}