DOI QR코드

DOI QR Code

High Throughput Parallel KMP Algorithm Considering CPU-GPU Memory Hierarchy

CPU-GPU 메모리 계층을 고려한 고처리율 병렬 KMP 알고리즘

  • 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)
  • Received : 2018.03.13
  • Accepted : 2018.04.01
  • Published : 2018.05.01

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

References

  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. https://doi.org/10.5120/526-687
  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. https://doi.org/10.1137/0206024
  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. https://doi.org/10.5120/7672-0963
  9. AMD Corporation. "OpenCL Programming Guide", AMD Documentation, AMD Corporation, 2013.