83 #ifndef _GLIBCXX_PARALLEL_SETTINGS_H
84 #define _GLIBCXX_PARALLEL_SETTINGS_H 1
95 #define _GLIBCXX_PARALLEL_CONDITION(__c) \
96 (__gnu_parallel::_Settings::get().algorithm_strategy \
97 != __gnu_parallel::force_sequential \
98 && ((__gnu_parallel::__get_max_threads() > 1 && (__c)) \
99 || __gnu_parallel::_Settings::get().algorithm_strategy \
100 == __gnu_parallel::force_parallel))
119 namespace __gnu_parallel
unsigned int cache_line_size
Definition: settings.h:265
_PartialSumAlgorithm
Partial sum algorithms: recursive, linear.
Definition: types.h:91
_SplittingAlgorithm sort_splitting
Definition: settings.h:132
_SequenceIndex search_minimal_n
Minimal input size for search and search_n.
Definition: settings.h:273
Basic types and typedefs. This file is a GNU parallel extension to the Standard C++ Library...
Definition: settings.h:123
_SequenceIndex find_sequential_search_size
Start with looking for this many elements sequentially, for find.
Definition: settings.h:160
_SequenceIndex partition_chunk_size
Chunk size for partition.
Definition: settings.h:193
_SequenceIndex count_minimal_n
Minimal input size for count and count_if.
Definition: settings.h:145
_SequenceIndex set_difference_minimal_n
Minimal input size for set_difference.
Definition: settings.h:219
_SequenceIndex set_symmetric_difference_minimal_n
Minimal input size for set_symmetric_difference.
Definition: settings.h:225
_SequenceIndex multiway_merge_minimal_n
Minimal input size for multiway_merge.
Definition: settings.h:181
_SequenceIndex find_initial_block_size
Initial block size for find.
Definition: settings.h:154
static void set(_Settings &)
Set the global settings.
_SequenceIndex workstealing_chunk_size
Definition: settings.h:249
_AlgorithmStrategy algorithm_strategy
Definition: settings.h:125
_MultiwayMergeAlgorithm
Merging algorithms:
Definition: types.h:85
unsigned int TLB_size
size of the Translation Lookaside Buffer (underestimation).
Definition: settings.h:260
_SequenceIndex accumulate_minimal_n
Minimal input size for accumulate.
Definition: settings.h:139
_SequenceIndex fill_minimal_n
Minimal input size for fill.
Definition: settings.h:148
_SequenceIndex merge_minimal_n
Minimal input size for merge.
Definition: settings.h:172
_SplittingAlgorithm multiway_merge_splitting
Definition: settings.h:134
unsigned int random_shuffle_minimal_n
Minimal input size for random_shuffle.
Definition: settings.h:213
unsigned long long L1_cache_size
size of the L1 cache in bytes (underestimation).
Definition: settings.h:254
_SequenceIndex sort_qsb_base_case_maximal_n
Definition: settings.h:241
_SequenceIndex transform_minimal_n
Minimal input size for parallel std::transform.
Definition: settings.h:244
_SplittingAlgorithm
Sorting/merging algorithms: sampling, __exact.
Definition: types.h:98
double partition_chunk_share
Definition: settings.h:197
_SequenceIndex replace_minimal_n
Minimal input size for replace and replace_if.
Definition: settings.h:216
_FindAlgorithm find_algorithm
Definition: settings.h:130
unsigned long long L2_cache_size
size of the L2 cache in bytes (underestimation).
Definition: settings.h:257
unsigned int multiway_merge_oversampling
Oversampling factor for multiway_merge.
Definition: settings.h:187
_MultiwayMergeAlgorithm multiway_merge_algorithm
Definition: settings.h:129
_FindAlgorithm
Find algorithms:
Definition: types.h:106
_SequenceIndex set_union_minimal_n
Minimal input size for set_union.
Definition: settings.h:228
_SequenceIndex nth_element_minimal_n
Minimal input size for nth_element.
Definition: settings.h:190
unsigned int adjacent_difference_minimal_n
Minimal input size for adjacent_difference.
Definition: settings.h:142
_SequenceIndex sort_minimal_n
Minimal input size for parallel sorting.
Definition: settings.h:231
_PartialSumAlgorithm partial_sum_algorithm
Definition: settings.h:128
_SequenceIndex for_each_minimal_n
Minimal input size for for_each.
Definition: settings.h:163
unsigned int merge_oversampling
Oversampling factor for merge.
Definition: settings.h:175
unsigned int sort_qs_num_samples_preset
Such many samples to take to find a good pivot (quicksort).
Definition: settings.h:237
_SortAlgorithm
Sorting algorithms:
Definition: types.h:76
unsigned int sort_mwms_oversampling
Oversampling factor for parallel std::sort (MWMS).
Definition: settings.h:234
_SequenceIndex qsb_steals
The number of stolen ranges in load-balanced quicksort.
Definition: settings.h:270
_SequenceIndex min_element_minimal_n
Minimal input size for min_element.
Definition: settings.h:178
_SequenceIndex generate_minimal_n
Minimal input size for generate.
Definition: settings.h:166
uint64_t _SequenceIndex
Unsigned integer to index __elements. The total number of elements for each algorithm must fit into t...
Definition: types.h:117
_SequenceIndex partition_minimal_n
Minimal input size for partition.
Definition: settings.h:200
_SequenceIndex unique_copy_minimal_n
Minimal input size for unique_copy.
Definition: settings.h:247
float find_scale_factor
Block size scale-down factor with respect to current position.
Definition: settings.h:276
float partial_sum_dilation
Definition: settings.h:207
unsigned int partial_sum_minimal_n
Minimal input size for partial_sum.
Definition: settings.h:210
double find_increasing_factor
Block size increase factor for find.
Definition: settings.h:151
_SequenceIndex find_maximum_block_size
Maximal block size for find.
Definition: settings.h:157
_SequenceIndex partial_sort_minimal_n
Minimal input size for partial_sort.
Definition: settings.h:203
_SequenceIndex set_intersection_minimal_n
Minimal input size for set_intersection.
Definition: settings.h:222
_AlgorithmStrategy
Strategies for run-time algorithm selection:
Definition: types.h:67
int multiway_merge_minimal_k
Oversampling factor for multiway_merge.
Definition: settings.h:184
_SortAlgorithm sort_algorithm
Definition: settings.h:127
_SequenceIndex max_element_minimal_n
Minimal input size for max_element.
Definition: settings.h:169
_SplittingAlgorithm merge_splitting
Definition: settings.h:133