Visible to Intel only — GUID: GUID-341B837A-9381-451D-B2BE-C049969CF545
Visible to Intel only — GUID: GUID-341B837A-9381-451D-B2BE-C049969CF545
mkl_set_dynamic
Enables Intel® oneAPI Math Kernel Library to dynamically change the number of OpenMP* threads.
void mkl_set_dynamic (int flag);
- mkl.h
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. |
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 theMKL_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).
#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 }