The Honeycomb Book
Statement of need
Honeycomb aims to provide a safe, efficient and scalable implementation of combinatorial maps for meshing applications.
The goal is to converge towards a (or multiple) structure(s) which could be used to easily experiment with parallel meshing algorithm, specifically targeting many-core architectures.
More extensive explanations regarding our needs and design choices of this solution is included in one of our paper.
Requirements
Core
- Rust stable release
- The MSRV may not be the latest stable release, but we do not give any guarantees for older versions compatibility
Optional
- CUDA
- Used in one of the application, as a PoC for GPU usage
nvccandlibcudartmay be sufficient, but we recommend installing the full toolkit
- hwloc
- The library is used by the application binaries to bind threads to physical cores;
- Consider this a core requirement if you are running benchmarks
- Disable usage by compiling application binaries with the
--no-default-featuresoption
Quickstart
You can add honeycomb as a dependency of your project by adding the following lines
to its Cargo.toml:
# [dependencies]
honeycomb = {
git = "https://github.com/LIHPC-Computational-Geometry/honeycomb",
tag = "0.10.2" # it is highly encouraged to pin version using a tag or a revision
}
Alternatively, you can add the sub-crates that are currently published on crates.io:
# [dependencies]
honeycomb-core = "0.10.2"
honeycomb-kernels = "0.10.2"
honeycomb-render = "0.10.2"
Note that the documentation hosted on GitHub corresponds to the master branch. Versioned documentation is available on docs.rs.