Skip to main content

Parallel String Sample Sort

  • Conference paper
Algorithms – ESA 2013 (ESA 2013)

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

Included in the following conference series:

Abstract

We discuss how string sorting algorithms can be parallelized on modern multi-core shared memory machines. As a synthesis of the best sequential string sorting algorithms and successful parallel sorting algorithms for atomic objects, we propose string sample sort. The algorithm makes effective use of the memory hierarchy, uses additional word level parallelism, and largely avoids branch mispredictions. Additionally, we parallelize variants of multikey quicksort and radix sort that are also useful in certain situations.

This paper is a short version of the technical report [3].

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Akiba, T.: Parallel string radix sort in C++ (2011), http://github.com/iwiwi/parallel-string-radix-sort (git repository accessed November 2012)

  2. Bentley, J.L., Sedgewick, R.: Fast algorithms for sorting and searching strings. In: ACM 8th Symposium on Discrete Algorithms, pp. 360–369 (1997)

    Google Scholar 

  3. Bingmann, T., Sanders, P.: Parallel string sample sort. Tech. rep. (May 2013), see ArXiv e-print arXiv:1305.1157

    Google Scholar 

  4. Blelloch, G.E., Leiserson, C.E., Maggs, B.M., Plaxton, C.G., Smith, S.J., Zagha, M.: A comparison of sorting algorithms for the connection machine CM-2. In: 3rd Symposium on Parallel Algorithms and Architectures. pp. 3–16 (1991)

    Google Scholar 

  5. Hagerup, T.: Optimal parallel string algorithms: sorting, merging and computing the minimum. In: Proceedings of the Twenty-Sixth Annual ACM Symposium on Theory of Computing, STOC 1994, pp. 382–391. ACM, New York (1994)

    Chapter  Google Scholar 

  6. Knöpfle, S.D.: String samplesort, bachelor Thesis, Karlsruhe Institute of Technology (November 2012) (in German)

    Google Scholar 

  7. Kärkkäinen, J., Rantala, T.: Engineering radix sort for strings. In: Amir, A., Turpin, A., Moffat, A. (eds.) SPIRE 2008. LNCS, vol. 5280, pp. 3–14. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  8. McIlroy, P.M., Bostic, K., McIlroy, M.D.: Engineering radix sort. Computing Systems 6(1), 5–27 (1993)

    Google Scholar 

  9. Mehlhorn, K., Sanders, P.: Scanning multiple sequences via cache memory. Algorithmica 35(1), 75–93 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  10. Ng, W., Kakehi, K.: Cache efficient radix sort for string sorting. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences E90-A(2), 457–466 (2007)

    Google Scholar 

  11. Ng, W., Kakehi, K.: Merging string sequences by longest common prefixes. IPSJ Digital Courier 4, 69–78 (2008)

    Article  Google Scholar 

  12. Rantala, T.: Library of string sorting algorithms in C++ (2007), http://github.com/rantala/string-sorting (git repository accessed November 2012)

  13. Sanders, P., Winkel, S.: Super scalar sample sort. In: Albers, S., Radzik, T. (eds.) ESA 2004. LNCS, vol. 3221, pp. 784–796. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  14. Shamsundar, N.: A fast, stable implementation of mergesort for sorting text files (May 2009), http://code.google.com/p/lcp-merge-string-sort (source downloaded November 2012)

  15. Sinha, R., Wirth, A.: Engineering Burstsort: Toward fast in-place string sorting. J. Exp. Algorithmics 15(2.5), 1–24 (2010)

    MathSciNet  Google Scholar 

  16. Sinha, R., Zobel, J.: Cache-conscious sorting of large sets of strings with dynamic tries. J. Exp. Algorithmics 9(1.5), 1–31 (2004)

    MathSciNet  Google Scholar 

  17. Sinha, R., Zobel, J., Ring, D.: Cache-efficient string sorting using copying. J. Exp. Algorithmics 11(1.2), 1–32 (2007)

    Google Scholar 

  18. Tsigas, P., Zhang, Y.: A simple, fast parallel implementation of quicksort and its performance evaluation on SUN enterprise 10000. In: PDP, pp. 372–381. IEEE Computer Society (2003)

    Google Scholar 

  19. Wassenberg, J., Sanders, P.: Engineering a multi-core radix sort. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011, Part II. LNCS, vol. 6853, pp. 160–169. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bingmann, T., Sanders, P. (2013). Parallel String Sample Sort. In: Bodlaender, H.L., Italiano, G.F. (eds) Algorithms – ESA 2013. ESA 2013. Lecture Notes in Computer Science, vol 8125. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40450-4_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-40450-4_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-40449-8

  • Online ISBN: 978-3-642-40450-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics