All three SDD plans fully wired and committed to main: Filter Codecs (FC): - FC-1: Implement float E-scale in scaleoffset_decompress (value = minval + code * 2^E, negative exponents via cast to i32); add two round-trip tests. - FC-2: filters_szip.rs — feature-gated SZIP decode via libaec FFI; SZIP dispatch arm added to decompress_chunk. - FC-3: libaec-sys workspace crate with pkg-config probe and aec_buffer_decode FFI binding; added to workspace members. Format Write Extensions (FWE): - FWE-1: GroupBuilder::add_external_link() API; wired through FinishedGroup → GrpFlat → file_writer pass 1/2/3 (OH size, layout cursor, final write); external_link_write_roundtrip test. - FWE-2: data_layout_write.rs — serialize_vds_mappings with length_size param and version 0/1 (external vs same-file) selection; declared as pub mod. - FWE-3: with_virtual_sources empty-mapping guard (Important #9) — empty vec is silently ignored; vds_empty_mapping_list test updated to assert non-VDS layout results. MPI-IO VOL Backend (MPI): - MPI-1/2/3: mpi_vol.rs — MpiVol implementing VirtualObjectLayer; root-read + broadcast collective read; gather + root-write collective write; feature- gated mpi-io feature; wired into clawhdf5-io lib.rs. - MPI-4: mpi_io_bench binary (h5bench-equivalent MPI-IO throughput bench). mpi_vol.rs reviewer fixes: - Doc-comment updated to accurately describe root-read+broadcast pattern (not MPI_File_read_at); MpiVol::expected_capabilities() associated fn added so tests can verify capabilities without a live MPI universe; rank_and_size_stub_values renamed to no_feature_error_contains_feature_name. Workspace check: zero warnings, 20 test suites pass. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
68 lines
1.6 KiB
TOML
68 lines
1.6 KiB
TOML
[package]
|
|
name = "clawhdf5-bench"
|
|
version = "2.1.0"
|
|
edition = "2024"
|
|
description = "Benchmark harnesses for clawhdf5-agent (Track 8)"
|
|
license = "MIT"
|
|
|
|
[[bin]]
|
|
name = "longmemeval_bench"
|
|
path = "src/bin/longmemeval_bench.rs"
|
|
|
|
[[bin]]
|
|
name = "memory_arena"
|
|
path = "src/bin/memory_arena.rs"
|
|
|
|
[[bin]]
|
|
name = "footprint_bench"
|
|
path = "src/bin/footprint_bench.rs"
|
|
|
|
[[bin]]
|
|
name = "consolidation_efficiency"
|
|
path = "src/bin/consolidation_efficiency.rs"
|
|
|
|
[[bin]]
|
|
name = "ephemeral_perf"
|
|
path = "src/bin/ephemeral_perf.rs"
|
|
|
|
[[bin]]
|
|
name = "mpi_io_bench"
|
|
path = "src/bin/mpi_io_bench.rs"
|
|
required-features = ["mpi-io"]
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# h5bench-equivalent Criterion benchmarks
|
|
# ---------------------------------------------------------------------------
|
|
|
|
[[bench]]
|
|
name = "h5bench_write"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "h5bench_read"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "h5bench_meta"
|
|
harness = false
|
|
|
|
[dependencies]
|
|
clawhdf5-agent = { path = "../clawhdf5-agent" }
|
|
clawhdf5-io = { path = "../clawhdf5-io" }
|
|
mpi = { version = "0.8", optional = true }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tempfile = "3"
|
|
# Optional: libhdf5 C wrapper for side-by-side comparison (requires system libhdf5).
|
|
# Enable with: cargo bench -p clawhdf5-bench --features libhdf5-compare
|
|
hdf5 = { version = "0.8", optional = true }
|
|
|
|
[dev-dependencies]
|
|
clawhdf5 = { path = "../clawhdf5" }
|
|
criterion = { version = "0.5", features = ["html_reports"] }
|
|
|
|
[features]
|
|
# When enabled, benchmarks add matching libhdf5 variants for side-by-side comparison.
|
|
libhdf5-compare = ["hdf5"]
|
|
mpi-io = ["clawhdf5-io/mpi-io", "mpi"]
|