perf: Tier 4c — optional rayon parallelism for HNSW prune_connections
CI / test (push) Failing after 3s
CI / test (push) Failing after 3s
Add a default-off `parallel` feature to clawhdf5-ann (rayon optional dep), matching the convention already used in clawhdf5-format/clawhdf5-agent. Gate prune_connections' per-neighbor distance computation on it — a pure read-only map with no shared mutable state, sorted immediately after, so swapping to rayon's par_iter is low-risk. Deliberately not touching build_with_metric's outer insert loop per the original plan: it has genuine cross-iteration data dependencies (graph mutation, entry-point updates) and needs its own correctness-focused design pass. The win here is likely small since neighbor lists are bounded by m/m_max0 (typically small) — this is a low-risk completeness item, not a headline perf change. Verified identical results with default features and --features parallel across the full HNSW test suite (23/23 both ways), including the build+search end-to-end tests (build_small_index, search_accuracy_cosine, incremental_insert_matches_batch_recall).
This commit is contained in:
@@ -12,3 +12,7 @@ categories = ["algorithms", "science"]
|
||||
[dependencies]
|
||||
clawhdf5-format = { path = "../clawhdf5-format", version = "2.1.0" }
|
||||
clawhdf5-io = { path = "../clawhdf5-io", version = "2.1.0" }
|
||||
rayon = { version = "1", optional = true }
|
||||
|
||||
[features]
|
||||
parallel = ["rayon"]
|
||||
|
||||
Reference in New Issue
Block a user