Scaling read aligners to hundreds of threads on general-purpose processors

Bioinformatics. 2019 Feb 1;35(3):421-432. doi: 10.1093/bioinformatics/bty648.

Abstract

Motivation: General-purpose processors can now contain many dozens of processor cores and support hundreds of simultaneous threads of execution. To make best use of these threads, genomics software must contend with new and subtle computer architecture issues. We discuss some of these and propose methods for improving thread scaling in tools that analyze each read independently, such as read aligners.

Results: We implement these methods in new versions of Bowtie, Bowtie 2 and HISAT. We greatly improve thread scaling in many scenarios, including on the recent Intel Xeon Phi architecture. We also highlight how bottlenecks are exacerbated by variable-record-length file formats like FASTQ and suggest changes that enable superior scaling.

Availability and implementation: Experiments for this study: https://github.com/BenLangmead/bowtie-scaling.

Bowtie: http://bowtie-bio.sourceforge.net.

Bowtie 2: http://bowtie-bio.sourceforge.net/bowtie2.

Hisat: http://www.ccb.jhu.edu/software/hisat.

Supplementary information: Supplementary data are available at Bioinformatics online.

Publication types

  • Research Support, N.I.H., Extramural
  • Research Support, Non-U.S. Gov't
  • Research Support, U.S. Gov't, Non-P.H.S.

MeSH terms

  • Algorithms*
  • Computer Systems
  • Genomics*
  • Software*