---
name: "__gnu_parallel::_Settings"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/__gnu_parallel::_Settings"
---

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

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

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

### void \_\_gnu\_parallel::\_Settings::set (\_Settings & ) \[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

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::accumulate\_minimal\_n

Minimal input size for accumulate.

Referenced by **set()**.

### unsigned int \_\_gnu\_parallel::\_Settings::adjacent\_difference\_minimal\_n

Minimal input size for adjacent\_difference.

Referenced by **set()**.

### 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()**, and **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::count\_minimal\_n

Minimal input size for count and count\_if.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::fill\_minimal\_n

Minimal input size for fill.

Referenced by **set()**.

### double \_\_gnu\_parallel::\_Settings::find\_increasing\_factor

Block size increase factor for find.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::find\_initial\_block\_size

Initial block size for find.

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

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::find\_maximum\_block\_size

Maximal block size for find.

Referenced by **set()**.

### float \_\_gnu\_parallel::\_Settings::find\_scale\_factor

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

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

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

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

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

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::for\_each\_minimal\_n

Minimal input size for for\_each.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::generate\_minimal\_n

Minimal input size for generate.

Referenced by **set()**.

### unsigned long long \_\_gnu\_parallel::\_Settings::L1\_cache\_size

size of the L1 cache in bytes (underestimation).

Referenced by **set()**.

### 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()**, **\_\_gnu\_parallel::\_\_sequential\_random\_shuffle()**, and **set()**.

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

Minimal input size for max\_element.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::merge\_minimal\_n

Minimal input size for merge.

Referenced by **set()**.

### unsigned int \_\_gnu\_parallel::\_Settings::merge\_oversampling

Oversampling factor for merge.

Referenced by **\_\_gnu\_parallel::multiway\_merge\_sampling\_splitting()**, **\_\_gnu\_parallel::parallel\_multiway\_merge()**, and **set()**.

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

Minimal input size for min\_element.

Referenced by **set()**.

### int \_\_gnu\_parallel::\_Settings::multiway\_merge\_minimal\_k

Oversampling factor for multiway\_merge.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::multiway\_merge\_minimal\_n

Minimal input size for multiway\_merge.

Referenced by **set()**.

### unsigned int \_\_gnu\_parallel::\_Settings::multiway\_merge\_oversampling

Oversampling factor for multiway\_merge.

Referenced by **set()**.

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

Minimal input size for nth\_element.

Referenced by **\_\_gnu\_parallel::\_\_parallel\_nth\_element()**, and **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::partial\_sort\_minimal\_n

Minimal input size for partial\_sort.

Referenced by **set()**.

### 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()**, and **set()**.

### unsigned int \_\_gnu\_parallel::\_Settings::partial\_sum\_minimal\_n

Minimal input size for partial\_sum.

Referenced by **set()**.

### 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()**, and **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::partition\_chunk\_size

Chunk size for partition.

Referenced by **\_\_gnu\_parallel::\_\_parallel\_partition()**, and **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::partition\_minimal\_n

Minimal input size for partition.

Referenced by **\_\_gnu\_parallel::\_\_parallel\_nth\_element()**, and **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::qsb\_steals

The number of stolen ranges in load-balanced quicksort.

Referenced by **set()**.

### unsigned int \_\_gnu\_parallel::\_Settings::random\_shuffle\_minimal\_n

Minimal input size for random\_shuffle.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::replace\_minimal\_n

Minimal input size for replace and replace\_if.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::search\_minimal\_n

Minimal input size for search and search\_n.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::set\_difference\_minimal\_n

Minimal input size for set\_difference.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::set\_intersection\_minimal\_n

Minimal input size for set\_intersection.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::set\_symmetric\_difference\_minimal\_n

Minimal input size for set\_symmetric\_difference.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::set\_union\_minimal\_n

Minimal input size for set\_union.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::sort\_minimal\_n

Minimal input size for parallel sorting.

Referenced by **set()**.

### unsigned int \_\_gnu\_parallel::\_Settings::sort\_mwms\_oversampling

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

Referenced by **\_\_gnu\_parallel::parallel\_sort\_mwms()**, **\_\_gnu\_parallel::parallel\_sort\_mwms\_pu()**, and **set()**.

### unsigned int \_\_gnu\_parallel::\_Settings::sort\_qs\_num\_samples\_preset

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

Referenced by **set()**.

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

### unsigned int \_\_gnu\_parallel::\_Settings::TLB\_size

size of the Translation Lookaside Buffer (underestimation).

Referenced by **\_\_gnu\_parallel::\_\_parallel\_random\_shuffle\_drs()**, **\_\_gnu\_parallel::\_\_sequential\_random\_shuffle()**, and **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::transform\_minimal\_n

Minimal input size for parallel std::transform.

Referenced by **set()**.

### \_SequenceIndex \_\_gnu\_parallel::\_Settings::unique\_copy\_minimal\_n

Minimal input size for unique\_copy.

Referenced by **set()**.

## Author

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