Expand description
§honeycomb-benches
This crate contains all benchmarks of the project. It also contains simple binaries used to profile and further optimize the implementation.
§Binary
The package provides a single binary, hc-bench, which exposes several benchmarks as
subcommands. For details on options and arguments, run:
cargo run --bin hc-bench -- --helpBenchmarks are described in the documentation of their respective modules.
§Features
Optional features can be enabled to affect implementation:
bind-threads– enabled by default – useshwlocalityto bind threads to physical cores,jemalloc– usestikv-jemallocatorto replace the default allocator,profiling– enableperffifo interactions to allow per-section profiling,_single_precision– compile cargo benches (not the binary) to usef32instead off64.
§Available benchmarks
§Criterion-based
builder- grid building routines at fixed sizebuilder-grid-size- grid building routines over a range of grid sizesfetch_icells-CMap2::iter_<CELL>methodsgrisubal- grisubal kernel with a fixed size gridgrisubal-grid-size- grisubal kernel over a range of grid granularitytriangulate-quads- triangulate all cells of a mixed-mesh
§Iai-callgrind-based
prof-dim2-basic-CMap2basic operations benchmarksprof-dim2-build-CMap2constructor & building functions benchmarksprof-dim2-sewing-unsewing-CMap2(un)sewing & (un)linking methods benchmarks
Modules§
- cut_
edges cut-edgesbenchmark- grid_
gen - Grid generation benchmark
- grisubal
grisubalbenchmark- remesh
- 2D remshing pipeline benchmark
- shift
shiftbenchmark
Macros§
- prof_
init - Attempt to open a fifo at the path
/tmp/hc_perf_control. - prof_
start - Write to the
/tmp/hc_perf_controlto enable perf sampling if${$var}is defined. - prof_
stop - Write to the
/tmp/hc_perf_controlto disable perf sampling if${$var}is defined.