skip to main content
article

psort, yet another fast stable sorting software

Published: 27 July 2011 Publication History

Abstract

psort is the fastest sorting software according to the PennySort benchmark, sorting 181GB of data in 2008 and 224GB in 2009 for $0.01 of computer time. This article details its internals, and the careful fitting of its architecture to the structure of modern PC-class platforms, allowing it to outperform state-of-the-art sorting software such as STXXL sort.

References

[1]
Aggarwal, A., Alpern, B., Chandra, A., and Snir, M. 1987. A model for hierarchical memory. In Proceedings of the 19th ACM Symposium on Theory of Computing (STOC'87). ACM, New York, 305--314.
[2]
Aggarwal, A., Chandra, A., and Snir, M. 1987. Hierarchical memory with block transfer. In Proceedings of the 28th IEEE Annual Symposium on Foundations of Computer Science (FOCS'87). IEEE, Los Alamitos, CA, 204--216.
[3]
Ailamaki, A., DeWitt, D. J., Hill, M. D., and Wood, D. A. 1999. DBMSs on a modern processor: where does time go? In Proceedings of the 25th International Conference on Very Large Data Bases (VLDB'99). Springer, Berlin, 266--277.
[4]
Alpern, B., Carter, L., Feig, E., and Selker, T. 1994. The uniform memory hierarchy model of computation. Algorithmica 12, 2/3, 72--109.
[5]
Arpaci-Dusseau, A. C., Arpaci-Dusseau, R. H., Culler, D. E., Hellerstein, J. M., and Patterson, D. A. 1997. High-performance sorting on networks of workstations. In Proceedings of the 1997 ACM SIGMOD International Conference on Management of Data. ACM, New York, 243--254.
[6]
Bertasi, P., Bressan, M., and Peserico, E. 2009. psort, yet another fast stable sorting software. In Proceedings of the 8th International Symposium on Experimental Algorithms (SEA'09). Springer, Berlin, 76--88.
[7]
Bilardi, G., Ekanadham, K., and Pattnaik, P. 2002. Optimal organizations for pipelined hierarchical memories. In Proceedings of the 14th Annual ACM Symposium on Parallel Algorithms (SPAA'02). ACM, New York, 109--116.
[8]
Bitton, D., Brown, M., Catell, R., Ceri, S., Chou, T., DeWitt, D., Gawlick, D., Garcia-Molina, H., Good, B., et al. 1985. A measure of transaction processing power. Datamation 31, 7, 112--118.
[9]
Dementiev, R. and Sanders, P. 2003. Asynchronous parallel disk sorting. In Proceedings of the 15th Annual ACM Symposium on Parallel Algorithms (SPAA'03). ACM, New York, 138--148.
[10]
DeWitt, D. J., Naughton, J. F., and Schneider, D. A. 1991. Parallel sorting on a shared-nothing architecture using probabilistic splitting. In Proceedings of the 1st International Conference on Parallel and Distributed Information Systems (PDIS'91). IEEE, Los Alamitos, CA, 280--291.
[11]
GNUSort. GNU Coreutils, sort. http://www.gnu.org/software/coreutils/.
[12]
Gray, J. 2007. A measure of transaction processing 20 years later. CoRR abs/cs/0701162.
[13]
Gray, J., Coates, J., and Nyberg, C. 1998. Performance/price sort. CoRR cs.DB/9809004.
[14]
Hennessy, J. L. and Patterson, D. A. 1996. Computer Architecture: A Quantitative Approach, 2nd Ed. Kaufmann, San Francisco.
[15]
Knuth, D. E. 1998. The Art of Computer Programming, Volume 3: Sorting and Searching, 2nd Ed. Addison-Wesley.
[16]
Kuszmaul, B. C. 2009. Brief announcement: TeraByte TokuSampleSort sorts 1TB in 197s. In Proceedings of the 21st Annual ACM Symposium on Parallel Algorithms (SPAA'09). ACM, New York, 127--129.
[17]
Mehlhorn, K. and Sanders, P. 2003. Scanning multiple sequences via cache memory. Algorithmica 35, 1, 75--93.
[18]
Nodine, M. H. and Vitter, J. S. 1995. Greed sort: optimal deterministic sorting on parallel disks. J. ACM 42, 4, 919--933.
[19]
Nsort. Ordinal Technology. Nsort User Guide. http://www.ordinal.com/NsortUserGuide.pdf.
[20]
Nyberg, C., Barclay, T., Cvetanovic, Z., Gray, J., and Lomet, D. B. 1995. AlphaSort: a cache-sensitive parallel external sort. Int. J. Very Large Databases (VLDB Journal) 4, 4, 603--627.
[21]
Nyberg, C., Koester, C., and Gray, J. 1997. Nsort: a parallel sorting program for NUMA and SMP machines. Ordinal Technologies white paper, 1997. http://www.ordinal.com/white/whitepaper.htm.
[22]
OzSort. http://www.ozsort.com/.
[23]
QSort. GNU C library, Array Sort Function. http://www.gnu.org/s/libc/manual/html_node/Array-Sort-Function.html.
[24]
Rahman, N., Cole, R., and Raman, R. 2001. Optimised predecessor data structures for internal memory. In Proceedings of the 5th International Workshop on Algorithm Engineering (WAE'01). Springer, Berlin, 67--78.
[25]
Postman's Sort. http://www.rrsd.com/software_development/postmans_sort/.
[26]
Sort Benchmark. Home page. http://sortbenchmark.org/.
[27]
STLSort. GNU C++ library, ěrb+std+ namespace. http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/namespacestd.html.
[28]
Valiant, L. G. 1990. A bridging model for parallel computation. Commun. ACM 33, 103--111.
[29]
Yang, L., Huang, H., Wan, Z., and Song, T. 2003. SheenkSort: 2003 Performance/Price Sort and PennySort. http://sortbenchmark.org/SheenkSort.pdf.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Journal of Experimental Algorithmics
ACM Journal of Experimental Algorithmics  Volume 16, Issue
2011
411 pages
ISSN:1084-6654
EISSN:1084-6654
DOI:10.1145/1963190
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 July 2011
Published in JEA Volume 16

Author Tags

  1. C
  2. Datamation
  3. I/O
  4. PennySort
  5. RAID
  6. Sort
  7. algorithm engineering
  8. database
  9. disk
  10. external
  11. memory hierarchy
  12. merge
  13. stable

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media