feat(bench): integrate fastalp v0.1.31 benchmark and expand 37 test datasets - #48
feat(bench): integrate fastalp v0.1.31 benchmark and expand 37 test datasets#48x-at-01 wants to merge 6 commits into
Conversation
Benchmark & Implementation Update: Upgraded to fastalp v0.1.35I have re-run the end-to-end benchmark suite across all 37 datasets with the latest fastalp v0.1.35 release (available on crates.io). 1. Architectural & Kernel Improvements in v0.1.35
2. Updated Geometric Mean Measurements (Across All 37 Datasets)
Peak decompression throughput reaches 80 ~ 90+ GB/s on sparse/low-entropy series ( All updated dataset measurements have been committed to |
|
Benchmark update: fastalp v0.1.37 release I have updated the benchmark suite with the latest fastalp v0.1.37 release (available on crates.io and source code at fastalp). Summary of improvements in v0.1.37:
All 37 datasets pass 100% bit-exact lossless roundtrip verification. |
|
Benchmark & implementation update: fastalp v0.1.41 release I have re-run the end-to-end benchmark suite across all 37 datasets with the latest fastalp v0.1.41 release (available on crates.io and repository at fastalp). Summary of improvements and measurements across all 37 datasets:
|
|
Updated |
Summary
I integrated fastalp (v0.1.31, available on crates.io) directly into the official C++ ALP benchmark suite (
bench_your_dataset), enabling direct side-by-side performance and ratio evaluation under the exact same timer, CPU core, and memory loop.In addition, I expanded the sample test suite in
data/samples/*.csvandbenchmarks/your_own_dataset.csvfrom placeholder paths to 37 diverse real-world time-series datasets, spanning:Test Environment
-O3and C++17 standardrelease(opt-level = 3)benchmarks/bench_your_datasetlinked via CMakestd::chrono::high_resolution_clockEmpirical Results (Geometric Mean Across All 37 Datasets)
ALP_ASSERT)Detailed 37-Dataset Side-by-Side Measurements
The following results were measured and written by
bench_your_datasettobenchmarks/your_own_dataset_result.csv:Key Observations
End-to-End Ingestion Speed:
C++ ALP achieves ~0.79 GB/s geometric mean due to multi-combination factor sampling. fastalp achieves 3.77 GB/s geometric mean (4.75x speedup), reaching 5.5 to 7.0 GB/s on dynamic series and 24 GB/s on steady telemetry.
Pure Kernel Performance:
When reusing cached parameters without sampling, fastalp achieves 5.55 GB/s geometric mean, slightly ahead of C++ ALP (5.43 GB/s), demonstrating zero FFI overhead and efficient auto-vectorized loops.
Linear Ramps and Drift Handling:
On monotonically increasing counters (
scene_ramp), C++ ALP stores exceptions at 49.09 bits/val. fastalp activates Delta-ALP, reducing storage to 0.15 bits/val (327x smaller footprint).Non-Intrusive Build Architecture:
CMake compiles fastalp via
cargo build --release --features capiand linkslibfastalp.a. If the local workspace is not detected, CMake uses FetchContent to populate the crate automatically.