oneMKL-specific Environment Variables for OpenMP Threading Control
oneMKL
-specific Environment Variables for OpenMP Threading ControlIntel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library
Some
routines may use fewer OpenMP threads than suggested by the threading controls if either the underlying algorithms do not support the suggested number of OpenMP threads or the routines perform better with fewer OpenMP threads because of lower OpenMP overhead and/or better data locality. Set the
Intel® oneAPI Math Kernel Library
MKL_DYNAMIC
environment variable to
FALSE
or call
mkl_set_dynamic(0)
to use the suggested number of OpenMP threads whenever the algorithms permit and regardless of OpenMP overhead and data locality.
The table below lists the
environment variables for threading control, their equivalent functions, and OMP counterparts:
Intel® oneAPI Math Kernel Library
Environment Variable
| Support Function
| Comment
| Equivalent OpenMP* Environment Variable
|
---|---|---|---|
MKL_NUM_THREADS | mkl_set_num_threads mkl_set_num_threads_local | Suggests the number of OpenMP threads to use.
| OMP_NUM_THREADS |
MKL_DOMAIN_NUM_
THREADS | mkl_domain_set_num_threads | Suggests the number of OpenMP threads for a particular function domain.
| |
MKL_DYNAMIC | mkl_set_dynamic | Enables
Intel® oneAPI Math Kernel Library | OMP_DYNAMIC |
Call
to use a given number of OpenMP threads and prevent it from reacting to the environment variables
mkl_set_num_threads()
to force
Intel® oneAPI Math Kernel Library
MKL_NUM_THREADS
,
MKL_DOMAIN_NUM_THREADS
, and
OMP_NUM_THREADS
.
The example below shows how to force
to use one thread:
Intel® oneAPI Math Kernel Library
// ******* C language *******
#include <mkl.h>
...
mkl_set_num_threads ( 1 );
// ******* Fortran language *******
...
call mkl_set_num_threads( 1 )