Developer Reference

  • 2021.1
  • 12/04/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

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