Skip to content

v2.3.0

Compare
Choose a tag to compare
@ch4rr0 ch4rr0 released this 30 Dec 15:51
· 1574 commits to master since this release

This is a major release with some larger and many smaller changes. These notes emphasize the large changes. See commit history for details.

  • Code related to read parsing was completely rewritten to improve scalability to many threads. In short, the critical section is simpler and parses input reads in batches rather than one at a time. The improvement applies to all read formats.
  • TBB is now the default threading library. We consistently found TBB to give superior thread scaling. It is widely available and widely installed. That said, we are also preserving a "legacy" version of Bowtie that, like previous releases, does not use TBB. To compile Bowtie source in legacy mode use NO_TBB=1. To use legacy binaries, download the appropriate binary archive with "legacy" in the name.
  • Bowtie now uses a queue-based lock rather than a spin or heavyweight lock. We find this gives superior thread scaling; we saw an order-of-magnitude throughput improvements at 120 threads in one experiment, for example.
  • Unnecessary thread synchronization removed
  • Fixed issue with parsing FASTA records with greater-than symbol in the name
  • Now detects and reports inconsistencies between --score-min and --ma
  • Changed default for --bmaxdivn to yield better memory footprint and running time when building an index with many threads