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