Issue No. 03 - March (2012 vol. 23)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TPDS.2011.181
Daniel G. Chavarría-Miranda , Pacific Northwest National Laboratory, Richland
Antonino Tumeo , Pacific Northwest National Laboratory, Richland
Oreste Villa , Pacific Northwest National Laboratory, Richland
String matching requires a combination of (sometimes all) the following characteristics: high and/or predictable performance, support for large data sets and flexibility of integration and customization. This paper compares several software-based implementations of the Aho-Corasick algorithm for high-performance systems. We focus on the matching of unknown inputs streamed from a single source, typical of security applications and difficult to manage since the input cannot be preprocessed to obtain locality. We consider shared-memory architectures (Niagara 2, x86 multiprocessors, and Cray XMT) and distributed-memory architectures with homogeneous (InfiniBand cluster of x86 multicores) or heterogeneous processing elements (InfiniBand cluster of x86 multicores with NVIDIA Tesla C1060 GPUs). We describe how each solution achieves the objectives of supporting large dictionaries, sustaining high performance, and enabling customization and flexibility using various data sets.
Aho-Corasick, string matching, GPGPU, Cray XMT, multithreaded architectures, high-performance computing.
Daniel G. Chavarría-Miranda, Antonino Tumeo, Oreste Villa, "Aho-Corasick String Matching on Shared and Distributed-Memory Parallel Architectures", IEEE Transactions on Parallel & Distributed Systems, vol. 23, no. , pp. 436-443, March 2012, doi:10.1109/TPDS.2011.181