Skip to content

mcj-group/rusty-pbbs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rusty-PBBS: A replica of PBBS in Rust.

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

Build

Install Rust (cargo, rustc, ...)

# 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.

Download rusty-pbbs

git clone https://github.com/mcj-group/rusty-pbbs.git
cd rusty-pbbs/

install gcc if you don't have it on your system.

Compile benchmarks

cargo build --release                # compile all benchmarks
cargo build --release --bin="dedup"  # compile an specific benchmark (dedup)

Run

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

Example

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

Acknowledgements

This project was inspired by the algorithms from the following sources:

About

RustyPBBS: a suite of parallel benchmarks in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages