From 37434f5baf632e839dc14b3c7d8745287cb9368a Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 25 Jul 2023 11:17:36 -0400 Subject: Benchmarks: mtree and vptree benchmark updates Note: cosine similarity doesn't seem to work for VPTree--I don't think that it is actually a metric, upon further research. At the very least I can't find anyone claiming it is, and I've found several people claiming it isn't. On testing with the Word2Vec data, Euclidean distance works insofar as the M-Tree and VPTree return the same KNN results for test queries, whereas Cosine Similarity does not work. --- CMakeLists.txt | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index b14584d..6e1902e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,7 +47,7 @@ if (tests) add_executable(vptree_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/vptree_tests.cpp) target_link_libraries(vptree_tests PUBLIC gsl check subunit pthread) - target_include_directories(vptree_tests PRIVATE include) + target_include_directories(vptree_tests PRIVATE include external/vptree) #add_executable(dynamic_extension_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/dynamic_extension_tests.cpp) #target_link_libraries(dynamic_extension_tests PUBLIC gsl check subunit pthread) @@ -93,36 +93,48 @@ if (bench) add_executable(alias_wss_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/alias_wss_bench.cpp) target_link_libraries(alias_wss_bench PUBLIC gsl pthread gomp) - target_include_directories(alias_wss_bench PRIVATE include external/PGM-index/include external/PLEX/include bench/include) + target_include_directories(alias_wss_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) target_compile_options(alias_wss_bench PUBLIC -fopenmp) add_executable(triespline_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/triespline_rq_bench.cpp) target_link_libraries(triespline_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(triespline_rq_bench PRIVATE include external/PGM-index/include external/PLEX/include bench/include) + target_include_directories(triespline_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) target_compile_options(triespline_rq_bench PUBLIC -fopenmp) add_executable(pgm_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/pgm_rq_bench.cpp) target_link_libraries(pgm_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(pgm_rq_bench PRIVATE include external/PGM-index/include external/PLEX/include bench/include) + target_include_directories(pgm_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) target_compile_options(pgm_rq_bench PUBLIC -fopenmp) add_executable(isam_irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/isam_irs_bench.cpp) target_link_libraries(isam_irs_bench PUBLIC gsl pthread gomp) - target_include_directories(isam_irs_bench PRIVATE include external/PGM-index/include external/PLEX/include bench/include) + target_include_directories(isam_irs_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) target_compile_options(isam_irs_bench PUBLIC -fopenmp) add_executable(isam_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/isam_rq_bench.cpp) target_link_libraries(isam_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(isam_rq_bench PRIVATE include external/PGM-index/include external/PLEX/include bench/include) + target_include_directories(isam_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) target_compile_options(isam_rq_bench PUBLIC -fopenmp) add_executable(btree_irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_irs_bench.cpp) target_link_libraries(btree_irs_bench PUBLIC gsl pthread gomp) - target_include_directories(btree_irs_bench PRIVATE include external/PGM-index/include external/PLEX/include bench/include) + target_include_directories(btree_irs_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) target_compile_options(btree_irs_bench PUBLIC -fopenmp) add_executable(btree_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_rq_bench.cpp) target_link_libraries(btree_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(btree_rq_bench PRIVATE include external/PGM-index/include external/PLEX/include bench/include) + target_include_directories(btree_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) target_compile_options(btree_rq_bench PUBLIC -fopenmp) + + + add_executable(vptree_knn_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vptree_knn_bench.cpp) + target_link_libraries(vptree_knn_bench PUBLIC gsl pthread gomp) + target_include_directories(vptree_knn_bench PRIVATE include external/m-tree/cpp external/vptree external/PGM-index/include external/PLEX/include bench/include) + target_compile_options(vptree_knn_bench PUBLIC -fopenmp) + + add_executable(mtree_knn_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/mtree_knn_bench.cpp) + target_link_libraries(mtree_knn_bench PUBLIC gsl pthread gomp) + target_include_directories(mtree_knn_bench PRIVATE include external/m-tree/cpp external/vptree external/PGM-index/include external/PLEX/include bench/include) + target_compile_options(mtree_knn_bench PUBLIC -fopenmp -fpermissive) + endif() -- cgit v1.2.3