---
name: "__gnu_parallel::_Settings"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/__gnu_parallel::_Settings/3cxx"
---

# \_\_gnu\_parallel::\_Settings(3cxx)

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

## NAME

\_\_gnu\_parallel::\_Settings - class \_Settings Run-time settings for the parallel mode including all tunable parameters.

## SYNOPSIS

`#include <settings.h>`

### Static Public Member Functions

static const **\_Settings** & **get** ()  throw ()\
 Get the global settings.  static void **set** (**\_Settings** &)  throw ()\
 Set the global settings.

### Public Attributes

**\_SequenceIndex** **accumulate\_minimal\_n**\
 Minimal input size for accumulate.  unsigned int **adjacent\_difference\_minimal\_n**\
 Minimal input size for adjacent\_difference.  **\_AlgorithmStrategy** **algorithm\_strategy**\
 unsigned int **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.  **\_SequenceIndex** **count\_minimal\_n**\
 Minimal input size for count and count\_if.  **\_SequenceIndex** **fill\_minimal\_n**\
 Minimal input size for fill.  **\_FindAlgorithm** **find\_algorithm**\
 double **find\_increasing\_factor**\
 Block size increase factor for find.  **\_SequenceIndex** **find\_initial\_block\_size**\
 Initial block size for find.  **\_SequenceIndex** **find\_maximum\_block\_size**\
 Maximal block size for find.  float **find\_scale\_factor**\
 Block size scale-down factor with respect to current position.  **\_SequenceIndex** **find\_sequential\_search\_size**\
 Start with looking for this many elements sequentially, for find.  **\_SequenceIndex** **for\_each\_minimal\_n**\
 Minimal input size for for\_each.  **\_SequenceIndex** **generate\_minimal\_n**\
 Minimal input size for generate.  unsigned long long **L1\_cache\_size**\
 size of the L1 cache in bytes (underestimation).  unsigned long long **L2\_cache\_size**\
 size of the L2 cache in bytes (underestimation).  **\_SequenceIndex** **max\_element\_minimal\_n**\
 Minimal input size for max\_element.  **\_SequenceIndex** **merge\_minimal\_n**\
 Minimal input size for merge.  unsigned int **merge\_oversampling**\
 Oversampling factor for merge.  **\_SplittingAlgorithm** **merge\_splitting**\
 **\_SequenceIndex** **min\_element\_minimal\_n**\
 Minimal input size for min\_element.  **\_MultiwayMergeAlgorithm** **multiway\_merge\_algorithm**\
 int **multiway\_merge\_minimal\_k**\
 Oversampling factor for multiway\_merge.  **\_SequenceIndex** **multiway\_merge\_minimal\_n**\
 Minimal input size for multiway\_merge.  unsigned int **multiway\_merge\_oversampling**\
 Oversampling factor for multiway\_merge.  **\_SplittingAlgorithm** **multiway\_merge\_splitting**\
 **\_SequenceIndex** **nth\_element\_minimal\_n**\
 Minimal input size for nth\_element.  **\_SequenceIndex** **partial\_sort\_minimal\_n**\
 Minimal input size for partial\_sort.  **\_PartialSumAlgorithm** **partial\_sum\_algorithm**\
 float **partial\_sum\_dilation**\
 Ratio for partial\_sum. Assume 'sum and write result' to be this factor slower than just 'sum'.  unsigned int **partial\_sum\_minimal\_n**\
 Minimal input size for partial\_sum.  double **partition\_chunk\_share**\
 Chunk size for partition, relative to input size. If \> 0.0, this value overrides partition\_chunk\_size.  **\_SequenceIndex** **partition\_chunk\_size**\
 Chunk size for partition.  **\_SequenceIndex** **partition\_minimal\_n**\
 Minimal input size for partition.  **\_SequenceIndex** **qsb\_steals**\
 The number of stolen ranges in load-balanced quicksort.  unsigned int **random\_shuffle\_minimal\_n**\
 Minimal input size for random\_shuffle.  **\_SequenceIndex** **replace\_minimal\_n**\
 Minimal input size for replace and replace\_if.  **\_SequenceIndex** **search\_minimal\_n**\
 Minimal input size for search and search\_n.  **\_SequenceIndex** **set\_difference\_minimal\_n**\
 Minimal input size for set\_difference.  **\_SequenceIndex** **set\_intersection\_minimal\_n**\
 Minimal input size for set\_intersection.  **\_SequenceIndex** **set\_symmetric\_difference\_minimal\_n**\
 Minimal input size for set\_symmetric\_difference.  **\_SequenceIndex** **set\_union\_minimal\_n**\
 Minimal input size for set\_union.  **\_SortAlgorithm** **sort\_algorithm**\
 **\_SequenceIndex** **sort\_minimal\_n**\
 Minimal input size for parallel sorting.  unsigned int **sort\_mwms\_oversampling**\
 Oversampling factor for parallel std::sort (MWMS).  unsigned int **sort\_qs\_num\_samples\_preset**\
 Such many samples to take to find a good pivot (quicksort).  **\_SequenceIndex** **sort\_qsb\_base\_case\_maximal\_n**\
 Maximal subsequence \_\_length to switch to unbalanced \_\_base case. Applies to std::sort with dynamically load-balanced quicksort.  **\_SplittingAlgorithm** **sort\_splitting**\
 unsigned int **TLB\_size**\
 size of the Translation Lookaside Buffer (underestimation).  **\_SequenceIndex** **transform\_minimal\_n**\
 Minimal input size for parallel std::transform.  **\_SequenceIndex** **unique\_copy\_minimal\_n**\
 Minimal input size for unique\_copy.  **\_SequenceIndex** **workstealing\_chunk\_size**\

## Detailed Description

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

## Member Function Documentation

### static const \_Settings & \_\_gnu\_parallel::\_Settings::get ()` [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()**.

### static void \_\_gnu\_parallel::\_Settings::set (\_Settings &)` [static]`

Set the global settings.

## Member Data Documentation

### \_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.

### 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.

### 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.

Referenced by **\_\_gnu\_parallel::\_\_find\_template()**.

### \_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.

Referenced by **\_\_gnu\_parallel::\_\_find\_template()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::find\_sequential\_search\_size

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

Referenced by **\_\_gnu\_parallel::\_\_find\_template()**, and **\_\_gnu\_parallel::\_\_find\_template()**.

### \_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()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::min\_element\_minimal\_n

Minimal input size for min\_element.

### 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.

### \_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.

### 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.

### \_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()**.

### 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.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
