To Use or Not to Use: Graphics Processing Units for Pattern Matching Algorithms (original) (raw)
Related papers
To use or not to use: Graphics processing units (GPUs) for pattern matching algorithms
7th International Conference on Information and Automation for Sustainability
String matching is an important part in today's computer applications and Aho-Corasick algorithm is one of the main string matching algorithms used to accomplish this. This paper discusses that when can the GPUs be used for string matching applications using the Aho-Corasick algorithm as a benchmark. We have to identify the best unit to run our string matching algorithm according to the performance of our devices and the applications. Sometimes CPU gives better performance than GPU and sometimes GPU gives better performance than CPU. Therefore, identifying this critical point is significant task for researchers who are using GPUs to improve the performance of their string matching applications based on string matching algorithms.
Investigation of GPU-based Pattern Matching
—Graphics Processing Units (GPUs) have become the focus of much interest with the scientific community lately due to their highly parallel computing capabilities, and cost effectiveness. They have evolved from simple graphic rendering devices to extremely complex parallel processors, used in a plethora of scientific areas. This paper outlines experimental results of a comparison between GPUs and general purpose CPUs for exact pattern matching. Specifically, a comparison is conducted for the Knuth-Morris-Pratt algorithm using different string sizes, alphabet sizes and introduces different techniques such as loop unrolling, and shared memory using the Compute Unified Device Architecture framework. Empirical results demonstrate a 29 fold increase in processing speed where GPUs are used instead of CPUs.
String Matching on a multicore GPU using CUDA
2009 13th Panhellenic …, 2009
Graphics Processing Units (GPUs) have evolved over the past few years from dedicated graphics rendering devices to powerful parallel processors, outperforming traditional Central Processing Units (CPUs) in many areas of scientific computing. The use of GPUs as processing elements was very limited until recently, when the concept of General-Purpose computing on Graphics Processing Units (GPGPU) was introduced. GPGPU made possible to exploit the processing power and the memory bandwidth of the GPUs with the use of APIs that hide the GPU hardware from programmers. This paper presents experimental results on the parallel processing for some well known on-line string matching algorithms using one such GPU abstraction API, the Compute Unified Device Architecture (CUDA).
Faster Multipattern Matching System on GPU Based on Aho-Corasick Algorithm
2014
GPU Computing Have attracted lots of attention due to their large amount of data processing. The algorithm proposed in this paper is use for exact pattern matching on GPU. Among some famous algorithms, the Aho-Corasick Algorithm match multiple pattern simultaneously. a Traditional Aho-Corasick Algorithm matches the pattern by traversing state machine, known as Deterministic finite automata(DFA).Signature matching is important Technique in virus/worm detection, but Aho-corasick algorithm was developed only for string and virus/worm signature could be in regular expression . In this research work new guidelines are proposed for an efficient GPU adaptation of Aho-corasick algorithm for regular expression matching. Also several techniques are introduced to optimization on GPU, including reducing global memory access, storage format for output table. To evaluate performance proposed system will use SNORT virus database. Proposed algorithm Implemented on NVIDIA GTX-680 Graphics card using...
String matching with multicore CPUs: Performing better with the Aho-Corasick algorithm
2013 IEEE 8th International Conference on Industrial and Information Systems, 2013
Multiple string matching is known as locating all the occurrences of a given number of patterns in an arbitrary string. It is used in bio-computing applications where the algorithms are commonly used for retrieval of information such as sequence analysis and gene/protein identification. Extremely large amount of data in the form of strings has to be processed in such biocomputing applications. Therefore, improving the performance of multiple string matching algorithms is always desirable. Multicore architectures are capable of providing better performance by parallelizing the multiple string matching algorithms. The Aho-Corasick algorithm is the one that is commonly used in exact multiple string matching algorithms. The focus of this paper is the acceleration of Aho-Corasick algorithm through a multicore CPU based software implementation. Through our implementation and evaluation of results, we prove that our method performs better compared to the state of the art.
Accelerating String Matching Algorithms on Multicore Processors
— String matching is the most computation-intensive process in many applications, such as network intrusion detection system, web searching and biological matching. The Aho-Corasick algorithm is the most popular string matching algorithm because of its ability to use one thread to match all patterns in parallel. In our previous work, we propose a string matching algorithm called Parallel Failureless Aho-Corasick algorithm to parallelize the traditional Aho-Corasick algorithm by adopting multiple threads on graphic processing units. Due to the advancing technology of multi-core processors, in this paper, we accelerate the Parallel Failureless Aho-Corasick algorithm on multi-core processors using multi-threaded implementation. Experimental results show that for processing large scale of inputs and patterns, the Parallel Failureless Aho-Corasick algorithm performing on multi-core processors delivers throughput up to 33 Gbps, 4 times faster than the traditional multi-threaded Aho-Corasick algorithm. Both the performance and scalability of the Parallel Failureless Aho-Corasick algorithm is improved on multi-core processors.
String Matching on hybrid parallel architectures, an approach using MPI and NVIDIA CUDA
9.6.1. CUDA Implementation (mpiShiftOr.cu) 78 9.7. Shift And 81 9.7.1. CUDA Implementation (mpiShiftAnd.cu) 81 References 84 I would like to thank my supervisor Prof. Konsatntinos G. Margaritis, for his support and insightful feedback during the conduction of this research. I would also like to thank the Parallel Distributed Processing Laboratory, as well as, the department of Applied Informatics of University of Macedonia, for providing me access to the hardware that was used to run the experiments. Last but not least, I want to thank my family and friends for all of their support.
Parallel Rabin-Karp Algorithm for String Matching using GPU
2019
String matching algorithms play an important role in many aspects. In this paper, a new method is proposed for parallel execution of Rabin-Karp string matching algorithm. In the proposed method, all patterns are divided into different groups. This categorization has been used to prevent redundant comparisons and accelerate the matching process. This procedure takes two advantages: a reduction in the number of comparisons of hash values and a decline in the number of pattern reading from global memory. It is recommended to implement the algorithm in various cases on NVIDIA GPUs using CUDA Platform to demonstrate the efficiency of the proposed algorithm. Experimental results depict that the execution time of the algorithm has decreased significantly. In the best case, the proposed method is approximately 27 times faster than the series mode. Keywords-String Matching Algorithm; Rabin-Karp Algorithm; GPU; Categorization
Optimization of Parallel Aho-Corasick Multipattern Matching Algorithm on GPU
International Journal of Innovative Research in Computer and Communication Engineering, 2015
Network Intrusion Detection Systems (NIDS) need to handle computationally intensive operations like pattern matching, where huge amount of data needs to be matched against the known patterns. Storage capacity and link speed has increased with the advent in technology. Therefore there has been an increase in the amount of data that needs to be matched against the known patterns. The traditional algorithms cannot handle this increased amount of data. Therefore, we need such a hardware and software solution that would help to handle this increased amount of incoming data in NIDS to match it with the known patterns. We have used a parallel multipattern matching algorithm that matches an input string with the known patterns (attack patterns or virus signatures) to check for the presence of any pattern in an input string and would return the state in the DFA and position in an input string where the pattern was found. We have run this algorithm on NVIDIA Geforce GTX 680 GPU with CUDA 6.5 programming model. We have also introduced several optimization techniques for the Parallel Aho-Corasick algorithm that would result in the reduction of memory usage, time and cost required to execute Parallel AC algorithm on GPU. Our results show that Optimized Parallel Aho-Corasick algorithm on GPU takes very less time for execution as compared to running the Serial Aho-Corasick algorithm on CPU, Parallel Aho-Corasick algorithm on CPU and Unoptimized Parallel Aho-Corasick algorithm on GPU.
Accelerating Enhanced Boyer-Moore String Matching Algorithm on Multicore GPU for Network Security
International Journal of Computer Applications, 2014
Graphics Processing Units (GPUs) were developed for graphics processing and it was not highly-parallel. But to overcome this problem developed General Purpose Computing on GPU, this is known as GPGPU.Boyer-Moore exact string matching algorithm are heavily used in the application of antivirus engines, DNA sequencing, text editors, intrusion detection etc. In this environment, the GPU was highly-parallel, multithreaded. In this Paper extend the GPU application into other area such as string matching problem. This paper shows the results on adapting the enhanced Boyer-Moore (EBM) string matching algorithm to run on GPU paradigm and comparison with serial version and multithreaded version on CPU.The experimental results demonstrate that GPU version of enhanced Boyer-Moore (EBM) string matching algorithm 10 times faster than CPU version and 9 times faster than the multithreaded version. It can be also see there that multithreaded version of EBM algorithm about 12% to 13% peak performance than serial version of EBM.Speedup of EBM algorithm is grow and 12x to 13x than serial one.