summaryrefslogtreecommitdiffstats
path: root/benchmarks/tail-latency/vptree_buffer.cpp
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2025-02-04 17:48:43 -0500
committerDouglas Rumbaugh <dbr4@psu.edu>2025-02-04 17:48:43 -0500
commitac5f574c8a5b9f5a7a631562a7da84fac1fbcbfc (patch)
tree33f65cd68bc2d1f0137e1832be95b84148f69e4f /benchmarks/tail-latency/vptree_buffer.cpp
parentd054b21a66318e096a809c9f94bc8659acfacfd8 (diff)
downloaddynamic-extension-ac5f574c8a5b9f5a7a631562a7da84fac1fbcbfc.tar.gz
VPTree buffer benchmarkgeneralized-merging
Diffstat (limited to 'benchmarks/tail-latency/vptree_buffer.cpp')
-rw-r--r--benchmarks/tail-latency/vptree_buffer.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/benchmarks/tail-latency/vptree_buffer.cpp b/benchmarks/tail-latency/vptree_buffer.cpp
new file mode 100644
index 0000000..8528e94
--- /dev/null
+++ b/benchmarks/tail-latency/vptree_buffer.cpp
@@ -0,0 +1,69 @@
+/*
+ *
+ */
+
+#define ENABLE_TIMER
+#define TS_TEST
+
+#include <thread>
+
+#include "file_util.h"
+#include "framework/interface/Record.h"
+#include "framework/structure/MutableBuffer.h"
+#include "shard/VPTree.h"
+#include "standard_benchmarks.h"
+
+#include "psu-util/timer.h"
+#include <gsl/gsl_rng.h>
+
+typedef Word2VecRec Rec;
+typedef de::VPTree<Rec, 100, true> Shard;
+typedef de::MutableBuffer<Rec> Buffer;
+
+void usage(char *progname) {
+ fprintf(stderr, "%s reccnt datafile\n", progname);
+}
+
+int main(int argc, char **argv) {
+
+ if (argc < 3) {
+ usage(argv[0]);
+ exit(EXIT_FAILURE);
+ }
+
+ size_t n = atol(argv[1]);
+ std::string d_fname = std::string(argv[2]);
+
+ auto data = read_vector_file<Rec, 300>(d_fname, n);
+
+ std::vector<size_t> buffer_sizes = {4000, 8000, 12000, 16000,
+ 20000, 40000, 80000, 160000, 320000};
+
+ TIMER_INIT();
+
+ size_t rec_idx = 0;
+
+ for (size_t bs : buffer_sizes) {
+ for (size_t j = 0; j < 20; j++) {
+ auto buffer = Buffer(bs, bs);
+
+ TIMER_START();
+ for (size_t i = 0; i < bs; i++) {
+ buffer.append(data[rec_idx++]);
+
+ if (rec_idx >= n) rec_idx = 0;
+ }
+ TIMER_STOP();
+
+ auto buffer_fill = TIMER_RESULT();
+
+ TIMER_START();
+ auto shard = Shard(buffer.get_buffer_view());
+ TIMER_STOP();
+
+ auto shard_const = TIMER_RESULT();
+
+ fprintf(stdout, "%ld\t%ld\t%ld\n", bs, buffer_fill, shard_const);
+ }
+ }
+}