Implementation of PARADIS - fast parallel radix sort algorithm. Paper URL http://www.vldb.org/pvldb/vol8/p1518-cho.pdf
PARADIS:An Efficient Parallel Algorithm for In-place Radix sort (cho et al. VLDB 2015)
number of data <= 2^32, type int number of threads thread::hardware_concurrency()
- CMake
>= 3.50
- C++ Compiler
>= C++17
- OpenMP
mkdir build
cd build
cmake ..
make
You can give the number of threads and number of data by command line arguments.
./paradis <number of threads> <number of data>
Example
./paradis 64 100000000
Example result
creating dataset... finish!
std::sort() is running... finish!
std::sort time 8426.495000[ms]
PARADIS is running... finish!
paradis time 198.198000[ms]
Cho, M., Brand, D., Bordawekar, R., Finkler, U., Kulandaisamy, V., & Puri, R. (2015). PARADIS: an efficient parallel algorithm for in-place radix sort. Proceedings of the VLDB Endowment, 8(12), 1518–1529. https://doi.org/10.14778/2824032.2824050