Rusty-PBBS is a benchmark suite of regular and irregular parallelism in Rust, introduced at SPAA'23. We invested substantial effort into developing this codebase, and we kindly request that you acknowledge our work by citing our paper when using this code for your own research:
Brief Announcement: Is the Problem-Based Benchmark Suite Fearless with Rust?
Javad Abdi, Guowei Zhang, Mark C. Jeffrey
ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), 2023
# download and install the version management tool: Rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# confiqure the current shell
source "$HOME/.cargo/env"
The default
features are enough for benchmarking.
If you want to do more hacking, the complete
profile could help.
git clone https://github.com/mcj-group/rusty-pbbs.git
cd rusty-pbbs/
cargo build --release # compile all benchmarks
cargo build --release --bin="dedup" # compile an specific benchmark (dedup)
Cargo can run an individual benchmark (e.g. dedup):
cargo run --release --bin=dedup -- <input_file>
or the binary can be run itself:
/path/to/build/directory/pbbs/release/dedup <input_file>
To get the full list of flags and arguments use --help
:
/path/to/build/directory/pbbs/release/dedup --help
Run parallel dedup for 3 rounds on an input.
$ /.../dedup -o outfile -a parhash -r 3 /path/to/input
dedup: 2.560179
dedup: 2.608721
dedup: 2.492258
OutLoopTime:total: 7.966530
2.578050534s
This project was inspired by the algorithms from the following sources:
- The problem-based benchmark suite: github repo and a relevant paper (License: MIT)
- ParlayLib: github repo (License: MIT)