Developer Guide

Contents

oneMKL
-specific Environment Variables for OpenMP Threading Control

Intel® oneAPI Math Kernel Library
provides environment variables and support functions to control
Intel® oneAPI Math Kernel Library
threading independently of OpenMP. The
Intel® oneAPI Math Kernel Library
-specific threading controls take precedence over their OpenMP equivalents. Use the
Intel® oneAPI Math Kernel Library
-specific threading controls to distribute OpenMP threads between
Intel® oneAPI Math Kernel Library
and the rest of your program.
Some
Intel® oneAPI Math Kernel Library
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
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.
Subsection
"Number of User Threads" in the "Fourier Transform Functions"
section
of the
Intel® oneAPI Math Kernel Library
Developer Reference
shows how the
Intel® oneAPI Math Kernel Library
threading controls help to set the number of threads for the FFT computation.
The table below lists the
Intel® oneAPI Math Kernel Library
environment variables for threading control, their equivalent functions, and OMP counterparts:
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
to dynamically change the number of OpenMP threads.
OMP_DYNAMIC
Call
mkl_set_num_threads()
to force
Intel® oneAPI Math Kernel Library
to use a given number of OpenMP threads and prevent it from reacting to the environment variables
MKL_NUM_THREADS
,
MKL_DOMAIN_NUM_THREADS
, and
OMP_NUM_THREADS
.
The example below shows how to force
Intel® oneAPI Math Kernel Library
to use one thread:
// ******* C language ******* #include <mkl.h> ... mkl_set_num_threads ( 1 );
// ******* Fortran language ******* ... call mkl_set_num_threads( 1 )
See the
Intel® oneAPI Math Kernel Library
Developer Reference
for the detailed description of the threading control functions, their parameters, calling syntax, and more code examples.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.