paraseq benchmark
February 3, 2025 ยท View on GitHub
This is a benchmark of different FASTQ parsers in rust. It is not meant to be an exhaustive benchmark, but rather a simple comparison of the speed of different parsing strategies.
Mainly:
- Copying
- Zero-copy
- Minimal-copy parsing
The libraries tested are:
| Library | Sequential Processing Strategy | Parallel Processing Strategy |
|---|---|---|
| bio | Copying | N/A |
| fastq-rs | Zero-copy | One-copy |
| seq_io | Zero-copy | One-copy |
| needletail | Zero-copy | N/A |
| paraseq | Minimal-copy | Minimal-copy |
The benchmark is done on files of the same number of records but with each file having a different record length.
Benchmarking
This benchmark was taken on my local computer using a AMD Ryzen 7 7700X and an NVMe SSD.
Running the benchmark
To run the benchmark you will need to have the following installed:
Then you can install the benchmarking tool by cloning the repository and running:
cargo install --path .
# Check that the tool is installed
psb --version
Then you can run the benchmark by running:
# Generate the nucleotide data
just gen_data
# Run the benchmark
just run_benchmarks