GPU Accelerated Implementation for Sunday String Pattern Matching Algorithm

In recent days, Graphics Processing Units (GPU's) have some specialized optimizations that have led to outperform traditional CPU's. General Purpose computing on Graphics Processor Units (GPGPU) brings massively parallel computing (hundreds of compute cores) to the desktop at a reasonable cost, but requires that algorithms be carefully designed to take advantage of this power. The present work explores the possibilities of using GPU's along with CUDA Streams to improve the performance of a string matching algorithm. String matching plays an important role in today's computer applications. Strings are an integral part of almost every data structure we manage. Boyer-Moore and Knuth-Morris-Pratt algorithms are the most famous string matching algorithms that have been proved efficient to some extent using CPU's and GPU's. Sunday string matching algorithm is another version of Boyer-Moore algorithm. In this paper, we have used GPU's to accelerate the performance of the Sunday string matching algorithm. We have conducted experiments to measure the performance of the GPU implementation with respect to the serial CPU implementation. Our results show a speedup of up to 20 times compared to the sequential implementation on the CPU.

[1]  Yuan-Cheng Lai,et al.  A Hybrid Algorithm of Backward Hashing and Automaton Tracking for Virus Scanning , 2011, IEEE Transactions on Computers.

[2]  Milos Besta,et al.  Mechanization of a proof of string-preprocessing in Boyer-Moore's pattern matching algorithm , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

[3]  Konstantinos G. Margaritis,et al.  String Matching on a Multicore GPU Using CUDA , 2009, 2009 13th Panhellenic Conference on Informatics.

[4]  Guoyong Cai,et al.  A Fast Pattern Matching Algorithm for Biological Sequences , 2008, 2008 2nd International Conference on Bioinformatics and Biomedical Engineering.

[5]  Roshan G. Ragel,et al.  To use or not to use: Graphics processing units (GPUs) for pattern matching algorithms , 2014, 7th International Conference on Information and Automation for Sustainability.

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

[7]  Helen N. Catanese,et al.  RepeatAnalyzer: a tool for analysing and managing short-sequence repeat data , 2016, BMC Genomics.

[8]  Christian Lovis,et al.  Research Paper: Fast Exact String Pattern-matching Algorithms Adapted to the Characteristics of the Medical Language , 2000, J. Am. Medical Informatics Assoc..

[10]  Hao Li,et al.  Performance modeling in CUDA streams — A means for high-throughput data processing , 2014, 2014 IEEE International Conference on Big Data (Big Data).

[11]  Daniel Sunday,et al.  A very fast substring search algorithm , 1990, CACM.

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