psort is currently unmaintained. We plan to restart the development in the future. We will still receive your emails in the while, but we may not immediately reply.



 

 

What is psort?

 

psort is a fast C++ sorting library for large datasets (i.e. that mainly fit on external storage such as hard disks). psort has originally been designed for desktop machines, but can now run on a variety of architectures.

 

psort's highly optimized sorting routines, coupled with its efficient I/O handling, fit the hardware organization of modern machines and result in excellent performance. Indeed, according to the PennySort benchmark (http://sortbenchmark.org), psort has been the fastest sorting library for desktop machines from 2008 to 2012.

 

In 2011, an experimental cluster version of psort broke the Datamation benchmark, sorting 100 megabytes of data from disk platter to disk platter in just 70 milliseconds - less than an eyeblink!

 

 

Features

 

psort can be employed both as a library and as a stand-alone executable on a variety of systems. psort is undergoing extensive rewriting; the next version will feature:

 

  • native support for GNU/Linux
  • highly optimized code for lexicographical and numerical sorting
  • highly tunable I/O, memory, and cache management
  • support for multicore CPUs
  • arbitrary record format
  • scheduling strategies for independent disks
  • automated detection of hardware parameters
  • automated code tuning

 

In the near future, psort will also feature:

 

  • support for most OSs
  • support for distributed/cluster sorting
  • support for SMPs
  • sorting on GPUs
  • on-the-fly data manipulation (e.g. for DB record processing)