4.13 OMP_PROC_BIND – Whether threads may be moved between CPUs

ICV: bind-var
Scope: data environment
Description:

Specifies whether threads may be moved between processors. If set to TRUE, OpenMP threads should not be moved; if set to FALSE they may be moved. Alternatively, a comma separated list with the values PRIMARY, MASTER, CLOSE and SPREAD can be used to specify the thread affinity policy for the corresponding nesting level. With PRIMARY and MASTER the worker threads are in the same place partition as the primary thread. With CLOSE those are kept close to the primary thread in contiguous place partitions. And with SPREAD a sparse distribution across the place partitions is used. Specifying more than one item in the list automatically enables nesting by default.

When a list is specified, it also affects the max-active-levels-var ICV as described in OMP_MAX_ACTIVE_LEVELS – Set the maximum number of nested parallel regions.

When undefined, OMP_PROC_BIND defaults to TRUE when OMP_PLACES or GOMP_CPU_AFFINITY is set and FALSE otherwise.

See also:

omp_get_proc_bind – Whether threads may be moved between CPUs, GOMP_CPU_AFFINITY – Bind threads to specific CPUs, OMP_PLACES – Specifies on which CPUs the threads should be placed, OMP_MAX_ACTIVE_LEVELS – Set the maximum number of nested parallel regions

Reference:

OpenMP specification v4.5, Section 4.4