title: Boosting the FM-Index on the GPU: Effective Techniques to Mitigate Random Memory Access.
abstract: The recent advent of high-throughput sequencing machines producing big amounts of short reads has boosted the interest in efficient string searching techniques. As of today, many mainstream sequence alignment software tools rely on a special data structure, called the FM-index, which allows for fast exact searches in large genomic references. However, such searches translate into a pseudo-random memory access pattern, thus making memory access the limiting factor of all computation-efficient implementations, both on CPUs and GPUs. Here, we show that several strategies can be put in place to remove the memory bottleneck on the GPU: more compact indexes can be implemented by having more threads work cooperatively on larger memory blocks, and a k-step FM-index can be used to further reduce the number of memory accesses. The combination of those and other optimisations yields an implementation that is able to process about two Gbases of queries per second on our test platform, being about 8 × faster than a comparable multi-core CPU version, and about 3 × to 5 × faster than the FM-index implementation on the GPU provided by the recently announced Nvidia NVBIO bioinformatics library.
authors.forename: Alejandro
authors.initials: A
authors.lastname: Chacón
authors.forename: Santiago
authors.initials: S
authors.lastname: Marco-Sola
authors.forename: Antonio
authors.initials: A
authors.lastname: Espinosa
authors.forename: Paolo
authors.initials: P
authors.lastname: Ribeca
authors.forename: Juan Carlos
authors.initials: JC
authors.lastname: Moure
mesh_terms: D000465:Algorithms; D003196:Computer Graphics / Q000295:instrumentation*; D016248:Computer Storage Devices; D004867:Equipment Design; D019544:Equipment Failure Analysis; D059014:High-Throughput Nucleotide Sequencing / Q000295:instrumentation*; D016247:Information Storage and Retrieval / Q000379:methods*; D012815:Signal Processing, Computer-Assisted / Q000295:instrumentation*