Skip to main content
Log in

Performance assessment of multithreaded quicksort algorithm on simultaneous multithreaded architecture

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Sorting huge amounts of datasets have become essential in many computer applications, such as search engines, database and web-based applications, in order to improve searching performance. Moreover, due to the witnessed prevalence of the commercial Simultaneous Multithreaded architecture (SMT), parallel programming using multithreading becomes a dire need for efficiently using all available hardware resources for one application. In this paper, one of the efficient and quick algorithms, the Quicksort, is applied as a parallel multithreaded algorithm on SMT architecture, where virtual parallelization has been achieved using the POSIX threads (Pthreads) library. The proposed algorithm is evaluated and compared with its sequential counterpart. The obtained analytical and experimental results reveal that multithreading is a viable technique for implementing the parallel Quicksort algorithm efficiently on SMT architecture, where it has been shown both analytically and experimentally that the parallel multithreaded Quicksort algorithm outperforms the sequential Quicksort algorithm in terms of various performance metrics including; time complexity and speedup.

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
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20

Similar content being viewed by others

References

  1. Knuth DE (1998) The art of computer programming. Sorting and searching, vol 3, 2nd edn. Addison-Wesley, Reading

    Google Scholar 

  2. Knuth DE (1970) Von Neumann’s first computer program. Comput Surv 2:247–260

    Article  MATH  Google Scholar 

  3. Hoare CAR (1962) Quicksort Comput J 5(1):10–15

    Article  MathSciNet  MATH  Google Scholar 

  4. JaJa J (2000) A perspective on Quicksort. Comput Sci Eng 2(1):43–49

    Article  Google Scholar 

  5. Cormen T, Leiserson C, Rivest R, Stein C (2001) Introduction to algorithms, 2nd edn. The MIT Press, Cambridge

    MATH  Google Scholar 

  6. Jelenković L, Omrčen-Čeko G (1997) Experiments with multithreading in parallel computing. In: Proceedings of the 19th international conference on information technology interfaces (ITI’97), computer and intelligent systems, Croatia

    Google Scholar 

  7. Sun Microsystems (2008) Multithreaded programming guide. http://docs.oracle.com/cd/E19253-01/816-5137/816-5137.pdf. Accessed 06 August 2012

  8. Grama A, Gupta A, Karypis G, Kumar V (2003) Introduction to parallel computing, 2nd edn. Addison-Wesley, Reading (an imprint of Pearson Education Limited)

    Google Scholar 

  9. Ungerer T, Robic B, Silc J (2002) Multithreaded processors. Comput J 45:320–348

    Article  MATH  Google Scholar 

  10. Zang C, Imai S, Frank S, Kimura S (2008) Issue mechanism for embedded simultaneous multithreading processor. IEICE Trans Fundam Electron Commun Comput Sci E91-A(4):1092–1100

    Article  Google Scholar 

  11. Jain R (1991) The art of computer systems performance analysis: techniques for experimental design, measurement, simulation, and modeling. Wiley, New York

    MATH  Google Scholar 

  12. Kumari A, Chakraborty S (2007) Software complexity: a statistical case study through insertion sort. Appl Math Comput 190:40–50

    Article  MathSciNet  MATH  Google Scholar 

  13. Walsh TR (1984) How evenly should one divide to conquer quickly? Inf Process Lett 19(4):203–208

    Article  MATH  Google Scholar 

  14. Al-Darwish N (2005) Formulation and analysis of in-place MSD radix sort algorithms. J Inf Sci 31(6):467–481

    Article  Google Scholar 

  15. Chamberlain B, Callahan D, Zima H (2007) Parallel programmability and the Chapel language. Int J High Perform Comput Appl 21(3):291–312

    Article  Google Scholar 

  16. Bitton D, DeWitt D, Hsiao D, Menom J (1984) A taxonomy of parallel sorting. Comput Surv 16(3):287–318

    Article  MATH  Google Scholar 

  17. Sanders P, Hansch T (1997) On the efficient implementation of massively parallel Quicksort. In: 4th international symposium on solving irregularly structured problems in parallel. Lecture notes in computer science, vol 1253. Springer, Berlin, pp 13–24

    Chapter  Google Scholar 

  18. Brest J, Vreže A, Žumer V (2000) A sorting algorithm on PC cluster. In: Proceedings of the 2000 ACM symposium on applied computing, Como, Italy, vol 2, pp 710–715

    Chapter  Google Scholar 

  19. Lan Y, Mohamed MA (1992) Parallel Quicksort in hypercubes. In: Proceedings of the 1992 ACM/SIGAPP symposium on applied computing: technological challenges of the 1990’s, Kansas City, Missouri, pp 740–746

    Chapter  Google Scholar 

  20. Tsigas P, Zhang Y (2003) A simple, fast parallel implementation of Quicksort and its performance evaluation on SUN enterprise 10000. In: Eleventh Euromicro conference on parallel, distributed and network-based processing, Genova, Italy

    Google Scholar 

  21. Heidelberger P, Norton A, Robinson JT (1990) Parallel Quicksort using fetch-and-add. IEEE Trans Comput 39(1):133–138

    Article  Google Scholar 

  22. Tikhonova A, Tanase G, Tkachyshyn O, Amato N, Rauchwerge L (2005) Parallel algorithms in STAPL: sorting and the selection problem. Technical Report TR05-005 in Parasol Lab, Department of Computer Science, Texas A&M University

  23. Nagaraja S, Pan Y, Badii M (2001) A parallel merging algorithm and its implementation with Java threads. In: Proceeding of MASPLAS’01 the mid-Atlantic student workshop on programming languages and systems. IBM Watson Research Centre, Armonk

    Google Scholar 

  24. Johnson E (1998) Support for parallel generic programming. Dissertation, Indiana University

  25. Berlin J, Tanase G, Bianco M, Rauchwerger L, Amato NM (2007) Sample sort using the standard template adaptive parallel library. Technical Report TR07-002, Parasol Lab, Dept of Computer Science, Texas A&M University, College Station, USA

  26. Garcia P, Korth HF (2005) Multithreaded architectures and the sort benchmark. In: Proceedings of the first international workshop on data management on new hardware (DaMoN ’05), Baltimore, Maryland

    Google Scholar 

  27. Wang D, Zhang X, Men T, Wang M, Qin H (2012) An implementation of sorting algorithm based on Java multi-thread technology. In: Proceedings of 2012 international conference on computer science and electronics engineering (ICCSEE 2012), vol 1, pp 629–632

    Chapter  Google Scholar 

  28. Lin H, Li C, Wang Q, Zhao Y, Pan N, Zhuang X, Shao L (2010) Automated tuning in parallel sorting on multi-core architectures. In: Lecture notes in computer science, LNCS, vol 6271. Springer, Berlin, pp 14–25

    Google Scholar 

  29. Rashid L, Hassanein WM, Hammad MA (2010) Analyzing and enhancing the parallel sort operation on multithreaded architectures. J Supercomput 53(2):293–312

    Article  Google Scholar 

  30. Wilkenson B (1996) Computer architecture design and performance, 2nd edn. Prentice Hall, London

    Google Scholar 

  31. Deitel PJ, Deitel HM (2007) C++ how to program, 6th edn. Prentice Hall, New York

    Google Scholar 

  32. Hennesy J, Patterson D (2006) Computer architecture: a quantitative approach, 4th edn. Morgan Kaufmann, San Mateo

    Google Scholar 

Download references

Acknowledgements

The author would like to express his deep gratitude to the anonymous referees for their valuable comments and helpful suggestions, which improved the paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Basel A. Mahafzah.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Mahafzah, B.A. Performance assessment of multithreaded quicksort algorithm on simultaneous multithreaded architecture. J Supercomput 66, 339–363 (2013). https://doi.org/10.1007/s11227-013-0910-2

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-013-0910-2

Keywords

Navigation