Go to file
Steven Ross 0290eb89df Documentation grammar fixes.
Also deleting parallel_old.qbk
2017-08-11 22:07:47 -04:00
benchmark delete namespace parallel 2017-07-21 12:14:14 +02:00
doc Documentation grammar fixes. 2017-08-11 22:07:47 -04:00
example Deleting generated code, adding excerpts to some examples, fixing a couple descriptions, and cleaning up some poor code style. 2015-01-16 13:56:08 -05:00
include/boost/sort delete namespace parallel 2017-07-21 12:14:14 +02:00
meta Adding a library metadata file. 2015-02-07 13:29:20 -05:00
test delete namespace parallel 2017-07-21 12:14:14 +02:00
index.html Fix backup doc index link 2015-03-13 21:45:14 -04:00
Jamfile.v2 Adding the new boost sort library. 2015-01-13 21:56:11 -05:00
README.md License update 2015-01-13 22:30:05 -05:00
tune.pl Fix tune.pl to refer to the b2 in the boost root. 2016-12-30 06:46:47 -05:00

sort

Boost Sort library that includes spreadsort, a hybrid radix sort that is faster than O(n*log(n))

Replace "/" with "" in paths below if you're using Windows. To install, download boost, run bootstrap, and copy this library into /libs/sort.

Run the unit tests from your boost root: ./b2 libs/sort/test

Then go to /libs/sort and run tune.pl: Then from the same directory verify correctness and speed on small data sets: perl tune.pl -small [-windows] (it needs the windows option to build for windows) This tests sorting on many different distributions and data types, making sure the results are identical to std::sort and showing a speed comparison that is a weighted average across multiple data distributions. If you're interested in more accurate speed comparisons, run the same command either without the -small option, or with the -large option instead. This will take substantially longer.

Documentation is available from the index.html in this same directory, including a description of the algorithm, how to use it, and why it's faster.

Finally, if you have an unusual computing system, you may want to use the -tune option to tune.pl, to tune the constants used by the library for your specific system. BEWARE that this will overwrite the default boost/sort/spreadsort/detail/constants.hpp provided by the library. Making a copy first is a good idea. Also note that it doesn't tune MAX_SPLITS, the most important parameter, because that should only be tuned with the -large option and it can overfit to the specific amount of data passed in.

Feel free to contact spreadsort@gmail.com with any questions about this library.

Copyright 2014-2015 Steven Ross Distributed under the Boost Software License, Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt)