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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Batcher, K.: Sorting networks and their applications. In: AFIPS 1968, vol. 32, pp. 307–314 (1968)
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)
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)
Cormen, T., Leiserson, C., Rivest, R., Stein, C.: Introduction to Algorithms, 3rd edn. MIT Press, Cambridge (2009)
Deorowicz, S., Kokot, M., Grabowski, S., Debudaj-Grabysz, A.: KMC 2: fast and resource-frugal \(k\)-mer counting. Bioinformatics 31(10), 1569–1576 (2015)
Drepper, U.: What Every Programmer Should Know About Memory (2007)
Edelkamp, S., Weiß, A.: Blockquicksort: How branch mispredictions don’t affect quicksort (2016). https://arxiv.org/abs/1604.06697
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)
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
Hoare, C.: Quicksort. Comput. J. 5(1), 10–16 (1962)
Intel: Intel Guide for Developing Multithreaded Application (2011). http://www.intel.com/software/threading-guide
Intel: Threading Building Blocks (2016). https://www.threadingbuildingblocks.org/
Knuth, D.: The Art of Computer Programming. Addison-Wesley, Boston (1968)
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)
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
McIlroy, P.M., Bostic, K., McIlroy, M.: Engineering radix sort. Comput. Syst. 6(1), 5–27 (1993)
Musser, D.: Introspective sorting and selection algorithms. Softw.: Pract. Exp. 27(8), 983–993 (1997)
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)
Shell, D.: A high-speed sorting procedure. Commun. ACM 2(7), 30–32 (1959)
Shen, J., Lipasti, M.: Modern Processor Design: Fundamentals of Superscalar Processors. Waveland Press, Long Grove (2013)
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)
Williams, J.: Algorithm 232: heapsort. Commun. ACM 7(6), 347–348 (1964)
Acknowledgements
The work was supported by the Polish National Science Center upon decision DEC-2015/17/B/ST6/01890.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)