The Community for Technology Leaders
RSS Icon
Issue No.10 - Oct. (2013 vol.62)
pp: 1906-1916
Cheng-Hung Lin , National Taiwan Normal University, Taipei
Chen-Hsiung Liu , National Tsing-Hua University, HsinChu
Lung-Sheng Chien , National Tsing-Hua University, HsinChu
Shih-Chieh Chang , National Tsing-Hua University, HsinChu
Graphics processing units (GPUs) have attracted a lot of attention due to their cost-effective and enormous power for massive data parallel computing. In this paper, we propose a novel parallel algorithm for exact pattern matching on GPUs. A traditional exact pattern matching algorithm matches multiple patterns simultaneously by traversing a special state machine called an Aho-Corasick machine. Considering the particular parallel architecture of GPUs, in this paper, we first propose an efficient state machine on which we perform very efficient parallel algorithms. Also, several techniques are introduced to do optimization on GPUs, including reducing global memory transactions of input buffer, reducing latency of transition table lookup, eliminating output table accesses, avoiding bank-conflict of shared memory, coalescing writes to global memory, and enhancing data transmission via peripheral component interconnect express. We evaluate the performance of the proposed algorithm using attack patterns from Snort V2.8 and input streams from DEFCON. The experimental results show that the proposed algorithm performed on NVIDIA GPUs achieves up to 143.16-Gbps throughput, 14.74 times faster than the Aho-Corasick algorithm implemented on a 3.06-GHz quad-core CPU with the OpenMP. The library of the proposed algorithm is publically accessible through Google Code.
Pattern matching, Instruction sets, Algorithm design and analysis, Graphics processing unit, Vectors, Complexity theory, Acceleration, Aho-Corasick, Graphics processing units, pattern matching, parallel algorithm
Cheng-Hung Lin, Chen-Hsiung Liu, Lung-Sheng Chien, Shih-Chieh Chang, "Accelerating Pattern Matching Using a Novel Parallel Algorithm on GPUs", IEEE Transactions on Computers, vol.62, no. 10, pp. 1906-1916, Oct. 2013, doi:10.1109/TC.2012.254
[1] R. Sidhu and V.K. Prasanna, "Fast Regular Expression Matching Using FPGAs," Proc. Ninth Ann. IEEE Symp. Field-Programmable Custom Computing Machines (FCCM '01), pp. 227-238, 2001.
[2] B.L. Hutchings, R. Franklin, and D. Carver, "Assisting Network Intrusion Detection with Reconfigurable Hardware," Proc. 10th Ann. IEEE Symp. Field-Programmable Custom Computing Machines (FCCM '02), pp. 111-120, 2002.
[3] J. Moscola, J. Lockwood, R.P. Loui, and M. Pachos, "Implementation of a Content-Scanning Module for an Internet Firewall," Proc. 11th Ann. IEEE Symp. Field-Programmable Custom Computing Machines (FCCM '03), pp. 31-38, 2003.
[4] C.R. Clark and D.E. Schimmel, "Scalable Pattern Matching for High Speed Networks," Proc. 12th Ann. IEEE Symp. Field-Programmable Custom Computing Machines (FCCM '04), pp. 249-257, 2004.
[5] M. Aldwairi∗, T. Conte, and P. Franzon, "Configurable String Matching Hardware for Speeding up Intrusion Detection," ACM SIGARCH Computer Architecture News, vol. 33, pp. 99-107, 2005.
[6] L. Tan and T. Sherwood, "A High Throughput String Matching Architecture for Intrusion Detection and Prevention," Proc. 32nd Ann. Int'l Symp. Computer Architecture (ISCA '05), pp. 112-122, 2005.
[7] H.J. Jung, Z.K. Baker, and V.K. Prasanna, "Performance of FPGA Implementation of Bit-Split Architecture for Intrusion Detection Systems," Proc. 20th Int'l Parallel and Distributed Processing Symp. (IPDPS '06), 2006.
[8] S. Dharmapurikar and J. Lockwood, "Fast and Scalable Pattern Matching for Content Filtering," Proc. Symp. Architectures Networking Comm. Systems (ANCS '05), pp. 183-192, 2005.
[9] Y.H. Cho and W.H. Mangione-Smith, "A Pattern Matching Co-Processor for Network Security," Proc. 42nd Design Automation Conf. (DAC '05), pp. 234-239, 2005.
[10] S. Kumar, S. Dharmapurikar, F. Yu, P. Crowley, and J. Turner, "Algorithm to Accelerate Multiple Regular Expressions Matching for Deep Packet Inspection," Proc. ACM SIGCOMM, 2006.
[11] N. Huang, H. Hung, S. Lai, Y. Chu, and W. Tsai, "A GPU-Based Multiple-Pattern Matching Algorithm for Network Intrusion Detection Systems," Proc. Int'l Conf. Advanced Information Networking and Applications Workshops (AINAW), pp. 62-67, 2008.
[12] M. Roesch, "Snort—Lightweight Intrusion Detection for Networks," Proc. 15th Systems Administration Conf. (LISA '99), 1999.
[13] R. Smith, N. Goyal, J. Ormont, K. Sankaralingam, and C. Estan, "Evaluating GPUs for Network Packet Signature Matching," Proc. IEEE Int'l Symp. Performance Analysis of Systems and Software (ISPASS), pp. 175-184, 2009.
[14] NVIDIA Corporation, "NVIDIA CUDA Programming Guide," http:/, 2013.
[15] A. Tumeo, O. Villa, and D. Sciuto, "Efficient Pattern Matching on GPUs for Intrusion Detection Systems," Proc. Seventh ACM Int'l Conf. Computing Frontiers, 2010.
[16] A. Tumeo, S. Secchi, and O. Villa, "Experiences with String Matching on the Fermi Architecture," Proc. 24th Int'l Conf. Architecture of Computing Systems, 2011.
[17] A.V. Aho and M.J. Corasick, "Efficient String Matching: An Aid to Bibliographic Search," Comm. ACM, vol. 18, no. 6, pp. 333-340, 1975.
[18] J.F. Peng, H. Chen, and S.H. Shi, "The GPU-Based String Matching System in Advanced AC Algorithm," Proc. Int'l Conf. Computer and Information Technology (CIT '10), pp. 1158-1163, 2010.
[19] G. Vasiliadis, M. Polychronakis, S. Antonatos, E.P. Markatos, and S. Ioannidis, "Regular Expression Matching on Graphics Hardware for Intrusion Detection," Proc. 12th Int'l Symp. Recent Advances in Intrusion Detection, 2009.
[20] C.S. Kouzinopoulos and K.G. Margaritis, "String Matching on a Multicore GPU Using CUDA," Proc. Panhellenic Conf. Informatics (PCI), pp. 14-18, 2009.
[21] S. Mu, X. Zhang, N. Zhang, J. Lu, Y.S. Deng, and S. Zhang, "IP Routing Processing with Graphic Processors," Proc. Design, Automation Test in Europe Conf. Exhibition (DATE '10), pp. 93-98, 2010.
[22] N. Cascarano, P. Rolando, F. Risso, and R. Sisto, "iNFAnt: NFA Pattern Matching on GPGPU Devices," SIGCOMM Computer Comm. Rev., vol. 40, pp. 20-26, 2010.
[23] C.H. Lin, S.Y. Tsai, C.H. Liu, S.C. Chang, and J.M. Shyu, "Accelerating String Matching Using Multi-threaded Algorithm on GPU," Proc. IEEE GLOBECOM, Dec. 2010.
[24] DEFCON, http:/, 2013.
[25] J. Yu and J. Li, "A Parallel NIDS Pattern Matching Engine and Its Implementation on Network Processor," Proc. Int'l Conf. Security and Management (SAM), 2005.
[26] C.V. Kopek, E.W. Fulp, and P.S. Wheeler, "Distributed Data Parallel Techniques for Content-Matching Intrusion Detection Systems," Proc. IEEE Military Comm. Conf. (MILCOM), pp. 1-7, 2007.
[27] G. Vasiliadis and S. Ioannidis, "GrAVity: A Massively Parallel Antivirus Engine," Proc. 13th Int'l Conf. Recent Advances in Intrusion Detection (RAID '10), 2010.
[28] O. Villa, D. Chavarria, and K. Maschhoff, "Input-Independent, Scalable and Fast String Matching on the Cray XMT," Proc. 23rd IEEE Int'l Parallel and Distributed Processing Symp. (IPDPS '09), 2009.
[29] D.P. Scarpazza and G.F. Russell, "High-Performance Regular Expression Scanning on the Cell/B.E. Processor," Proc. 23rd Int'l Conf. Supercomputing (ICS' 09), 2009.
[30] FERMI, the Next Generation CUDA Architecture, , 2013.
[31] GCC, http:/, 2013.
[32] OpenMP, http://openmp.orgwp/, 2013.
[33] PFAC Library,, 2013.
29 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool