This directory contains the benchmarking framework for DaiSy, providing performance evaluation tools for various similarity search algorithms on time series data.
- bm_utils.hpp/cpp: Contains the main benchmarking infrastructure
runSSTBenchmark(): Core function that loads data, builds indices, and measures search performance- Timer management for precise performance measurements
- Memory usage tracking capabilities
- Result formatting and output utilities
Each benchmark executable follows a consistent pattern:
- Data Loading: Load database and query datasets from binary files
- Index Building: Construct the search index for the specific algorithm
- Search Execution: Perform k-nearest neighbor searches on queries
- Performance Measurement: Record timing and memory usage statistics
Benchmarks are built here: benchmark.
Benchmarks can be configured through command-line arguments or configuration files:
- Dataset paths: Specify database and query file locations
- Thread count: Number of parallel threads for computation
- k-value: Number of nearest neighbors to retrieve
- Algorithm parameters: Algorithm-specific tuning parameters
Benchmarks expect binary data files in the following format:
- Database files:
*.data.*.bin(time series database) - Query files:
*.query.*.bin(query time series) - Data format: 32-bit float arrays, row-major order
The benchmarking framework measures:
- Index Build Time: Time required to construct the search index
- Search Time: Time for k-NN query execution
- Memory Usage: Peak memory consumption during operations
- Throughput: Queries processed per second
- Scalability: Performance across different thread counts