Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
A newer version of this document is available. Customers should click here to go to the newest version.
mkl_set_dynamic
Enables Intel® oneAPI Math Kernel Library to dynamically change the number of OpenMP* threads.
call mkl_set_dynamic( flag )
- Include file: mkl.fi
 - Module (compiled): mkl_service.mod
 - Module (source): mkl_service.f90
 
Name  |  
      Type  |  
      Description  |  
     
|---|---|---|
flag  |  
      INTEGER  |  
      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).
use mkl_service … call mkl_set_num_threads( 8 ) !$omp parallel call my_compute_with_mkl ! Intel MKL uses 1 thread, being called from OpenMP parallel region call mkl_set_dynamic(0) ! disable adjustment of the number of threads call my_compute_with_mkl ! Intel MKL uses 8 threads !$omp end parallel