Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
Contents

mkl_set_dynamic

Enables
Intel® oneAPI Math Kernel Library
to dynamically change the number of OpenMP* threads.

Syntax

void
mkl_set_dynamic
(
int
flag
);
Include Files
  • mkl.h
Input Parameters
Name
Type
Description
flag
int
flag
= 0 - Requests disabling dynamic adjustment of the number of threads.
flag
0 - Requests enabling dynamic adjustment of the number of threads.
Description
This function indicates whether
Intel® oneAPI Math Kernel Library
can dynamically change the number of OpenMP threads or should avoid doing this. The setting applies to all
Intel® oneAPI Math Kernel Library
functions on all execution threads. This function takes precedence over the
MKL_DYNAMIC
environment variable.
Dynamic adjustment of the number of threads is enabled by default. Specifically,
Intel® oneAPI Math Kernel Library
may use fewer threads in parallel regions than the number returned by themkl_get_max_threadsfunction. Disabling dynamic adjustment of the number of threads does not ensure that
Intel® oneAPI Math Kernel Library
actually uses the specified number of threads, although the library attempts to use that number.
If you call
Intel® oneAPI Math Kernel Library
from within an OpenMP parallel region and want to create internal parallel regions, either disable dynamic adjustment of the number of threads or set the thread-local number of threads (seemkl_set_num_threads_local for how to do it).

Example

#include "mkl.h" … mkl_set_num_threads( 8 ); #pragma omp parallel { my_compute_with_mkl(); // Intel MKL uses 1 thread, being called from OpenMP parallel region mkl_set_dynamic( 0 ); // disable adjustment of the number of threads my_compute_with_mkl(); // Intel MKL uses 8 threads }

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804