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:

  1. Copying
  2. Zero-copy
  3. Minimal-copy parsing

The libraries tested are:

LibrarySequential Processing StrategyParallel Processing Strategy
bioCopyingN/A
fastq-rsZero-copyOne-copy
seq_ioZero-copyOne-copy
needletailZero-copyN/A
paraseqMinimal-copyMinimal-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.

Benchmark Throughput

Running the benchmark

To run the benchmark you will need to have the following installed:

  1. Rust
  2. Hyperfine
  3. Just
  4. Nucgen

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