STXXL  1.4-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stxxl::parallel::Settings< must_be_int > Struct Template Reference

Detailed Description

template<typename must_be_int = int>
struct stxxl::parallel::Settings< must_be_int >

Run-time settings for the MCSTL.

Parameters
must_be_intThis 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.

+ Collaboration diagram for stxxl::parallel::Settings< must_be_int >:

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
 

Member Enumeration Documentation

template<typename must_be_int = int>
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.

template<typename must_be_int = int>
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.

template<typename must_be_int = int>
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.

Member Data Documentation

template<typename must_be_int = int>
unsigned int stxxl::parallel::Settings< must_be_int >::cache_line_size = 64
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.

template<typename must_be_int = int>
volatile bool stxxl::parallel::Settings< must_be_int >::force_parallel = false
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.

template<typename must_be_int = int>
volatile bool stxxl::parallel::Settings< must_be_int >::force_sequential = false
static

Force all algorithms to be executed sequentially. This setting cannot be overwritten.

Definition at line 89 of file settings.h.

template<typename must_be_int = int>
volatile unsigned long long stxxl::parallel::Settings< must_be_int >::L1_cache_size = 16 << 10
static

Size of the L1 cache in bytes (underestimation).

Definition at line 125 of file settings.h.

template<typename must_be_int = int>
volatile unsigned long long stxxl::parallel::Settings< must_be_int >::L2_cache_size = 256 << 10
static

Size of the L2 cache in bytes (underestimation).

Definition at line 127 of file settings.h.

template<typename must_be_int = int>
volatile unsigned int stxxl::parallel::Settings< must_be_int >::merge_oversampling = 10
static

Oversampling factor for parallel std::merge. Such many samples per thread are collected.

Definition at line 110 of file settings.h.

template<typename must_be_int = int>
volatile Settings< must_be_int >::MultiwayMergeAlgorithm stxxl::parallel::Settings< must_be_int >::multiway_merge_algorithm = Settings<must_be_int>::LOSER_TREE
static

Algorithm to use for parallel mcstl::multiway_merge.

Definition at line 113 of file settings.h.

template<typename must_be_int = int>
volatile int stxxl::parallel::Settings< must_be_int >::multiway_merge_minimal_k = 2
static

Oversampling factor for parallel mcstl::multiway_merge.

Definition at line 121 of file settings.h.

template<typename must_be_int = int>
volatile sequence_index_t stxxl::parallel::Settings< must_be_int >::multiway_merge_minimal_n = 1000
static

Minimal input size for parallel mcstl::multiway_merge.

Definition at line 119 of file settings.h.

template<typename must_be_int = int>
volatile unsigned int stxxl::parallel::Settings< must_be_int >::multiway_merge_oversampling = 10
static

Oversampling factor for parallel mcstl::multiway_merge.

Definition at line 117 of file settings.h.

template<typename must_be_int = int>
volatile Settings< must_be_int >::Splitting stxxl::parallel::Settings< must_be_int >::multiway_merge_splitting = Settings<must_be_int>::EXACT
static

Splitting strategy to use for parallel mcstl::multiway_merge.

Definition at line 115 of file settings.h.

template<typename must_be_int = int>
NumberOfThreads stxxl::parallel::Settings< must_be_int >::num_threads
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.

template<typename must_be_int = int>
volatile Settings< must_be_int >::SortAlgorithm stxxl::parallel::Settings< must_be_int >::sort_algorithm = Settings<must_be_int>::MWMS
static

Algorithm to use for sorting.

Definition at line 98 of file settings.h.

template<typename must_be_int = int>
volatile sequence_index_t stxxl::parallel::Settings< must_be_int >::sort_minimal_n = 1000
static

Minimal input size for parallel sorting.

Definition at line 104 of file settings.h.

template<typename must_be_int = int>
volatile unsigned int stxxl::parallel::Settings< must_be_int >::sort_mwms_oversampling = 10
static

Oversampling factor for parallel std::sort (MWMS).

Definition at line 106 of file settings.h.

template<typename must_be_int = int>
volatile Settings< must_be_int >::Splitting stxxl::parallel::Settings< must_be_int >::sort_splitting = Settings<must_be_int>::EXACT
static

Strategy to use for splitting the input when sorting (MWMS).

Definition at line 101 of file settings.h.

template<typename must_be_int = int>
volatile unsigned int stxxl::parallel::Settings< must_be_int >::TLB_size = 128
static

Size of the Translation Lookaside Buffer (underestimation).

Definition at line 129 of file settings.h.


The documentation for this struct was generated from the following file: