diff options
| author | Douglas Rumbaugh <dbr4@psu.edu> | 2024-04-19 14:39:33 -0400 |
|---|---|---|
| committer | Douglas Rumbaugh <dbr4@psu.edu> | 2024-04-19 14:39:33 -0400 |
| commit | 7c2f43ff039795576bc0014c367b893fbbaceca4 (patch) | |
| tree | 00e01658128079a503e35f3df15298c9fc9a8bfa /benchmarks | |
| parent | b34e90b0ca84b5506625930defac997c44bf37c0 (diff) | |
| download | dynamic-extension-7c2f43ff039795576bc0014c367b893fbbaceca4.tar.gz | |
Benchmark updates
Diffstat (limited to 'benchmarks')
| -rw-r--r-- | benchmarks/include/standard_benchmarks.h | 18 | ||||
| -rw-r--r-- | benchmarks/irs_bench.cpp | 15 | ||||
| -rw-r--r-- | benchmarks/pgm_bench.cpp | 15 | ||||
| -rw-r--r-- | benchmarks/ts_bench.cpp | 21 | ||||
| -rw-r--r-- | benchmarks/vptree_bench.cpp | 15 |
5 files changed, 72 insertions, 12 deletions
diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index 5fc549d..fe53d62 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -21,7 +21,7 @@ static size_t g_deleted_records = 0; static double delete_proportion = 0.05; template<typename DE, typename QP> -static void run_queries(DE *extension, std::vector<QP> &queries, gsl_rng *rng) { +static void run_queries(DE *extension, std::vector<QP> &queries) { size_t total; for (size_t i=0; i<queries.size(); i++) { auto q = &queries[i]; @@ -33,6 +33,22 @@ static void run_queries(DE *extension, std::vector<QP> &queries, gsl_rng *rng) { } +template<typename S, typename QP, typename Q> +static void run_static_queries(S *shard, std::vector<QP> &queries) { + size_t total; + for (size_t i=0; i<queries.size(); i++) { + auto q = &queries[i]; + + auto state = Q::get_query_state(shard, q); + auto res = Q::query(shard, state, q); + + total += res.size(); + } +} + + + + template<typename DE, de::RecordInterface R> static void insert_records(DE *extension, size_t start, size_t stop, std::vector<R> &records, std::vector<size_t> &to_delete, diff --git a/benchmarks/irs_bench.cpp b/benchmarks/irs_bench.cpp index 9895295..84cd8b2 100644 --- a/benchmarks/irs_bench.cpp +++ b/benchmarks/irs_bench.cpp @@ -72,12 +72,23 @@ int main(int argc, char **argv) { size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries<Ext, QP>(extension, queries, rng); + run_queries<Ext, QP>(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries<Shard, QP, Q>(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage();// + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; diff --git a/benchmarks/pgm_bench.cpp b/benchmarks/pgm_bench.cpp index 3643abb..ac3ed1b 100644 --- a/benchmarks/pgm_bench.cpp +++ b/benchmarks/pgm_bench.cpp @@ -69,12 +69,23 @@ int main(int argc, char **argv) { size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries<Ext, QP>(extension, queries, rng); + run_queries<Ext, QP>(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries<Shard, QP, Q>(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; diff --git a/benchmarks/ts_bench.cpp b/benchmarks/ts_bench.cpp index 3dc619e..93e7616 100644 --- a/benchmarks/ts_bench.cpp +++ b/benchmarks/ts_bench.cpp @@ -19,9 +19,9 @@ typedef de::Record<uint64_t, uint64_t> Rec; -typedef de::TrieSpline<Rec> PGM; -typedef de::rc::Query<Rec, PGM> Q; -typedef de::DynamicExtension<Rec, PGM, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext; +typedef de::TrieSpline<Rec> Shard; +typedef de::rc::Query<Rec, Shard> Q; +typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext; typedef de::rc::Parms<Rec> QP; void usage(char *progname) { @@ -69,12 +69,23 @@ int main(int argc, char **argv) { size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries<Ext, QP>(extension, queries, rng); + run_queries<Ext, QP>(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries<Shard, QP, Q>(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); //+ shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; diff --git a/benchmarks/vptree_bench.cpp b/benchmarks/vptree_bench.cpp index f4c7d0e..1219076 100644 --- a/benchmarks/vptree_bench.cpp +++ b/benchmarks/vptree_bench.cpp @@ -75,12 +75,23 @@ int main(int argc, char **argv) { fprintf(stderr, "[I] Running Query Benchmark\n"); TIMER_START(); - run_queries<Ext, QP>(extension, queries, rng); + run_queries<Ext, QP>(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries<Shard, QP, Q>(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; |