Abstract
Bitwise data parallelism using short vector (SIMD) instructions has recently been shown to have considerable promise as the basis for a new, fundamentally parallel, style of regular expression processing. This paper examines the application of this approach to the development a full-featured Unicode-capable open-source grep implementation. Constructed using a layered architecture combining Parabix and LLVM compiler technologies, icGrep is the first instance of a potentially large class of text processing applications that achieve high performance text processing through the combination of dynamic compilation and bitwise data parallelism. In performance comparisons with several contemporary alternatives, 10\(\times \) or better speedups are often observed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Asanovic, K., Bodik, R., Catanzaro, B.C., Gebis, J.J., Husbands, P., Keutzer, K., Patterson, D.A., Plishker, W.L., Shalf, J., Williams, S.W., et al.: The landscape of parallel computing research: a view from Berkeley. Technical report UCB/EECS-2006-183, EECS Department, University of California, Berkeley (2006)
Cameron, R.D., Amiri, E., Herdy, K.S., Lin, D., Shermer, T.C., Popowich, F.P.: Parallel scanning with bitstream addition: an XML case study. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011, Part II. LNCS, vol. 6853, pp. 2–13. Springer, Heidelberg (2011)
Cameron, R.D., Shermer, T.C., Shriraman, A., Herdy, K.S., Lin, D., Hull, B.R., Lin, M.: Bitwise data parallelism in regular expression matching. In: PACT, pp. 139–150. ACM, New York (2014)
Davis, M., Heninger, A.: Unicode technical standard 18, Unicode regular expressions. The Unicode Consortium (2012)
Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Code Generation and Optimization 2004, pp. 75–86. IEEE (2004)
Lin, D., Medforth, N., Herdy, K.S., Shriraman, A., Cameron, R.: Parabix: boosting the efficiency of text processing on commodity processors. In: High Performance Computer Architecture, pp. 1–12. IEEE (2012)
Myers, G.: A fast bit-vector algorithm for approximate string matching based on dynamic programming. J. ACM 46(3), 395–415 (1999)
Mytkowicz, T., Musuvathi, M., Schulte, W.: Data-parallel finite-state machines. In: ASPLOS, pp. 529–542. ACM (2014)
Salapura, V., Karkhanis, T., Nagpurkar, P., Moreira, J.: Accelerating business analytics applications. In: HPCA, pp. 1–10. IEEE (2012)
Scarpazza, D.P.: Top-performance tokenization and small-ruleset regular expression matching. Int. J. Parallel Program. 39(1), 3–32 (2011)
Stewart, J., Uckelman, J.: Unicode search of dirty data, or: how i learned to stop worrying and love Unicode technical standard # 18. Digit. Invest. 10, S116–S125 (2013)
Zhao, Z., Wu, B., Shen, X.: Challenging the embarrassingly sequential: parallelizing finite state machine-based computations through principled speculation. In: ASPLOS, pp. 543–558. ACM (2014)
Zu, Y., Yang, M., Xu, Z., Wang, L., Tian, X., Peng, K., Dong, Q.: GPU-based NFA implementation for memory efficient high speed regular expression matching. In: PPoPP, pp. 129–140. ACM (2012)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Cameron, R.D., Medforth, N., Lin, D., Denis, D., Sumner, W.N. (2015). Bitwise Data Parallelism with LLVM: The ICgrep Case Study. In: Wang, G., Zomaya, A., Martinez, G., Li, K. (eds) Algorithms and Architectures for Parallel Processing. ICA3PP 2015. Lecture Notes in Computer Science(), vol 9529. Springer, Cham. https://doi.org/10.1007/978-3-319-27122-4_26
Download citation
DOI: https://doi.org/10.1007/978-3-319-27122-4_26
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-27121-7
Online ISBN: 978-3-319-27122-4
eBook Packages: Computer ScienceComputer Science (R0)