Homepage of the GPGPU ( General Purpose Computation on Graphics Processing Units ) project of CRIBI Genomics
compatible GPU cards as efficient hardware accelerators for
Smith-Waterman sequence alignment", BMC Bioinformatics 2008,
9(Suppl 2):S10 (26 March 2008)
Searching for similarities in protein and DNA databases has become a routine procedure in Molecular Biology. The Smith-Waterman algorithm has been available for more than 25 years. It is based on a dynamic programming approach that explores all the possible alignments between two sequences; as a result it returns the optimal local alignment. Unfortunately, the computational cost is very high, requiring a number of operations proportional to the product of the length of two sequences. Furthermore, the exponential growth of protein and DNA databases makes the Smith-Waterman algorithm unrealistic for searching similarities in large sets of sequences.
SmithWaterman-CUDA allows to perform alignments between one or more sequences and a database (all the sequences, even in the DB, are intended to be proteinic). It is implemented in the recently released CUDA programming environment by NVidia. CUDA allows direct access to the hardware primitives of the last-generation Graphics Processing Units (GPU) G80. Speeds of more than 3.5 GCUPS (Giga Cell Updates Per Second) are achieved on a workstation running two GeForce 8800 GTX. Exhaustive tests have been done to compare our implementation to SSEARCH and BLAST, running on a 3 GHz Intel Pentium IV processor. Our solution was also compared to a recently published GPU implementation and to a Single Instruction Multiple Data (SIMD) solution. These tests show that our implementation performs from 2 to 30 times faster than any other previous attempt available on commodity hardware.
The application dynamically performs load balancing among all the computational devices available on the machine. The user can decide how and which resources to use as explained in [sub:The-configuration-file]. SmithWaterman-CUDA computes the maximum value of the alignment between each query sequence and each sequence in the given database.
The latest version of the source code is available here. Please check Documentation for more information on how to compile and run the product.