STXXL
1.4-dev
|
Run-time settings for the MCSTL.
must_be_int | This template parameter exists only to avoid having an object file belonging to the library. It should always be set to int, to ensure deterministic behavior. |
Definition at line 72 of file settings.h.
Public Types | |
enum | MultiwayMergeAlgorithm { BUBBLE, LOSER_TREE, LOSER_TREE_COMBINED, LOSER_TREE_SENTINEL, MWM_ALGORITHM_LAST } |
enum | SortAlgorithm { MWMS, QS, QS_BALANCED } |
enum | Splitting { SAMPLING, EXACT } |
Static Public Attributes | |
static unsigned int | cache_line_size = 64 |
static volatile bool | force_parallel = false |
static volatile bool | force_sequential = false |
static volatile unsigned long long | L1_cache_size = 16 << 10 |
static volatile unsigned long long | L2_cache_size = 256 << 10 |
static volatile unsigned int | merge_oversampling = 10 |
static volatile MultiwayMergeAlgorithm | multiway_merge_algorithm = Settings<must_be_int>::LOSER_TREE |
static volatile int | multiway_merge_minimal_k = 2 |
static volatile sequence_index_t | multiway_merge_minimal_n = 1000 |
static volatile unsigned int | multiway_merge_oversampling = 10 |
static volatile Splitting | multiway_merge_splitting = Settings<must_be_int>::EXACT |
static NumberOfThreads | num_threads |
static volatile SortAlgorithm | sort_algorithm = Settings<must_be_int>::MWMS |
static volatile sequence_index_t | sort_minimal_n = 1000 |
static volatile unsigned int | sort_mwms_oversampling = 10 |
static volatile Splitting | sort_splitting = Settings<must_be_int>::EXACT |
static volatile unsigned int | TLB_size = 128 |
enum stxxl::parallel::Settings::MultiwayMergeAlgorithm |
Different merging algorithms: bubblesort-alike, loser-tree variants, enum sentinel
Enumerator | |
---|---|
BUBBLE | |
LOSER_TREE | |
LOSER_TREE_COMBINED | |
LOSER_TREE_SENTINEL | |
MWM_ALGORITHM_LAST |
Definition at line 78 of file settings.h.
enum stxxl::parallel::Settings::SortAlgorithm |
Different parallel sorting algorithms to choose from: multi-way mergesort, quicksort, load-balanced quicksort.
Enumerator | |
---|---|
MWMS | |
QS | |
QS_BALANCED |
Definition at line 76 of file settings.h.
enum stxxl::parallel::Settings::Splitting |
Different splitting strategies for sorting/merging: by sampling, exact
Enumerator | |
---|---|
SAMPLING | |
EXACT |
Definition at line 80 of file settings.h.
|
static |
Overestimation of cache line size. Used to avoid false sharing, i. e. elements of different threads are at least this amount apart.
Definition at line 133 of file settings.h.
|
static |
Force all algorithms to be executed in parallel. This setting can be overriden by mcstl::sequential_tag (compile-time), and force_sequential (run-time).
Definition at line 95 of file settings.h.
|
static |
Force all algorithms to be executed sequentially. This setting cannot be overwritten.
Definition at line 89 of file settings.h.
|
static |
Size of the L1 cache in bytes (underestimation).
Definition at line 125 of file settings.h.
|
static |
Size of the L2 cache in bytes (underestimation).
Definition at line 127 of file settings.h.
|
static |
Oversampling factor for parallel std::merge. Such many samples per thread are collected.
Definition at line 110 of file settings.h.
|
static |
Algorithm to use for parallel mcstl::multiway_merge.
Definition at line 113 of file settings.h.
|
static |
Oversampling factor for parallel mcstl::multiway_merge.
Definition at line 121 of file settings.h.
|
static |
Minimal input size for parallel mcstl::multiway_merge.
Definition at line 119 of file settings.h.
|
static |
Oversampling factor for parallel mcstl::multiway_merge.
Definition at line 117 of file settings.h.
|
static |
Splitting strategy to use for parallel mcstl::multiway_merge.
Definition at line 115 of file settings.h.
|
static |
Number of thread to be used. Initialized to omp_get_max_threads(), but can be overridden by the user.
Definition at line 85 of file settings.h.
|
static |
Algorithm to use for sorting.
Definition at line 98 of file settings.h.
|
static |
Minimal input size for parallel sorting.
Definition at line 104 of file settings.h.
|
static |
Oversampling factor for parallel std::sort (MWMS).
Definition at line 106 of file settings.h.
|
static |
Strategy to use for splitting the input when sorting (MWMS).
Definition at line 101 of file settings.h.
|
static |
Size of the Translation Lookaside Buffer (underestimation).
Definition at line 129 of file settings.h.