class _Settings Run-time settings for the parallel mode including all tunable parameters. More...
#include <settings.h>
Public Member Functions | |
_Settings () | |
Static Public Member Functions | |
static _GLIBCXX_CONST const _Settings & | get () throw () |
Get the global settings. More... | |
static void | set (_Settings &) throw () |
Set the global settings. More... | |
Public Attributes | |
_SequenceIndex | accumulate_minimal_n |
Minimal input size for accumulate. More... | |
unsigned int | adjacent_difference_minimal_n |
Minimal input size for adjacent_difference. More... | |
_AlgorithmStrategy | algorithm_strategy |
unsigned int | cache_line_size |
Overestimation of cache line size. More... | |
_SequenceIndex | count_minimal_n |
Minimal input size for count and count_if. More... | |
_SequenceIndex | fill_minimal_n |
Minimal input size for fill. More... | |
_FindAlgorithm | find_algorithm |
double | find_increasing_factor |
Block size increase factor for find. More... | |
_SequenceIndex | find_initial_block_size |
Initial block size for find. More... | |
_SequenceIndex | find_maximum_block_size |
Maximal block size for find. More... | |
float | find_scale_factor |
Block size scale-down factor with respect to current position. More... | |
_SequenceIndex | find_sequential_search_size |
Start with looking for this many elements sequentially, for find. More... | |
_SequenceIndex | for_each_minimal_n |
Minimal input size for for_each. More... | |
_SequenceIndex | generate_minimal_n |
Minimal input size for generate. More... | |
unsigned long long | L1_cache_size |
size of the L1 cache in bytes (underestimation). More... | |
unsigned long long | L2_cache_size |
size of the L2 cache in bytes (underestimation). More... | |
_SequenceIndex | max_element_minimal_n |
Minimal input size for max_element. More... | |
_SequenceIndex | merge_minimal_n |
Minimal input size for merge. More... | |
unsigned int | merge_oversampling |
Oversampling factor for merge. More... | |
_SplittingAlgorithm | merge_splitting |
_SequenceIndex | min_element_minimal_n |
Minimal input size for min_element. More... | |
_MultiwayMergeAlgorithm | multiway_merge_algorithm |
int | multiway_merge_minimal_k |
Oversampling factor for multiway_merge. More... | |
_SequenceIndex | multiway_merge_minimal_n |
Minimal input size for multiway_merge. More... | |
unsigned int | multiway_merge_oversampling |
Oversampling factor for multiway_merge. More... | |
_SplittingAlgorithm | multiway_merge_splitting |
_SequenceIndex | nth_element_minimal_n |
Minimal input size for nth_element. More... | |
_SequenceIndex | partial_sort_minimal_n |
Minimal input size for partial_sort. More... | |
_PartialSumAlgorithm | partial_sum_algorithm |
float | partial_sum_dilation |
Ratio for partial_sum. More... | |
unsigned int | partial_sum_minimal_n |
Minimal input size for partial_sum. More... | |
double | partition_chunk_share |
Chunk size for partition, relative to input size. More... | |
_SequenceIndex | partition_chunk_size |
Chunk size for partition. More... | |
_SequenceIndex | partition_minimal_n |
Minimal input size for partition. More... | |
_SequenceIndex | qsb_steals |
The number of stolen ranges in load-balanced quicksort. More... | |
unsigned int | random_shuffle_minimal_n |
Minimal input size for random_shuffle. More... | |
_SequenceIndex | replace_minimal_n |
Minimal input size for replace and replace_if. More... | |
_SequenceIndex | search_minimal_n |
Minimal input size for search and search_n. More... | |
_SequenceIndex | set_difference_minimal_n |
Minimal input size for set_difference. More... | |
_SequenceIndex | set_intersection_minimal_n |
Minimal input size for set_intersection. More... | |
_SequenceIndex | set_symmetric_difference_minimal_n |
Minimal input size for set_symmetric_difference. More... | |
_SequenceIndex | set_union_minimal_n |
Minimal input size for set_union. More... | |
_SortAlgorithm | sort_algorithm |
_SequenceIndex | sort_minimal_n |
Minimal input size for parallel sorting. More... | |
unsigned int | sort_mwms_oversampling |
Oversampling factor for parallel std::sort (MWMS). More... | |
unsigned int | sort_qs_num_samples_preset |
Such many samples to take to find a good pivot (quicksort). More... | |
_SequenceIndex | sort_qsb_base_case_maximal_n |
Maximal subsequence __length to switch to unbalanced __base case. More... | |
_SplittingAlgorithm | sort_splitting |
unsigned int | TLB_size |
size of the Translation Lookaside Buffer (underestimation). More... | |
_SequenceIndex | transform_minimal_n |
Minimal input size for parallel std::transform. More... | |
_SequenceIndex | unique_copy_minimal_n |
Minimal input size for unique_copy. More... | |
_SequenceIndex | workstealing_chunk_size |
class _Settings Run-time settings for the parallel mode including all tunable parameters.
|
inlineexplicit |
|
static |
Get the global settings.
Referenced by __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_qs_conquer(), __gnu_parallel::__qsb_local_sort_with_helping(), __gnu_parallel::__sequential_random_shuffle(), _GLIBCXX_VISIBILITY(), __gnu_parallel::multiway_merge(), __gnu_parallel::multiway_merge_sampling_splitting(), __gnu_parallel::multiway_merge_sentinels(), __gnu_parallel::parallel_multiway_merge(), __gnu_parallel::parallel_sort_mwms(), __gnu_parallel::parallel_sort_mwms_pu(), __gnu_parallel::stable_multiway_merge(), and __gnu_parallel::stable_multiway_merge_sentinels().
|
static |
Set the global settings.
_SequenceIndex __gnu_parallel::_Settings::accumulate_minimal_n |
Minimal input size for accumulate.
unsigned int __gnu_parallel::_Settings::adjacent_difference_minimal_n |
Minimal input size for adjacent_difference.
_AlgorithmStrategy __gnu_parallel::_Settings::algorithm_strategy |
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.
Referenced by __gnu_parallel::__for_each_template_random_access_workstealing().
_SequenceIndex __gnu_parallel::_Settings::count_minimal_n |
Minimal input size for count and count_if.
_SequenceIndex __gnu_parallel::_Settings::fill_minimal_n |
Minimal input size for fill.
_FindAlgorithm __gnu_parallel::_Settings::find_algorithm |
double __gnu_parallel::_Settings::find_increasing_factor |
Block size increase factor for find.
_SequenceIndex __gnu_parallel::_Settings::find_initial_block_size |
Initial block size for find.
_SequenceIndex __gnu_parallel::_Settings::find_maximum_block_size |
Maximal block size for find.
float __gnu_parallel::_Settings::find_scale_factor |
Block size scale-down factor with respect to current position.
_SequenceIndex __gnu_parallel::_Settings::find_sequential_search_size |
Start with looking for this many elements sequentially, for find.
_SequenceIndex __gnu_parallel::_Settings::for_each_minimal_n |
Minimal input size for for_each.
_SequenceIndex __gnu_parallel::_Settings::generate_minimal_n |
Minimal input size for generate.
unsigned long long __gnu_parallel::_Settings::L1_cache_size |
size of the L1 cache in bytes (underestimation).
unsigned long long __gnu_parallel::_Settings::L2_cache_size |
size of the L2 cache in bytes (underestimation).
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__sequential_random_shuffle().
_SequenceIndex __gnu_parallel::_Settings::max_element_minimal_n |
Minimal input size for max_element.
_SequenceIndex __gnu_parallel::_Settings::merge_minimal_n |
Minimal input size for merge.
unsigned int __gnu_parallel::_Settings::merge_oversampling |
Oversampling factor for merge.
Referenced by __gnu_parallel::multiway_merge_sampling_splitting(), and __gnu_parallel::parallel_multiway_merge().
_SplittingAlgorithm __gnu_parallel::_Settings::merge_splitting |
_SequenceIndex __gnu_parallel::_Settings::min_element_minimal_n |
Minimal input size for min_element.
_MultiwayMergeAlgorithm __gnu_parallel::_Settings::multiway_merge_algorithm |
int __gnu_parallel::_Settings::multiway_merge_minimal_k |
Oversampling factor for multiway_merge.
_SequenceIndex __gnu_parallel::_Settings::multiway_merge_minimal_n |
Minimal input size for multiway_merge.
unsigned int __gnu_parallel::_Settings::multiway_merge_oversampling |
Oversampling factor for multiway_merge.
_SplittingAlgorithm __gnu_parallel::_Settings::multiway_merge_splitting |
_SequenceIndex __gnu_parallel::_Settings::nth_element_minimal_n |
Minimal input size for nth_element.
Referenced by __gnu_parallel::__parallel_nth_element().
_SequenceIndex __gnu_parallel::_Settings::partial_sort_minimal_n |
Minimal input size for partial_sort.
_PartialSumAlgorithm __gnu_parallel::_Settings::partial_sum_algorithm |
float __gnu_parallel::_Settings::partial_sum_dilation |
Ratio for partial_sum.
Assume "sum and write result" to be this factor slower than just "sum".
Referenced by __gnu_parallel::__parallel_partial_sum_linear().
unsigned int __gnu_parallel::_Settings::partial_sum_minimal_n |
Minimal input size for partial_sum.
double __gnu_parallel::_Settings::partition_chunk_share |
Chunk size for partition, relative to input size.
If > 0.0, this value overrides partition_chunk_size.
Referenced by __gnu_parallel::__parallel_partition().
_SequenceIndex __gnu_parallel::_Settings::partition_chunk_size |
Chunk size for partition.
Referenced by __gnu_parallel::__parallel_partition().
_SequenceIndex __gnu_parallel::_Settings::partition_minimal_n |
Minimal input size for partition.
Referenced by __gnu_parallel::__parallel_nth_element().
_SequenceIndex __gnu_parallel::_Settings::qsb_steals |
The number of stolen ranges in load-balanced quicksort.
unsigned int __gnu_parallel::_Settings::random_shuffle_minimal_n |
Minimal input size for random_shuffle.
_SequenceIndex __gnu_parallel::_Settings::replace_minimal_n |
Minimal input size for replace and replace_if.
_SequenceIndex __gnu_parallel::_Settings::search_minimal_n |
Minimal input size for search and search_n.
_SequenceIndex __gnu_parallel::_Settings::set_difference_minimal_n |
Minimal input size for set_difference.
_SequenceIndex __gnu_parallel::_Settings::set_intersection_minimal_n |
Minimal input size for set_intersection.
_SequenceIndex __gnu_parallel::_Settings::set_symmetric_difference_minimal_n |
Minimal input size for set_symmetric_difference.
_SequenceIndex __gnu_parallel::_Settings::set_union_minimal_n |
Minimal input size for set_union.
_SortAlgorithm __gnu_parallel::_Settings::sort_algorithm |
Referenced by __gnu_parallel::__parallel_sort().
_SequenceIndex __gnu_parallel::_Settings::sort_minimal_n |
Minimal input size for parallel sorting.
unsigned int __gnu_parallel::_Settings::sort_mwms_oversampling |
Oversampling factor for parallel std::sort (MWMS).
Referenced by __gnu_parallel::parallel_sort_mwms(), and __gnu_parallel::parallel_sort_mwms_pu().
unsigned int __gnu_parallel::_Settings::sort_qs_num_samples_preset |
Such many samples to take to find a good pivot (quicksort).
_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.
Referenced by __gnu_parallel::__qsb_local_sort_with_helping().
_SplittingAlgorithm __gnu_parallel::_Settings::sort_splitting |
unsigned int __gnu_parallel::_Settings::TLB_size |
size of the Translation Lookaside Buffer (underestimation).
Referenced by __gnu_parallel::__parallel_random_shuffle_drs(), and __gnu_parallel::__sequential_random_shuffle().
_SequenceIndex __gnu_parallel::_Settings::transform_minimal_n |
Minimal input size for parallel std::transform.
_SequenceIndex __gnu_parallel::_Settings::unique_copy_minimal_n |
Minimal input size for unique_copy.
_SequenceIndex __gnu_parallel::_Settings::workstealing_chunk_size |