Pattern matching is the act of searching a given sequence of tokens for the presence of some other sequence of tokens, and represents one of the most fundamental problems encountered in computer science, from simple string scanning and regular expressions through to lexers & parsers, virus scanners and Intrusion Detection Systems (IDS).
This book describes in detail an approach to pattern matching that uses a parallel variant of the well known Aho-Corasick algorithm implemented using OpenCL to enable heterogeneous acceleration across a range of devices.
The intent of this book is to live in the gap between tutorials on the OpenCL API, that often tend not to cover some of the practical complexities, and some of the academic papers that are full of theory and interesting mathematics, but which often fall short on accessibility and practical application.