Skip to content

Latest commit

 

History

History
14 lines (9 loc) · 868 Bytes

README.md

File metadata and controls

14 lines (9 loc) · 868 Bytes

Async-perf

Uses built-in parallelization mechanisms (async in C++, goroutines in Go, Python multiprocessing pools, Rust threads) in various programming languages to measure speedup.

Requires: g++ with c++14 support, go 1.12, make, Python environment with Python version 3.10+, cargo for Rust.

Build: make. For Rust, from src/rust: cargo build.

Usage for c++ and go: async-perf-[go/cpp] [num-jobs] [seed] where seed determines the size of each job. One job with seed 1 runs in about 2s on a modern commodity CPU. num-jobs and seed must be integers greater than 0. num-jobs must be < 10000, seed < 1000.

Usage for Python: install requirements.txt in a Python environment, and run: pytest --num_jobs [num-jobs] --seed [seed] src/python from the top-level directory.

Usage for Rust: from src/rust/, run cargo run -- <NUM_JOBS> <SEED>.