Skip to main content

Even Faster Sorting of (Not Only) Integers

  • Conference paper
  • First Online:
Man-Machine Interactions 5 (ICMMI 2017)

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 659))

Included in the following conference series:

Abstract

In this paper we introduce RADULS2, the fastest parallel sorter based on radix algorithm. It is optimized to process huge amounts of data making use of modern multicore CPUs. The main novelties include: high performance algorithm for handling tiny arrays (up to about a hundred of records) that could appear even billions times as subproblems to handle and improved processing of larger subarrays with better use of non-temporal memory stores.

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 169.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.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

References

  1. Batcher, K.: Sorting networks and their applications. In: AFIPS 1968, vol. 32, pp. 307–314 (1968)

    Google Scholar 

  2. Cho, M., Brand, D., Bordawekar, R., Finkler, U., Kulandaisamy, V., Puri, R.: PARADIS: an efficient parallel algorithm for in-place radix sort. In: Proceedings of the VLDB Endowment, vol. 8, pp. 1518–1529 (2015)

    Google Scholar 

  3. Codish, M., Cruz-Filipe, L., Frank, M., Schneider-Kamp, P.: Sorting nine inputs requires twenty-five comparisons. J. Comput. Syst. Sci. 82(3), 551–563 (2016)

    Article  MathSciNet  MATH  Google Scholar 

  4. Cormen, T., Leiserson, C., Rivest, R., Stein, C.: Introduction to Algorithms, 3rd edn. MIT Press, Cambridge (2009)

    MATH  Google Scholar 

  5. Deorowicz, S., Kokot, M., Grabowski, S., Debudaj-Grabysz, A.: KMC 2: fast and resource-frugal \(k\)-mer counting. Bioinformatics 31(10), 1569–1576 (2015)

    Article  Google Scholar 

  6. Drepper, U.: What Every Programmer Should Know About Memory (2007)

    Google Scholar 

  7. Edelkamp, S., Weiß, A.: Blockquicksort: How branch mispredictions don’t affect quicksort (2016). https://arxiv.org/abs/1604.06697

  8. Ehlers, T., Müller, M.: New bounds on optimal sorting networks. In: Beckmann, A., Mitrana, V., Soskova, M. (eds.) Evolving Computability. LNCS, vol. 9136, pp. 167–176. Springer, Cham (2015)

    Google Scholar 

  9. Fog, A.: The microarchitecture of Intel, AMD and VIA CPUs. An optimization guide for assembly programmers and compiler makers (2016). http://www.agner.org/optimize/microarchitecture.pdf

  10. Hoare, C.: Quicksort. Comput. J. 5(1), 10–16 (1962)

    Article  MathSciNet  MATH  Google Scholar 

  11. Intel: Intel Guide for Developing Multithreaded Application (2011). http://www.intel.com/software/threading-guide

  12. Intel: Threading Building Blocks (2016). https://www.threadingbuildingblocks.org/

  13. Knuth, D.: The Art of Computer Programming. Addison-Wesley, Boston (1968)

    MATH  Google Scholar 

  14. Kokot, M., Deorowicz, S., Debudaj-Grabysz, A.: Sorting data on ultra-large scale with RADULS. In: Kozielski, S., Mrozek, D., Kasprowski, P., Malysiak-Mrozek, B., Kostrzewa, D. (eds.) Beyond Databases, Architectures and Structures. Towards Efficient Solutions for Data Analysis and Knowledge Representation. CCIS, pp. 235–245. Springer, Cham (2017)

    Google Scholar 

  15. Kokot, M., Długosz, M., Deorowicz, S.: KMC 3: counting and manipulating k-mer statistics. Bioinformatics 33(17), 2759–2761 (2017). doi:10.1093/bioinformatics/btx304

    Google Scholar 

  16. McIlroy, P.M., Bostic, K., McIlroy, M.: Engineering radix sort. Comput. Syst. 6(1), 5–27 (1993)

    Google Scholar 

  17. Musser, D.: Introspective sorting and selection algorithms. Softw.: Pract. Exp. 27(8), 983–993 (1997)

    Google Scholar 

  18. Satish, N., Kim, C., Chhugani, J., Nguyen, A., Lee, V., Kim, D., Dubey, P.: Fast sort on CPUs and GPUs: a case for bandwidth oblivious SIMD sort. In: ACM SIGMOD 2010, Indianapolis, USA, pp. 351–362 (2010)

    Google Scholar 

  19. Shell, D.: A high-speed sorting procedure. Commun. ACM 2(7), 30–32 (1959)

    Article  Google Scholar 

  20. Shen, J., Lipasti, M.: Modern Processor Design: Fundamentals of Superscalar Processors. Waveland Press, Long Grove (2013)

    Google Scholar 

  21. Singler, J., Sanders, P., Putze, F.: MCSTL: the multi-core standard template library. In: Euro-Par 2007 Parallel Processing. LNCS, vol. 4641, pp. 682–694. Springer, Heidelberg (2007)

    Google Scholar 

  22. Williams, J.: Algorithm 232: heapsort. Commun. ACM 7(6), 347–348 (1964)

    Google Scholar 

Download references

Acknowledgements

The work was supported by the Polish National Science Center upon decision DEC-2015/17/B/ST6/01890.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marek Kokot .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Cite this paper

Kokot, M., Deorowicz, S., Długosz, M. (2018). Even Faster Sorting of (Not Only) Integers. In: Gruca, A., Czachórski, T., Harezlak, K., Kozielski, S., Piotrowska, A. (eds) Man-Machine Interactions 5. ICMMI 2017. Advances in Intelligent Systems and Computing, vol 659. Springer, Cham. https://doi.org/10.1007/978-3-319-67792-7_47

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-67792-7_47

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-67791-0

  • Online ISBN: 978-3-319-67792-7

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics