Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Communications of the ACM - Special issue on parallelism
Grail: a C++ library for automata and expressions
Journal of Symbolic Computation - Special issue on “algorithms: implementation, libraries and use”
Programming with POSIX threads
Programming with POSIX threads
Journal of the ACM (JACM)
Theory of Computation: A Primer
Theory of Computation: A Primer
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Derivation of a parallel string matching algorithm
Information Processing Letters
A Parallel DFA Minimization Algorithm
HiPC '02 Proceedings of the 9th International Conference on High Performance Computing
Constructing a finite automaton for a given regular expression
ACM SIGACT News
On Parallel Implementations of Deterministic Finite Automata
CIAA '09 Proceedings of the 14th International Conference on Implementation and Application of Automata
Multi-byte Regular Expression Matching with Speculation
RAID '09 Proceedings of the 12th International Symposium on Recent Advances in Intrusion Detection
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
Principles of Parallel Programming
Principles of Parallel Programming
HotPar'09 Proceedings of the First USENIX conference on Hot topics in parallelism
Data structures in the multicore age
Communications of the ACM
Accelerating DFA Construction by Hierarchical Merging
ISPA '11 Proceedings of the 2011 IEEE Ninth International Symposium on Parallel and Distributed Processing with Applications
Speculative Parallel Pattern Matching
IEEE Transactions on Information Forensics and Security
A Speculative Parallel DFA Membership Test for Multicore, SIMD and Cloud Computing Environments
International Journal of Parallel Programming
Hi-index | 0.00 |
We discuss ways to effectively parallelize the subset construction algorithm, which is used to convert non-deterministic finite automata (NFAs) to deterministic finite automata (DFAs). This conversion is at the heart of string pattern matching based on regular expressions and thus has many applications in text processing, compilers, scripting languages and web browsers, security and more recently also with DNA sequence analysis. We discuss sources of parallelism in the sequential algorithm and their profitability on shared-memory multicore architectures. Our NFA and DFA data-structures are designed to improve scalability and keep communication and synchronization overhead to a minimum. We present three different ways for synchronization; the performance of our non-blocking synchronization based on a compare-and-swap (CAS) primitive compares favorably to a lock-based approach. We consider structural NFA properties and their relationship to scalability on highly-parallel multicore architectures. We demonstrate the efficiency of our parallel subset construction algorithm through several benchmarks run on a 4-CPU (40 cores) node of the Intel Manycore Testing Lab. Achieved speedups are up to a factor of 32x with 40 cores.