libstdc++: __gnu_parallel::_Settings Struct Reference

libstdc++

__gnu_parallel::_Settings Struct Reference

`#include <settings.h>`

## Static Public Member Functions
static const _Settings & | get () throw ()
static void | set (_Settings &) throw ()

## Public Attributes
_SequenceIndex | accumulate_minimal_n
unsigned int | adjacent_difference_minimal_n
_AlgorithmStrategy | algorithm_strategy
unsigned int | cache_line_size
_SequenceIndex | count_minimal_n
_SequenceIndex | fill_minimal_n
_FindAlgorithm | find_algorithm
double | find_increasing_factor
_SequenceIndex | find_initial_block_size
_SequenceIndex | find_maximum_block_size
float | find_scale_factor
_SequenceIndex | find_sequential_search_size
_SequenceIndex | for_each_minimal_n
_SequenceIndex | generate_minimal_n
unsigned long long | L1_cache_size
unsigned long long | L2_cache_size
_SequenceIndex | max_element_minimal_n
_SequenceIndex | merge_minimal_n
unsigned int | merge_oversampling
_SplittingAlgorithm | merge_splitting
_SequenceIndex | min_element_minimal_n
_MultiwayMergeAlgorithm | multiway_merge_algorithm
int | multiway_merge_minimal_k
_SequenceIndex | multiway_merge_minimal_n
unsigned int | multiway_merge_oversampling
_SplittingAlgorithm | multiway_merge_splitting
_SequenceIndex | nth_element_minimal_n
_SequenceIndex | partial_sort_minimal_n
_PartialSumAlgorithm | partial_sum_algorithm
float | partial_sum_dilation
unsigned int | partial_sum_minimal_n
double | partition_chunk_share
_SequenceIndex | partition_chunk_size
_SequenceIndex | partition_minimal_n
_SequenceIndex | qsb_steals
unsigned int | random_shuffle_minimal_n
_SequenceIndex | replace_minimal_n
_SequenceIndex | search_minimal_n
_SequenceIndex | set_difference_minimal_n
_SequenceIndex | set_intersection_minimal_n
_SequenceIndex | set_symmetric_difference_minimal_n
_SequenceIndex | set_union_minimal_n
_SortAlgorithm | sort_algorithm
_SequenceIndex | sort_minimal_n
unsigned int | sort_mwms_oversampling
unsigned int | sort_qs_num_samples_preset
_SequenceIndex | sort_qsb_base_case_maximal_n
_SplittingAlgorithm | sort_splitting
unsigned int | TLB_size
_SequenceIndex | transform_minimal_n
_SequenceIndex | unique_copy_minimal_n
_SequenceIndex | workstealing_chunk_size

## Detailed Description

class _Settings Run-time settings for the parallel mode including all tunable parameters.

Definition at line 125 of file settings.h.

## Constructor & Destructor Documentation

## ◆ _Settings()

__gnu_parallel::_Settings::_Settings | ( |  | ) |
| inlineexplicit

Definition at line 289 of file settings.h.

## Member Function Documentation

## ◆ get()

const _Settings & __gnu_parallel::_Settings::get | ( |  | ) |
throw | ( | ) |  |  |
| static

Get the global settings.

Referenced by __gnu_parallel::__find_template(), __gnu_parallel::__find_template(), __gnu_parallel::__find_template(), __gnu_parallel::__for_each_template_random_access_workstealing(), __gnu_parallel::__parallel_nth_element(), __gnu_parallel::__parallel_partial_sum(), __gnu_parallel::__parallel_partial_sum_linear(), __gnu_parallel::__parallel_partition(), __gnu_parallel::__parallel_random_shuffle_drs(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort(), __gnu_parallel::__parallel_sort_qs_conquer(), __gnu_parallel::__qsb_local_sort_with_helping(), __gnu_parallel::__sequential_random_shuffle(), __gnu_parallel::multiway_merge_sampling_splitting(), __gnu_parallel::parallel_multiway_merge(), __gnu_parallel::parallel_sort_mwms(), and __gnu_parallel::parallel_sort_mwms_pu().

## ◆ set()

void __gnu_parallel::_Settings::set | ( | _Settings & |  | ) |
throw | ( | ) |  |  |
| static

Set the global settings.

References accumulate_minimal_n, adjacent_difference_minimal_n, cache_line_size, count_minimal_n, fill_minimal_n, find_increasing_factor, find_initial_block_size, find_maximum_block_size, find_scale_factor, find_sequential_search_size, for_each_minimal_n, generate_minimal_n, L1_cache_size, L2_cache_size, max_element_minimal_n, merge_minimal_n, merge_oversampling, min_element_minimal_n, multiway_merge_minimal_k, multiway_merge_minimal_n, multiway_merge_oversampling, nth_element_minimal_n, partial_sort_minimal_n, partial_sum_dilation, partial_sum_minimal_n, partition_chunk_share, partition_chunk_size, partition_minimal_n, qsb_steals, random_shuffle_minimal_n, replace_minimal_n, search_minimal_n, set(), set_difference_minimal_n, set_intersection_minimal_n, set_symmetric_difference_minimal_n, set_union_minimal_n, sort_minimal_n, sort_mwms_oversampling, sort_qs_num_samples_preset, sort_qsb_base_case_maximal_n, TLB_size, transform_minimal_n, and unique_copy_minimal_n.

Referenced by set().

## Member Data Documentation

## ◆ accumulate_minimal_n

_SequenceIndex __gnu_parallel::_Settings::accumulate_minimal_n

Minimal input size for accumulate.

Definition at line 141 of file settings.h.

Referenced by set().

## ◆ adjacent_difference_minimal_n

unsigned int __gnu_parallel::_Settings::adjacent_difference_minimal_n

Minimal input size for adjacent_difference.

Definition at line 144 of file settings.h.

Referenced by set().

## ◆ algorithm_strategy

_AlgorithmStrategy __gnu_parallel::_Settings::algorithm_strategy

Definition at line 127 of file settings.h.

## ◆ cache_line_size

unsigned int __gnu_parallel::_Settings::cache_line_size

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 267 of file settings.h.

Referenced by __gnu_parallel::__for_each_template_random_access_workstealing(), and set().

## ◆ count_minimal_n

_SequenceIndex __gnu_parallel::_Settings::count_minimal_n

Minimal input size for count and count_if.

Definition at line 147 of file settings.h.

Referenced by set().

## ◆ fill_minimal_n

_SequenceIndex __gnu_parallel::_Settings::fill_minimal_n

Minimal input size for fill.

Definition at line 150 of file settings.h.

Referenced by set().

## ◆ find_algorithm

_FindAlgorithm __gnu_parallel::_Settings::find_algorithm

Definition at line 132 of file settings.h.

## ◆ find_increasing_factor

double __gnu_parallel::_Settings::find_increasing_factor

Block size increase factor for find.

Definition at line 153 of file settings.h.

Referenced by set().

## ◆ find_initial_block_size

_SequenceIndex __gnu_parallel::_Settings::find_initial_block_size

Initial block size for find.

Definition at line 156 of file settings.h.

Referenced by __gnu_parallel::__find_template(), and set().

## ◆ find_maximum_block_size

_SequenceIndex __gnu_parallel::_Settings::find_maximum_block_size

Maximal block size for find.

Definition at line 159 of file settings.h.

Referenced by set().

## ◆ find_scale_factor

float __gnu_parallel::_Settings::find_scale_factor

Block size scale-down factor with respect to current position.

Definition at line 278 of file settings.h.

Referenced by __gnu_parallel::__find_template(), and set().

## ◆ find_sequential_search_size

_SequenceIndex __gnu_parallel::_Settings::find_sequential_search_size

Start with looking for this many elements sequentially, for find.

Definition at line 162 of file settings.h.

Referenced by __gnu_parallel::__find_template(), __gnu_parallel::__find_template(), and set().

## ◆ for_each_minimal_n

_SequenceIndex __gnu_parallel::_Settings::for_each_minimal_n

Minimal input size for for_each.

Definition at line 165 of file settings.h.

Referenced by set().

## ◆ generate_minimal_n

_SequenceIndex __gnu_parallel::_Settings::generate_minimal_n

Minimal input size for generate.

Definition at line 168 of file settings.h.

Referenced by set().

## ◆ L1_cache_size

unsigned long long __gnu_parallel::_Settings::L1_cache_size

size of the L1 cache in bytes (underestimation).

Definition at line 256 of file settings.h.

Referenced by set().

## ◆ L2_cache_size

unsigned long long __gnu_parallel::_Settings::L2_cache_size

size of the L2 cache in bytes (underestimation).

Definition at line 259 of file settings.h.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), __gnu_parallel::__sequential_random_shuffle(), and set().

## ◆ max_element_minimal_n

_SequenceIndex __gnu_parallel::_Settings::max_element_minimal_n

Minimal input size for max_element.

Definition at line 171 of file settings.h.

Referenced by set().

## ◆ merge_minimal_n

_SequenceIndex __gnu_parallel::_Settings::merge_minimal_n

Minimal input size for merge.

Definition at line 174 of file settings.h.

Referenced by set().

## ◆ merge_oversampling

unsigned int __gnu_parallel::_Settings::merge_oversampling

Oversampling factor for merge.

Definition at line 177 of file settings.h.

Referenced by __gnu_parallel::multiway_merge_sampling_splitting(), __gnu_parallel::parallel_multiway_merge(), and set().

## ◆ merge_splitting

_SplittingAlgorithm __gnu_parallel::_Settings::merge_splitting

Definition at line 135 of file settings.h.

## ◆ min_element_minimal_n

_SequenceIndex __gnu_parallel::_Settings::min_element_minimal_n

Minimal input size for min_element.

Definition at line 180 of file settings.h.

Referenced by set().

## ◆ multiway_merge_algorithm

_MultiwayMergeAlgorithm __gnu_parallel::_Settings::multiway_merge_algorithm

Definition at line 131 of file settings.h.

## ◆ multiway_merge_minimal_k

int __gnu_parallel::_Settings::multiway_merge_minimal_k

Oversampling factor for multiway_merge.

Definition at line 186 of file settings.h.

Referenced by set().

## ◆ multiway_merge_minimal_n

_SequenceIndex __gnu_parallel::_Settings::multiway_merge_minimal_n

Minimal input size for multiway_merge.

Definition at line 183 of file settings.h.

Referenced by set().

## ◆ multiway_merge_oversampling

unsigned int __gnu_parallel::_Settings::multiway_merge_oversampling

Oversampling factor for multiway_merge.

Definition at line 189 of file settings.h.

Referenced by set().

## ◆ multiway_merge_splitting

_SplittingAlgorithm __gnu_parallel::_Settings::multiway_merge_splitting

Definition at line 136 of file settings.h.

## ◆ nth_element_minimal_n

_SequenceIndex __gnu_parallel::_Settings::nth_element_minimal_n

Minimal input size for nth_element.

Definition at line 192 of file settings.h.

Referenced by __gnu_parallel::__parallel_nth_element(), and set().

## ◆ partial_sort_minimal_n

_SequenceIndex __gnu_parallel::_Settings::partial_sort_minimal_n

Minimal input size for partial_sort.

Definition at line 205 of file settings.h.

Referenced by set().

## ◆ partial_sum_algorithm

_PartialSumAlgorithm __gnu_parallel::_Settings::partial_sum_algorithm

Definition at line 130 of file settings.h.

## ◆ partial_sum_dilation

float __gnu_parallel::_Settings::partial_sum_dilation

Ratio for partial_sum. Assume "sum and write result" to be this factor slower than just "sum".

Definition at line 209 of file settings.h.

Referenced by __gnu_parallel::__parallel_partial_sum_linear(), and set().

## ◆ partial_sum_minimal_n

unsigned int __gnu_parallel::_Settings::partial_sum_minimal_n

Minimal input size for partial_sum.

Definition at line 212 of file settings.h.

Referenced by set().

## ◆ partition_chunk_share

double __gnu_parallel::_Settings::partition_chunk_share

Chunk size for partition, relative to input size. If > 0.0, this value overrides partition_chunk_size.

Definition at line 199 of file settings.h.

Referenced by __gnu_parallel::__parallel_partition(), and set().

## ◆ partition_chunk_size

_SequenceIndex __gnu_parallel::_Settings::partition_chunk_size

Chunk size for partition.

Definition at line 195 of file settings.h.

Referenced by __gnu_parallel::__parallel_partition(), and set().

## ◆ partition_minimal_n

_SequenceIndex __gnu_parallel::_Settings::partition_minimal_n

Minimal input size for partition.

Definition at line 202 of file settings.h.

Referenced by __gnu_parallel::__parallel_nth_element(), and set().

## ◆ qsb_steals

_SequenceIndex __gnu_parallel::_Settings::qsb_steals

The number of stolen ranges in load-balanced quicksort.

Definition at line 272 of file settings.h.

Referenced by set().

## ◆ random_shuffle_minimal_n

unsigned int __gnu_parallel::_Settings::random_shuffle_minimal_n

Minimal input size for random_shuffle.

Definition at line 215 of file settings.h.

Referenced by set().

## ◆ replace_minimal_n

_SequenceIndex __gnu_parallel::_Settings::replace_minimal_n

Minimal input size for replace and replace_if.

Definition at line 218 of file settings.h.

Referenced by set().

## ◆ search_minimal_n

_SequenceIndex __gnu_parallel::_Settings::search_minimal_n

Minimal input size for search and search_n.

Definition at line 275 of file settings.h.

Referenced by set().

## ◆ set_difference_minimal_n

_SequenceIndex __gnu_parallel::_Settings::set_difference_minimal_n

Minimal input size for set_difference.

Definition at line 221 of file settings.h.

Referenced by set().

## ◆ set_intersection_minimal_n

_SequenceIndex __gnu_parallel::_Settings::set_intersection_minimal_n

Minimal input size for set_intersection.

Definition at line 224 of file settings.h.

Referenced by set().

## ◆ set_symmetric_difference_minimal_n

_SequenceIndex __gnu_parallel::_Settings::set_symmetric_difference_minimal_n

Minimal input size for set_symmetric_difference.

Definition at line 227 of file settings.h.

Referenced by set().

## ◆ set_union_minimal_n

_SequenceIndex __gnu_parallel::_Settings::set_union_minimal_n

Minimal input size for set_union.

Definition at line 230 of file settings.h.

Referenced by set().

## ◆ sort_algorithm

_SortAlgorithm __gnu_parallel::_Settings::sort_algorithm

Definition at line 129 of file settings.h.

## ◆ sort_minimal_n

_SequenceIndex __gnu_parallel::_Settings::sort_minimal_n

Minimal input size for parallel sorting.

Definition at line 233 of file settings.h.

Referenced by set().

## ◆ sort_mwms_oversampling

unsigned int __gnu_parallel::_Settings::sort_mwms_oversampling

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

Definition at line 236 of file settings.h.

Referenced by __gnu_parallel::parallel_sort_mwms(), __gnu_parallel::parallel_sort_mwms_pu(), and set().

## ◆ sort_qs_num_samples_preset

unsigned int __gnu_parallel::_Settings::sort_qs_num_samples_preset

Such many samples to take to find a good pivot (quicksort).

Definition at line 239 of file settings.h.

Referenced by set().

## ◆ sort_qsb_base_case_maximal_n

_SequenceIndex __gnu_parallel::_Settings::sort_qsb_base_case_maximal_n

Maximal subsequence __length to switch to unbalanced __base case. Applies to std::sort with dynamically load-balanced quicksort.

Definition at line 243 of file settings.h.

Referenced by __gnu_parallel::__qsb_local_sort_with_helping(), and set().

## ◆ sort_splitting

_SplittingAlgorithm __gnu_parallel::_Settings::sort_splitting

Definition at line 134 of file settings.h.

## ◆ TLB_size

unsigned int __gnu_parallel::_Settings::TLB_size

size of the Translation Lookaside Buffer (underestimation).

Definition at line 262 of file settings.h.

Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), __gnu_parallel::__sequential_random_shuffle(), and set().

## ◆ transform_minimal_n

_SequenceIndex __gnu_parallel::_Settings::transform_minimal_n

Minimal input size for parallel std::transform.

Definition at line 246 of file settings.h.

Referenced by set().

## ◆ unique_copy_minimal_n

_SequenceIndex __gnu_parallel::_Settings::unique_copy_minimal_n

Minimal input size for unique_copy.

Definition at line 249 of file settings.h.

Referenced by set().

## ◆ workstealing_chunk_size

_SequenceIndex __gnu_parallel::_Settings::workstealing_chunk_size

Definition at line 251 of file settings.h.

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

- settings.h