Browse > Article
http://dx.doi.org/10.5370/KIEE.2018.67.5.656

High Throughput Parallel KMP Algorithm Considering CPU-GPU Memory Hierarchy  

Park, Soeun (Dept. of Computer Science and Engineering, Konkuk University)
Kim, Daehee (Dept. of Computer Science and Engineering, Konkuk University)
Lee, Myungho (Dept. of Computer Engineering, Myongji University)
Park, Neungsoo (Dept. of Computer Science and Engineering, Konkuk University)
Publication Information
The Transactions of The Korean Institute of Electrical Engineers / v.67, no.5, 2018 , pp. 656-662 More about this Journal
Abstract
Pattern matching algorithm is widely used in many application fields such as bio-informatics, intrusion detection, etc. Among many string matching algorithms, KMP (Knuth-Morris-Pratt) algorithm is commonly used because of its fast execution time when using large texts. However, the processing speed of KMP algorithm is also limited when the text size increases significantly. In this paper, we propose a high throughput parallel KMP algorithm considering CPU-GPU memory hierarchy based on OpenCL in GPGPU (General Purpose computing on Graphic Processing Unit). We focus on the optimization for the allocation of work-times and work-groups, the local memory copy of the pattern data and the failure table, and the overlapping of the data transfer with the string matching operations. The experimental results show that the execution time of the optimized parallel KMP algorithm is about 3.6 times faster than that of the non-optimized parallel KMP algorithm.
Keywords
KMP algorithm; GPGPU; OpenCL;
Citations & Related Records
연도 인용수 순위
  • Reference
1 S. Rajesh, S. Prathima and D. Reddy, "Unusual Pattern Detection in DNA Database Using KMP Algorithm", International Journal of Computer Applications, vol. 1, no. 22, pp. 1-7, 2010.   DOI
2 B. Raju and B. Srinivas, "Network Intrusion Detection System Using KMP Pattern Matching Algorithm", International Journal of Computer Science and Telecommunications, vol. 3, no. 1, pp. 33-36, 2012.
3 J. Kim, E. Kim and K. Park, "Fast Matching Method for DNA Sequences", Combinatorics, Algorithms, Probabilistic and Experimental Methodologies, vol. 4614, pp. 271-281, 2007.
4 C. S. Kouzinopoulos and K. G. Margaritis, "String Matching on a Multicore GPU Using CUDA," in Proc. of the 13th Panhellenic Conference on Informatics (PCI'09), 2009, pp. 14-18.
5 R. P. S. Sidhu, A. Mei, V. K. Prasanna, "String Matching on Multicontext FPGAs using Self-Reconfiguration", in Proc. 1999 ACM/SIGDA Seventh International Symposium on Field Programmable Gate Arrays, 1999, pp. 217-226.
6 X. Bellekens, I. Andonovic, R. Atkinson, C. Renfrew, T. Kirkham, "Investigation of GPU-based Pattern Matching", in The 14th Annual Post Graduate Symposium on the Convergence of Telecommunications Networking and Broadcasting (PGNet2013), 2013.
7 D. Knuth, J. Morris, Jr. and V. Pratt, "Fast Pattern Matching in Strings", SIAM Journal on Computing, vol. 6, no. 2, pp. 323-350, 1977.   DOI
8 A. Rasool and N. Khare, "Parallelization of KMP String Matching Algorithm on Different SIMD Architectures: Multi-Core and GPGPU's", International Journal of Computer Applications, vol. 49, no. 11, pp. 26-28, 2012.   DOI
9 AMD Corporation. "OpenCL Programming Guide", AMD Documentation, AMD Corporation, 2013.