A simple parallel sort implementation with progress tracking. More...
#include <tpie/parallel_sort.h>
Classes | |
class | qsort_job |
Represents quick sort work at a given level. More... | |
Public Member Functions | |
parallel_sort_impl (typename P::base *p) | |
void | operator() (iterator_type a, iterator_type b, comp_type comp=std::less< value_type >()) |
Perform a parallel sort of the items in the interval [a,b). More... | |
A simple parallel sort implementation with progress tracking.
The partition step is sequential, as a parallel partition only speeds up the top layer, which does not warrant the hassle of implementation. Uses the TPIE job manager to transparently distribute work across the machine cores. Uses the pseudo median of nine as pivot.
Definition at line 52 of file parallel_sort.h.
|
inline |
Perform a parallel sort of the items in the interval [a,b).
Waits until all workers are done. The calling thread handles progress tracking, so a thread-safe progress tracker is not required.
Definition at line 248 of file parallel_sort.h.
References tpie::job::enqueue(), tpie::job::join(), and tpie::sort().