Skip to main content

Bitwise Data Parallelism with LLVM: The ICgrep Case Study

  • Conference paper
  • First Online:
Algorithms and Architectures for Parallel Processing (ICA3PP 2015)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9529))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. 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)

    Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. 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)

    Google Scholar 

  4. Davis, M., Heninger, A.: Unicode technical standard 18, Unicode regular expressions. The Unicode Consortium (2012)

    Google Scholar 

  5. Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Code Generation and Optimization 2004, pp. 75–86. IEEE (2004)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. Myers, G.: A fast bit-vector algorithm for approximate string matching based on dynamic programming. J. ACM 46(3), 395–415 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  8. Mytkowicz, T., Musuvathi, M., Schulte, W.: Data-parallel finite-state machines. In: ASPLOS, pp. 529–542. ACM (2014)

    Google Scholar 

  9. Salapura, V., Karkhanis, T., Nagpurkar, P., Moreira, J.: Accelerating business analytics applications. In: HPCA, pp. 1–10. IEEE (2012)

    Google Scholar 

  10. Scarpazza, D.P.: Top-performance tokenization and small-ruleset regular expression matching. Int. J. Parallel Program. 39(1), 3–32 (2011)

    Article  Google Scholar 

  11. 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)

    Article  Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Robert D. Cameron .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics