Skip to main content

Accelerating Pattern Matching with CPU-GPU Collaborative Computing

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

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

Abstract

Pattern matching algorithms are used in several areas such as network security, bioinformatics and text mining. In order to support large data and pattern sets, these algorithms have to be adapted to take advantage of the computing power of emerging parallel architectures. In this paper, we present a parallel algorithm for pattern matching on CPU-GPU heterogeneous systems, which is based on the Parallel Failureless Aho-Corasick algorithm (PFAC) for GPU. We evaluate the performance of the proposed algorithm on a machine with 36 CPU cores and 1 GPU, using data and pattern sets of different size, and compare it with that of PFAC for GPU and the multithreaded version of PFAC for shared-memory machines. The results reveal that our proposal achieves higher performance than the other two approaches for data sets of considerable size, since it uses both CPU and GPU cores.

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

Similar content being viewed by others

Notes

  1. 1.

    Speedup is defined as \(\frac{T_{s}}{T_{p}}\), where \(T_{s}\) is the execution time of the sequential algorithm and \(T_{p}\) is the execution time of the parallel algorithm.

  2. 2.

    Load balance [14] can be defined as the ratio between the average time to finish all of the parallel tasks \(T_{avg}\) and the maximum time to finish any of the parallel tasks \(T_{max}\).

References

  1. Tumeo A., Villa O.: Accelerating DNA analysis applications on GPU clusters. In: IEEE 8th Symposium on Application Specific Processors (SASP), pp. 71–76. IEEE Computer Society, Washington D. C. (2010)

    Google Scholar 

  2. Clamav. http://www.clamav.net

  3. Norton M.: Optimizing Pattern matching for intrusion detection. Sourcefire Inc., White Paper. https://www.snort.org/documents/optimization-of-pattern-matches-for-ids

  4. Tumeo, A., et al.: Efficient pattern matching on GPUs for intrusion detection systems (2010)

    Google Scholar 

  5. Aho, A.V., Corasick, M.J.: Efficient string matching: an aid to bibliographic search. Commun. ACM. 18(6), 333–340 (1975)

    Article  MathSciNet  Google Scholar 

  6. Tumeo, A., et al.: Aho-Corasick string matching on shared and distributed-memory parallel architectures. IEEE Trans. Parallel Distrib. Syst. 23(3), 436–443 (2012)

    Article  Google Scholar 

  7. Lin, C.H., et al.: Accelerating pattern matching using a novel parallel algorithm on GPUs. IEEE Trans. Comput. 62(10), 1906–1916 (2013)

    Article  MathSciNet  Google Scholar 

  8. Arudchutha S., et al.: String matching with multicore CPUs: Performing better with the Aho-Corasick algorithm. In: 2013 IEEE 8th International Conference on Industrial and Information Systems, pp. 231–236. IEEE Computer Society, Washington D. C. (2013)

    Google Scholar 

  9. Herath, D., et al.: Accelerating string matching for bio-computing applications on multi-core CPUs. In: Proceedings of the IEEE 7th International Conference on Industrial and Information Systems (ICIIS), pp. 1–6. IEEE Computer Society, Washington D. C. (2012)

    Google Scholar 

  10. Soroushnia, S., et al.: Heterogeneous parallelization of Aho-Corasick algorithm. In: Proceedings of the IEEE 7th International Conference on Industrial and Information Systems (ICIIS), pp. 1–6. IEEE Computer Society, Washington D. C. (2012)

    Google Scholar 

  11. Mittal, S., Vetter, J.: A survey of CPU-GPU heterogeneous computing techniques. ACM Comput. Surv. 47(4), 69:1–69:35 (2015)

    Article  Google Scholar 

  12. Wan, L., et al.: Efficient CPU-GPU cooperative computing for solving the subset-sum problem. Concurr. Comput.: Pract. Exp. 28(2), 185–186 (2016)

    Article  Google Scholar 

  13. The British National Corpus, version 3 (BNC XML Edition). Distributed by Bodleian Libraries, University of Oxford, on behalf of the BNC Consortium (2007). http://www.natcorp.ox.ac.uk/

  14. Rahman, R.: Intel Xeon Phi Coprocessor Architecture and Tools: The Guide for Application Developers. Apress, Berkeley (2013)

    Book  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Victoria Sanz .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Sanz, V., Pousa, A., Naiouf, M., De Giusti, A. (2018). Accelerating Pattern Matching with CPU-GPU Collaborative Computing. In: Vaidya, J., Li, J. (eds) Algorithms and Architectures for Parallel Processing. ICA3PP 2018. Lecture Notes in Computer Science(), vol 11334. Springer, Cham. https://doi.org/10.1007/978-3-030-05051-1_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-05051-1_22

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-05050-4

  • Online ISBN: 978-3-030-05051-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics