Thrill
0.1
|
PS5BigSortStep Out-of-Place Parallel Sample Sort with Separate Jobs.
Definition at line 1096 of file parallel_sample_sort.hpp.
#include <parallel_sample_sort.hpp>
Public Types | |
typedef Context::key_type | key_type |
typedef StringPtr::StringSet | StringSet |
typedef StringSet::Iterator | StrIterator |
Public Member Functions | |
PS5BigSortStep (Context &ctx, PS5SortStep *pstep, const StringPtr &strptr, size_t depth) | |
virtual | ~PS5BigSortStep () |
void | count (unsigned int p) |
void | count_finished () |
void | distribute (unsigned int p) |
void | distribute_finished () |
void | sample () |
void | substep_all_done () final |
Pure virtual function called by substep when all substeps are done. More... | |
Public Member Functions inherited from PS5SortStep | |
void | substep_notify_done () |
Notify superstep that the currently substep is done. More... | |
Public Attributes | |
simple_vector< simple_vector< size_t > > | bkt_ |
individual bucket array of threads, keep bkt[0] for DistributeJob More... | |
simple_vector< simple_vector< uint16_t > > | bktcache_ |
bucket ids cache, created by classifier and later counted More... | |
Context::Classify | classifier_ |
classifier instance and variables (contains splitter tree More... | |
Context & | ctx_ |
context More... | |
size_t | depth_ |
size_t | parts_ |
number of parts into which the strings were split More... | |
size_t | psize_ |
size of all parts except the last More... | |
PS5SortStep * | pstep_ |
parent sort step for notification More... | |
std::atomic< size_t > | pwork_ |
number of threads still working More... | |
unsigned char | splitter_lcp_ [num_splitters_+1] |
LCPs of splitters, needed for recursive calls. More... | |
StringPtr | strptr_ |
string pointers, size, and current sorting depth More... | |
Static Public Attributes | |
static const size_t | bktnum_ = 2 * num_splitters_ + 1 |
static const size_t | num_splitters_ = Context::Classify::num_splitters |
static const size_t | treebits_ = Context::Classify::treebits |
Additional Inherited Members | |
Protected Member Functions inherited from PS5SortStep | |
PS5SortStep () | |
virtual | ~PS5SortStep () |
void | substep_add () |
Register new substep. More... | |
typedef Context::key_type key_type |
Definition at line 1101 of file parallel_sample_sort.hpp.
typedef StringPtr::StringSet StringSet |
Definition at line 1099 of file parallel_sample_sort.hpp.
typedef StringSet::Iterator StrIterator |
Definition at line 1100 of file parallel_sample_sort.hpp.
|
inline |
Definition at line 1137 of file parallel_sample_sort.hpp.
References SimpleVector< ValueType, Mode >::resize(), StringPtr< StringSet_ >::size(), and TLX_LOGC.
|
inlinevirtual |
Definition at line 1160 of file parallel_sample_sort.hpp.
|
inline |
Definition at line 1196 of file parallel_sample_sort.hpp.
References StringPtr< StringSet_ >::active(), SimpleVector< ValueType, Mode >::data(), min(), SimpleVector< ValueType, Mode >::resize(), StringPtr< StringSet_ >::size(), and TLX_LOGC.
|
inline |
Definition at line 1221 of file parallel_sample_sort.hpp.
References StringPtr< StringSet_ >::size(), and TLX_LOGC.
|
inline |
Definition at line 1248 of file parallel_sample_sort.hpp.
References StringPtr< StringSet_ >::active(), SimpleVector< ValueType, Mode >::data(), SimpleVector< ValueType, Mode >::destroy(), min(), StringPtr< StringSet_ >::size(), and TLX_LOGC.
|
inline |
Definition at line 1277 of file parallel_sample_sort.hpp.
References SimpleVector< ValueType, Mode >::data(), SimpleVector< ValueType, Mode >::destroy(), StringPtr< StringSet_ >::fill_lcp(), tlx::sort_strings_detail::lcpKeyDepth(), StringPtr< StringSet_ >::size(), TLX_LOGC, and StringPtr< StringSet_ >::with_lcp.
|
inline |
Definition at line 1165 of file parallel_sample_sort.hpp.
References StringPtr< StringSet_ >::active(), SimpleVector< ValueType, Mode >::begin(), SimpleVector< ValueType, Mode >::data(), SimpleVector< ValueType, Mode >::end(), and TLX_LOGC.
|
inlinefinalvirtual |
Pure virtual function called by substep when all substeps are done.
Implements PS5SortStep.
Definition at line 1373 of file parallel_sample_sort.hpp.
References SimpleVector< ValueType, Mode >::data(), SimpleVector< ValueType, Mode >::destroy(), PS5SortStep::substep_notify_done(), TLX_LOGC, and StringPtr< StringSet_ >::with_lcp.
simple_vector<simple_vector<size_t> > bkt_ |
individual bucket array of threads, keep bkt[0] for DistributeJob
Definition at line 1130 of file parallel_sample_sort.hpp.
simple_vector<simple_vector<uint16_t> > bktcache_ |
bucket ids cache, created by classifier and later counted
Definition at line 1132 of file parallel_sample_sort.hpp.
|
static |
Definition at line 1124 of file parallel_sample_sort.hpp.
Context::Classify classifier_ |
classifier instance and variables (contains splitter tree
Definition at line 1120 of file parallel_sample_sort.hpp.
Context& ctx_ |
context
Definition at line 1104 of file parallel_sample_sort.hpp.
size_t depth_ |
Definition at line 1110 of file parallel_sample_sort.hpp.
|
static |
Definition at line 1123 of file parallel_sample_sort.hpp.
size_t parts_ |
number of parts into which the strings were split
Definition at line 1113 of file parallel_sample_sort.hpp.
size_t psize_ |
size of all parts except the last
Definition at line 1115 of file parallel_sample_sort.hpp.
PS5SortStep* pstep_ |
parent sort step for notification
Definition at line 1106 of file parallel_sample_sort.hpp.
std::atomic<size_t> pwork_ |
number of threads still working
Definition at line 1117 of file parallel_sample_sort.hpp.
unsigned char splitter_lcp_[num_splitters_+1] |
LCPs of splitters, needed for recursive calls.
Definition at line 1127 of file parallel_sample_sort.hpp.
StringPtr strptr_ |
string pointers, size, and current sorting depth
Definition at line 1109 of file parallel_sample_sort.hpp.
|
static |
Definition at line 1122 of file parallel_sample_sort.hpp.