A Rabin-Karp Implementation For Handling Multiple Pattern-Matching On The Gpu

Lucas Saad Nogueira Nunes,Jacir Luiz Bordim,Yasuaki Ito,Koji Nakano

IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS(2020)

引用 4|浏览3
暂无评分
摘要
The volume of digital information is growing at an extremely fast pace which, in turn, exacerbates the need of efficient mechanisms to find the presence of a pattern in an input text or a set of input strings. Combining the processing power of Graphics Processing Unit (GPU) with matching algorithms seems a natural alternative to speedup the string-matching process. This work proposes a Parallel Rabin-Karp implementation (PRK) that encompasses a fast-parallel prefix-sums algorithm to maximize parallelization and accelerate the matching verification. Given an input text T of length n and p patterns of length m, the proposed implementation finds all occurrences of p in T in O(m + q + n/tau + nm/q) time, where q is a sufficiently large prime number and tau is the available number of threads. Sequential and parallel versions of the PRK have been implemented. Experiments have been executed on p >= 1 patterns of length m comprising of m = 10, 20, 30 characters which are compared against a text string of length n = 2(27). The results show that the parallel implementation of the PRK algorithm on NVIDIA V100 GPU provides speedup surpassing 372 times when compared to the sequential implementation and speedup of 12.59 times against an OpenMP implementation running on a multi-core server with 128 threads. Compared to another prominent GPU implementation, the PRK implementation attained speedup surpassing 37 times.
更多
查看译文
关键词
Rabin-Karp algorithm, prefix-sums, pattern matching, GPGPU, CUDA
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要