Parallel String Sample Sort

  • Timo Bingmann
  • Peter Sanders
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8125)


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.


Search Tree Sorting Algorithm Dynamic Load Balance Radix Sort Hardware Thread 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Akiba, T.: Parallel string radix sort in C++ (2011), (git repository accessed November 2012)
  2. 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. 3.
    Bingmann, T., Sanders, P.: Parallel string sample sort. Tech. rep. (May 2013), see ArXiv e-print arXiv:1305.1157Google Scholar
  4. 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. 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)CrossRefGoogle Scholar
  6. 6.
    Knöpfle, S.D.: String samplesort, bachelor Thesis, Karlsruhe Institute of Technology (November 2012) (in German)Google Scholar
  7. 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)CrossRefGoogle Scholar
  8. 8.
    McIlroy, P.M., Bostic, K., McIlroy, M.D.: Engineering radix sort. Computing Systems 6(1), 5–27 (1993)Google Scholar
  9. 9.
    Mehlhorn, K., Sanders, P.: Scanning multiple sequences via cache memory. Algorithmica 35(1), 75–93 (2003)MathSciNetzbMATHCrossRefGoogle Scholar
  10. 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. 11.
    Ng, W., Kakehi, K.: Merging string sequences by longest common prefixes. IPSJ Digital Courier 4, 69–78 (2008)CrossRefGoogle Scholar
  12. 12.
    Rantala, T.: Library of string sorting algorithms in C++ (2007), (git repository accessed November 2012)
  13. 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)CrossRefGoogle Scholar
  14. 14.
    Shamsundar, N.: A fast, stable implementation of mergesort for sorting text files (May 2009), (source downloaded November 2012)
  15. 15.
    Sinha, R., Wirth, A.: Engineering Burstsort: Toward fast in-place string sorting. J. Exp. Algorithmics 15(2.5), 1–24 (2010)MathSciNetGoogle Scholar
  16. 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)MathSciNetGoogle Scholar
  17. 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. 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. 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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Timo Bingmann
    • 1
  • Peter Sanders
    • 1
  1. 1.Karlsruhe Institute of TechnologyKarlsruheGermany

Personalised recommendations