A GPU-based Bit-Parallel Multiple Pattern Matching Algorithm

String matching algorithms have played critical role in many applications, such as DNA sequence comparison, network intrusion detection systems, and so forth. In this paper, we present a parallel multiple pattern matching method based on general purpose graphic processing units to realize fast string searching. In proposed method, we adopt a bit-parallel pattern comparison concept to accelerates string search to achieve efficient parallel search of multiple patterns of different lengths. In addition, we use CUDA framework to enhance the performance of searching string by leveraging GPU computing power. From the experimental results, the proposed method can achieve higher search throughput than other string matching methods. The proposed method is useful for genome sequence comparison and packet payload filtering.

[1]  Sartaj Sahni,et al.  GPU-to-GPU and Host-to-Host Multipattern String Matching on a GPU , 2013, IEEE Transactions on Computers.

[2]  Che-Lun Hung,et al.  An Efficient GPU-Based Multiple Pattern Matching Algorithm for Packet Filtering , 2017, J. Signal Process. Syst..

[3]  Donald E. Knuth,et al.  Fast Pattern Matching in Strings , 1977, SIAM J. Comput..

[4]  Antonino Tumeo,et al.  Efficient pattern matching on GPUs for intrusion detection systems , 2010, CF '10.

[5]  Che-Lun Hung,et al.  Fast Parallel Network Packet Filter System based on CUDA , 2014, Int. J. Networked Distributed Comput..

[6]  Udi Manber,et al.  Fast text searching: allowing errors , 1992, CACM.

[7]  Mourad Elloumi,et al.  A fast Boyer-Moore type pattern matching algorithm for highly similar sequences , 2015, Int. J. Data Min. Bioinform..

[8]  Antonino Tumeo,et al.  Aho-Corasick String Matching on Shared and Distributed-Memory Parallel Architectures , 2012, IEEE Transactions on Parallel and Distributed Systems.

[9]  Jonathan Pevsner,et al.  Basic Local Alignment Search Tool (BLAST) , 2005 .

[10]  Cheng-Hung Lin,et al.  Accelerating Pattern Matching Using a Novel Parallel Algorithm on GPUs , 2013, IEEE Transactions on Computers.

[11]  Fumihiko Ino,et al.  A bit-parallel algorithm for searching multiple patterns with various lengths , 2015, J. Parallel Distributed Comput..

[12]  Robert S. Boyer,et al.  A fast string searching algorithm , 1977, CACM.

[13]  D. Lipman,et al.  Improved tools for biological sequence comparison. , 1988, Proceedings of the National Academy of Sciences of the United States of America.

[14]  M. Oguzhan Külekci Filter Based Fast Matching of Long Patterns by Using SIMD Instructions , 2009, Stringology.

[15]  Che-Lun Hung,et al.  An efficient parallel-network packet pattern-matching approach using GPUs , 2014, J. Syst. Archit..

[16]  D. Lipman,et al.  Rapid and sensitive protein similarity searches. , 1985, Science.

[17]  Udi Manber,et al.  A FAST ALGORITHM FOR MULTI-PATTERN SEARCHING , 1999 .

[18]  E. Myers,et al.  Basic local alignment search tool. , 1990, Journal of molecular biology.

[19]  Alfred V. Aho,et al.  Efficient string matching , 1975, Commun. ACM.

[20]  Jiahui Liu,et al.  A Parallel Algorithm of String Matching Based on Message Passing Interface for Multicore Processors , 2016 .

[21]  Sotiris Ioannidis,et al.  Gnort: High Performance Network Intrusion Detection Using Graphics Processors , 2008, RAID.

[22]  Zhanlong Chen,et al.  Parallel Optimization of String Mode Matching Algorithm Based on Multi-Core Computing , 2015 .

[23]  Gaston H. Gonnet,et al.  A new approach to text searching , 1989, SIGIR '89.