Skip to main content
Log in

Enhancing the performance of decision tree-based packet classification algorithms using CPU cluster

  • Published:
Cluster Computing Aims and scope Submit manuscript

Abstract

Packet classification is a essential process in network processors. In this process, the incoming packets are matched against a set of filters and divided into specified streams. Classification methods are either software-based or hardware-based. Despite hardware-based methods, software-based methods are more flexible and have a lower cost. This paper reports on an experiment in which the Hierarchical-trie (H-trie) algorithm, which is a software-based method, was for the first time parallelized using the CPU cluster. The characteristic of this algorithm is building a decision tree with the least memory usage and search complexity. We implemented and executed different scenarios by using MPI and OpenMP and combining them in a system with a single multi-core processor as well as multi-core processor clusters. Our results suggest that an increase in the number of processor cores would linearly increase the speed of classification. Moreover, MPI uses more memory than OpenMP but provides a higher rate of classification. The results of the combined method show that, if the number of processes and threads are equal to the number of processor cores, the maximum speed of packet classification can be achieved. Also, the least classification time and memory usage can be achieved when the sum of processes and threads do not outnumber CPU cores.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

References

  1. Baboescu, F., Varghese, G.: Scalable packet classification. Netw. IEEE/ACM Trans. 13, 2–14 (2005)

    Article  Google Scholar 

  2. Gupta, P.: Algorithms for Routing Lookups and Packet Classification. Stanford University, Stanford (2000)

    Google Scholar 

  3. Gupta, P., McKeown, N.: Packet classification on multiple fields. In: Proceedings of the ACM SIGCOMM Computer Communication Review, pp. 147–160 (1999)

  4. Gupta, P., McKeown, N.: Algorithms for packet classification. IEEE Netw. 15, 24–32 (2001)

    Article  Google Scholar 

  5. Norige, E., Liu, A.X., Torng, E., Torng, E., Norige, E., Liu, A.X.: A ternary unification framework for optimizing TCAM-based packet classification systems. IEEE/ACM Trans. Netw. (TON) 26, 657–670 (2018)

    Article  Google Scholar 

  6. Shen, R., Li, X., Li, H.: A space-and power-efficient multi-match packet classification technique combining TCAMs and SRAMs. J. Supercomput. 69, 673–692 (2014)

    Article  Google Scholar 

  7. Yu, W., Sivakumar, S., Pao, D.: Pseudo-TCAM: SRAM-based architecture for packet classification in one memory access. IEEE Netw. Lett. 1, 89–92 (2019)

    Article  Google Scholar 

  8. Zheng, K., Che, H., Wang, Z., Liu, B., Zhang, X.: DPPC-RE: TCAM-based distributed parallel packet classification with range encoding. IEEE Trans. Comput. 55, 947–961 (2006)

    Article  Google Scholar 

  9. Taylor, D.E., Turner, J.S.: ClassBench: a packet classification benchmark. In Proceedings IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies, pp. 2068–2079 (2005)

  10. Dong, X., Qian, M., Jiang, R.: Packet classification based on the decision tree with information entropy. J. Supercomput. (2018). https://doi.org/10.1007/s11227-017-2227-z

    Article  Google Scholar 

  11. Li, W., Li, D., Bai, Y., Le, W., Li, H.: Memory-efficient recursive scheme for multi-field packet classification. IET Commun. 13, 1319–1325 (2019)

    Article  Google Scholar 

  12. Liang, E., Zhu, H., Jin, X., Stoica, I.: Neural packet classification. https://arxiv.org/abs/1902.10319, (2019)

  13. Suga, T., Okada, K., Esaki, H.: Toward real-time packet classification for preventing malicious traffic by machine learning. In: 2019 22nd Conference on Innovation in Clouds, Internet and Networks and Workshops (ICIN), pp. 106–111 (2019)

  14. Taylor, D.E.: Survey and taxonomy of packet classification techniques. ACM Comput. Surv. (CSUR) 37, 238–275 (2005)

    Article  Google Scholar 

  15. Lim, H., Chu, H.N., Yim, C.: Hierarchical binary search tree for packet classification. IEEE Commun. Lett. 11, 689–691 (2007)

    Article  Google Scholar 

  16. Gupta, P., McKeown, N.: Classifying packets with hierarchical intelligent cuttings. IEEE Micro 20, 34–41 (2000)

    Article  Google Scholar 

  17. Singh, S., Baboescu, F., Varghese, G., Wang, J.: Packet classification using multidimensional cutting. In: Proceedings of the 2003 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications, pp. 213–224 (2003)

  18. Lim, H., Kang, M.Y., Yim, C.: Two-dimensional packet classification algorithm using a quad-tree. Comput. Commun. 30, 1396–1405 (2007)

    Article  Google Scholar 

  19. Henty, D.S.: Performance of hybrid message-passing and shared-memory parallelism for discrete element modelling. In: Proceedings of the 2000 ACM/IEEE Conference on Supercomputing, p. 10 (2000)

  20. Pao, D., Liu, C.: Parallel tree search: An algorithmic approach for multi-field packet classification. Comput. Commun. 30, 302–314 (2007)

    Article  Google Scholar 

  21. Nottingham, A., Irwin, B.: Parallel packet classification using GPU co-processors. In: Proceedings of the 2010 Annual Research Conference of the South African Institute of Computer Scientists and Information Technologists, pp. 231–241 (2010)

  22. Hung, C.-L., Lin, Y.-L., Li, K.-C., Wang, H.-H., Guo, S.-W.: Efficient GPGPU-based parallel packet classification. Presented at the Trust, Security and Privacy in Computing and Communications (TrustCom), (2011)

  23. Hung, C.-L., Guo, S.-W.: Fast parallel network packet filter system based on CUDA. Int. J. Netw. Distrib. Comput. 2, 198–210 (2014)

    Article  Google Scholar 

  24. Hung, C.-L., Lin, C.-Y., Wang, H.-H.: An efficient parallel-network packet pattern-matching approach using GPUs. J. Syst. Architect. 60, 431–439 (2014)

    Article  Google Scholar 

  25. Wu, X., Li, W.: Performance models for scalable cluster computing. J. Syst. Archit. 44, 189–205 (1998)

    Article  Google Scholar 

  26. Talia, D.: Models and languages for high-performance computing. In: Ranganathan, S., Gribskov, M., Nakai, K., Schönbach, C. (eds.) Encyclopedia of Bioinformatics and Computational Biology, pp. 215–220. Academic Press, Oxford (2018)

    Google Scholar 

  27. Cappello, F., Etiemble, D.: MPI versus MPI+ OpenMP on the IBM SP for the NAS Benchmarks. In: Supercomputing, ACM/IEEE 2000 Conference, pp. 12–12 (2000)

  28. Smith, L., Bull, M.: Development of mixed mode MPI/OpenMP applications. Sci. Program. 9, 83–98 (2001)

    Google Scholar 

  29. Jost, G., Jin, H.-Q., anMey, D., Hatay, F.F.: Comparing the OpenMP, MPI, and hybrid programming paradigm on an SMP cluster (2003)

  30. Rabenseifner, R., Hager, G., Jost, G.: Hybrid MPI/OpenMP parallel programming on clusters of multi-core SMP nodes. In: 2009 17th Euromicro International Conference on Parallel, Distributed and Network-Based Processing, pp. 427–436 (2009)

  31. Grant, R.E., Olivier, S.L.: Chapter 6—Networks and MPI for cluster computing. In: Prasad, S.K., Gupta, A., Rosenberg, A.L., Sussman, A., Weems, C.C. (eds.) Topics in Parallel and Distributed Computing, pp. 117–153. Morgan Kaufmann, Boston (2015)

    Chapter  Google Scholar 

  32. Jeffers, J., Reinders, J., Sodani, A.: Chapter 15—MPI. In: Jeffers, J., Reinders, J., Sodani, A. (eds.) Intel Xeon Phi Processor High Performance Programming, 2nd edn, pp. 339–367. Morgan Kaufmann, Boston (2016)

    Chapter  Google Scholar 

  33. Sterling, T., Anderson, M., Brodowicz, M.: Chapter 8—the essential MPI. In: Sterling, T., Anderson, M., Brodowicz, M. (eds.) High Performance Computing, pp. 249–284. Morgan Kaufmann, Boston (2018)

    Chapter  Google Scholar 

  34. Adam, J., Kermarquer, M., Besnard, J.-B., Bautista-Gomez, L., Pérache, M., Carribault, P., et al.: Checkpoint/restart approaches for a thread-based MPI runtime. Parallel Comput. 85, 204–219 (2019)

    Article  Google Scholar 

  35. López-Gómez, J., Fernández Muñoz, J., del Rio Astorga, D., Dolz, M.F., Garcia, J.D.: Exploring stream parallel patterns in distributed MPI environments. Parallel Comput. 84, 24–36 (2019)

    Article  Google Scholar 

  36. Nottingham, A., Irwin, B.: GPU packet classification using OpenCL: a consideration of viable classification methods. In: Proceedings of the 2009 Annual Research Conference of the South African Institute of Computer Scientists and Information Technologists, pp. 160–169 (2009)

  37. Pong, F., Tzeng, N.-F.: HaRP: rapid packet classification via hashing round-down prefixes. IEEE Trans. Parallel Distrib. Syst. 22, 1105–1119 (2011)

    Article  Google Scholar 

  38. Kang, K., Deng, Y.S.: Scalable packet classification via GPU metaprogramming. Des. Autom. Test Eur. Conf. Exhib. (DATE) 2011, 1–4 (2011)

    Google Scholar 

  39. Varvello, M., Laufer, R., Zhang, F., Lakshman, T.: Multi-layer packet classification with graphics processing units. In: Proceedings of the 10th ACM International on Conference on emerging Networking Experiments and Technologies, pp. 109–120 (2014)

  40. Rafiee, M., Abbasi, M., Nassiri, M.: An efficient method for parallel implementation of H-trie packet classification algorithm on GPU. Tabriz J. Electr. Eng. 3, 181–196 (2016)

    Google Scholar 

  41. Zhou, S., Qu, Y.R., Prasanna, V.K.: Multi-core implementation of decomposition-based packet classification algorithms. Int. Conf. Parallel Comput. Technol. (2013). https://doi.org/10.1007/978-3-642-39958-9_9

    Article  Google Scholar 

  42. Qu, Y.R., Zhang, H.H., Zhou, S., Prasanna, V.K.: Optimizing many-field packet classification on fpga, multi-core general purpose processor, and gpu. In: Proceedings of the Eleventh ACM/IEEE Symposium on Architectures for networking and communications systems, pp. 87–98 (2015)

  43. Hutter, J., Curioni, A.: Dual-level parallelism for ab initio molecular dynamics: Reaching teraflop performance with the CPMD code. Parallel Comput. 31, 1–17 (2005)

    Article  MathSciNet  Google Scholar 

  44. Ferretti, M., Santangelo, L.: Hybrid OpenMP-MPI parallelism: porting experiments from small to large clusters. In: 2018 26th Euromicro International Conference on Parallel, Distributed and Network-based Processing (PDP), pp. 297–301 (2018)

  45. Jiao, Y.-Y., Zhao, Q., Wang, L., Huang, G.-H., Tan, F.: A hybrid MPI/OpenMP parallel computing model for spherical discontinuous deformation analysis. Comput. Geotech. 106, 217–227 (2019)

    Article  Google Scholar 

  46. Katz, M.J., Papadopoulos, P.M., Bruno, G.: Leveraging standard core technologies to programmatically build linux cluster appliances. In: Proceedings IEEE International Conference on Cluster Computing, pp. 47–53 (2002)

  47. Zheng, J., Zhang, D., Li, Y., Li, G.: Accelerate packet classification using GPU: a case study on HiCuts. In: Park, J.J., Stojmenovic, I., Jeong, H.Y., Yi, G. (eds.) Computer Science and Its Applications: Ubiquitous Information Technologies, pp. 231–238. Springer, Berlin (2015)

    Chapter  Google Scholar 

  48. Zhou, S., Singapura, S.G., Prasanna, V.K.: High-performance packet classification on gpu. In: High Performance Extreme Computing Conference (HPEC), 2014 IEEE, pp. 1–6 (2014)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mahdi Abbasi.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Abbasi, M., Shokrollahi, A. Enhancing the performance of decision tree-based packet classification algorithms using CPU cluster. Cluster Comput 23, 3203–3219 (2020). https://doi.org/10.1007/s10586-020-03081-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10586-020-03081-7

Keywords

Navigation