diff options
| -rw-r--r-- | CMakeLists.txt | 11 | ||||
| -rw-r--r-- | README.md | 31 | ||||
| -rw-r--r-- | benchmarks/vldb/thread_scaling_bench.cpp (renamed from benchmarks/insert_query_tput.cpp) | 2 |
3 files changed, 29 insertions, 15 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e072d58..9b229ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -266,6 +266,12 @@ if (vldb_bench) target_include_directories(mtree_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(mtree_bench PUBLIC -mcx16) target_compile_options(mtree_bench PUBLIC -fopenmp) + + add_executable(thread_scaling_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/thread_scaling_bench.cpp) + 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) + endif() @@ -295,11 +301,6 @@ if (bench) target_include_directories(query_workload_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(query_workload_bench PUBLIC -mcx16) - add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) - target_link_libraries(insert_query_tput PUBLIC gsl pthread atomic) - target_include_directories(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(insert_query_tput PUBLIC -mcx16) - add_executable(poplar_trie ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/poplar_trie.cpp) target_link_libraries(poplar_trie PUBLIC gsl pthread atomic) target_include_directories(poplar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/poplar-trie/include) @@ -12,8 +12,8 @@ The project is built using cmake. CMakeLists contains several flags that can be used to customize the build. In particular, setting `debug` to true will build without optimization, and with asan and ubsan enabled. The `tests` and `benchmarks` flag can be used to toggle the construction of unit tests -and benchmarks respectively. `old_bench` should be ignored--most of these won't -build anymore anyway. Eventually that will be removed. +and benchmarks respectively. The benchmarks specific to the VLDB 2024 +submission are built using the `vldb_bench` flag. After configuring the build to your liking, make sure that you initialized the git sub-modules first if you've just cloned the repository. @@ -33,11 +33,19 @@ The unit test binaries will appear in `bin/tests/` and the benchmarks in `bin/benchmarks/`. ## Available Benchmarks -At present there are several benchmarks available in `benchmarks/`. Not every -benchmark has been updated to build with the current version; these can be -found in `benchmarks/old-bench/`. Most of the benchmarks will display a help -message, showing what arguments they expect, if you run them without any -arguments, or with the wrong number of arguments. +The benchmarks relevant to the 2024 VLDB submission are located in +`benchmarks/vldb`, and various other benchmarks are in `benchmarks`. The +majority of the benchmark suite used for creating the figures in the VLDB +submission can be run using the `bin/scripts/run_benchmarks.sh` script, which +should be updated first with the locations of the desired data and query files. +The main benchmark not automatically run by this script is +`bin/benchmarks/ts_parmsweep`, which should be updated (by editing +`benchmarks/vldb/ts_parmsweep`) to reflect the parameter values to test, and +then run manually as desired. + +Most of the benchmarks will display a help message, showing what arguments they +expect, if you run them without any arguments, or with the wrong number of +arguments. ## Unit Tests While test coverage is not perfect yet, there are some basic unit tests in @@ -48,6 +56,11 @@ unit](https://libcheck.github.io/check/) test framework. This is still an active research project, and so the interfaces are not yet stable. Proper documentation will come when these interfaces stabilize a little. In the meantime, the code will have to serve as the documentation. -There are also a lot of comments in most of the files, though several are a bit -light in that regard. + +Some of the most important files are `include/framework/DynamicExtension`, +which contains the external interface of the framework, and +`include/framework/interface/*`, which contains the necessary C++20 +concepts/interfaces for developing your own shards and queries. Any class +implementing the appropriate interfaces can be used as template arguments to +the DynamicExtension itself. diff --git a/benchmarks/insert_query_tput.cpp b/benchmarks/vldb/thread_scaling_bench.cpp index 29043af..b679e92 100644 --- a/benchmarks/insert_query_tput.cpp +++ b/benchmarks/vldb/thread_scaling_bench.cpp @@ -10,7 +10,7 @@ #include "shard/ISAMTree.h" #include "query/irs.h" #include "framework/interface/Record.h" -#include "include/file_util.h" +#include "file_util.h" #include <ctime> #include <gsl/gsl_rng.h> |