GPU Accelerated Computation of the Longest Common Subsequence
The longest common subsequence (LCS for short) for given two strings has various applications, e.g. comparison of DNAs. In this paper, we propose a GPU algorithm to accelerate Hirschberg’s CPU LCS algorithm improved using Crochemore et al’s bit-parallel CPU algorithm. Crochemore’s algorithm includes bitwise logical operators which can be computed in embarrassingly parallel. However, it also includes an operator with less parallelism, i.e. an arithmetic sum. In this paper, we focus on how to implement these operators efficiently in parallel. Our experiments with 2.93GHz Intel Core i3 530 CPU, GeForce 8800 GTX, GTX 285, and GTX 480 GPUs show that the proposed algorithm runs maximum 12.77 times faster than the bit-parallel CPU algorithm and maximum 76.5 times faster than Hirschberg’s LCS CPU algorithm. Furthermore, the proposed algorithm runs 10.9 to 18.1 times faster than Kloetzli’s existing GPU algorithm.
KeywordsShared Memory Global Memory Recursive Call Full Adder Speedup Ratio
Unable to display preview. Download preview PDF.
- 3.Gusfield, D.: Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. Cambridge University Press (1997)Google Scholar
- 5.Kirk, D.B., Hwu, W.W.: Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann (2010)Google Scholar
- 6.Kloetzli, J., Strege, B., Decker, J., Olano, M.: Parallel Longest Common Subsequence Using Graphics Hardware. In: Proc. of the 8th Eurographics Symposium on Parallel Graphics and Visualization, EGPGV (2008)Google Scholar
- 8.Sanders, J., Kandrot, E.: CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley Professional (2010)Google Scholar
- 10.Vai, M.: VLSI Design. CRC Press (2000)Google Scholar