Next: , Previous: , Up: OpenMP Environment Variables   [Contents][Index]

4.11 OMP_PLACES – Specifies on which CPUs the theads should be placed


The thread placement can be either specified using an abstract name or by an explicit list of the places. The abstract names threads, cores, sockets, ll_caches and numa_domains can be optionally followed by a positive number in parentheses, which denotes the how many places shall be created. With threads each place corresponds to a single hardware thread; cores to a single core with the corresponding number of hardware threads; with sockets the place corresponds to a single socket; with ll_caches to a set of cores that shares the last level cache on the device; and numa_domains to a set of cores for which their closest memory on the device is the same memory and at a similar distance from the cores. The resulting placement can be shown by setting the OMP_DISPLAY_ENV environment variable.

Alternatively, the placement can be specified explicitly as comma-separated list of places. A place is specified by set of nonnegative numbers in curly braces, denoting the hardware threads. The curly braces can be omitted when only a single number has been specified. The hardware threads belonging to a place can either be specified as comma-separated list of nonnegative thread numbers or using an interval. Multiple places can also be either specified by a comma-separated list of places or by an interval. To specify an interval, a colon followed by the count is placed after the hardware thread number or the place. Optionally, the length can be followed by a colon and the stride number – otherwise a unit stride is assumed. Placing an exclamation mark (!) directly before a curly brace or numbers inside the curly braces (excluding intervals) will exclude those hardware threads.

For instance, the following specifies the same places list: "{0,1,2}, {3,4,6}, {7,8,9}, {10,11,12}"; "{0:3}, {3:3}, {7:3}, {10:3}"; and "{0:2}:4:3".

If OMP_PLACES and GOMP_CPU_AFFINITY are unset and OMP_PROC_BIND is either unset or false, threads may be moved between CPUs following no placement policy.

See also:

OMP_PROC_BIND – Whether theads may be moved between CPUs, GOMP_CPU_AFFINITY – Bind threads to specific CPUs, omp_get_proc_bind – Whether theads may be moved between CPUs, OMP_DISPLAY_ENV – Show OpenMP version and environment variables


OpenMP specification v4.5, Section 4.5

Next: OMP_STACKSIZE – Set default thread stack size, Previous: OMP_PROC_BIND – Whether theads may be moved between CPUs, Up: OpenMP Environment Variables   [Contents][Index]