Add h5bench-equivalent Criterion benchmark results to BENCHMARKS.md (sequential read/write, chunked read/write, metadata throughput). Fix libhdf5-compare feature for HDF5 1.14.x: - Switch to hdf5-metno 0.12 (aliased as 'hdf5') in clawhdf5-bench - Fix h5bench_meta.rs: AttributeBuilderEmpty::create takes &str not &String; shape=[1] dataset uses write(&[val]) not write_scalar - Fix h5bench_read.rs: libhdf5-compare variant now writes its own reference file via hdf5-metno instead of dumping clawhdf5 bytes (avoids float datatype message incompatibility) Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
69 lines
1.7 KiB
TOML
69 lines
1.7 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
|
|
# Uses hdf5-metno (fork of hdf5 crate) which supports HDF5 1.14.x.
|
|
hdf5 = { version = "0.12", optional = true, package = "hdf5-metno" }
|
|
|
|
[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"]
|