On the Benefit of Merging Suffix Array Intervals for Parallel Pattern Matching

preprint2016arXivOpen access

Abstract

We present parallel algorithms for exact and approximate pattern matching with suffix arrays, using a CREW-PRAM with pp processors. Given a static text of length nn, we first show how to compute the suffix array interval of a given pattern of length mm in O(mp+lg⁡p+lg⁡lg⁡p⋅lg⁡lg⁡n)O(\frac{m}{p}+ \lg p + \lg\lg p\cdot\lg\lg n) time for p≤mp \le m. For approximate pattern matching with kk differences or mismatches, we show how to compute all occurrences of a given pattern in O(mkσkpmax⁡(k,lg⁡lg⁡n) ⁣+ ⁣(1+mp)lg⁡p⋅lg⁡lg⁡n+occ)O(\frac{m^kσ^k}{p}\max\left(k,\lg\lg n\right)\!+\!(1+\frac{m}{p}) \lg p\cdot \lg\lg n + \text{occ}) time, where σσ is the size of the alphabet and p≤σkmkp \le σ^k m^k. The workhorse of our algorithms is a data structure for merging suffix array intervals quickly: Given the suffix array intervals for two patterns PP and P′P', we present a data structure for computing the interval of PP′PP' in O(lg⁡lg⁡n)O(\lg\lg n) sequential time, or in O(1+lg⁡plg⁡n)O(1+\lg_p\lg n) parallel time. All our data structures are of size O(n)O(n) bits (in addition to the suffix array).

Explore this paper’s authors, topics and related work.

Building this map preview

BZPEER is loading the nearby papers, people, topics and institutions for this page.

Reviews 0

Write a reviewWrite

No reviews yet.

Discussion 0

Add a commentWrite

No comments yet.