OMP_ALLOCATOR (GNU libgomp) (original) (raw)

Sets the default allocator that is used when no allocator has been specified in the allocate or allocator clause or if an OpenMP memory routine is invoked with the omp_null_allocator allocator. If unset, omp_default_mem_alloc is used.

The value can either be a predefined allocator or a predefined memory space or a predefined memory space followed by a colon and a comma-separated list of memory trait and value pairs, separated by =.

Note: The corresponding device environment variables are currently not supported. Therefore, the non-host def-allocator-var ICVs are always initialized to omp_default_mem_alloc. However, on all devices, the omp_set_default_allocator API routine can be used to change value.

Predefined allocators Associated predefined memory spaces
omp_default_mem_alloc omp_default_mem_space
omp_large_cap_mem_alloc omp_large_cap_mem_space
omp_const_mem_alloc omp_const_mem_space
omp_high_bw_mem_alloc omp_high_bw_mem_space
omp_low_lat_mem_alloc omp_low_lat_mem_space
omp_cgroup_mem_alloc omp_low_lat_mem_space (implementation defined)
omp_pteam_mem_alloc omp_low_lat_mem_space (implementation defined)
omp_thread_mem_alloc omp_low_lat_mem_space (implementation defined)
ompx_gnu_pinned_mem_alloc omp_default_mem_space (GNU extension)

The predefined allocators use the default values for the traits, as listed below. Except that the last three allocators have theaccess trait set to cgroup, pteam, andthread, respectively.

Trait Allowed values Default value
sync_hint contended, uncontended,serialized, private contended
alignment Positive integer being a power of two 1 byte
access all, cgroup,pteam, thread all
pool_size Positive integer See Memory allocation
fallback default_mem_fb, null_fb,abort_fb, allocator_fb See below
fb_data unsupported as it needs an allocator handle (none)
pinned true, false See below
partition environment, nearest,blocked, interleaved environment

For the fallback trait, the default value is null_fb for theomp_default_mem_alloc allocator and any allocator that is associated with device memory; for all other allocators, it is default_mem_fbby default.

For the pinned trait, the default value is true for predefined allocator ompx_gnu_pinned_mem_alloc (a GNU extension), andfalse for all others.

Examples:

OMP_ALLOCATOR=omp_high_bw_mem_alloc OMP_ALLOCATOR=omp_large_cap_mem_space OMP_ALLOCATOR=omp_low_lat_mem_space:pinned=true,partition=nearest