Visible to Intel only — GUID: GUID-0332F698-1696-4E9F-A908-EA4B1484D114
Visible to Intel only — GUID: GUID-0332F698-1696-4E9F-A908-EA4B1484D114
MKL_DYNAMIC
The MKL_DYNAMICenvironment variable enables Intel® oneAPI Math Kernel Library (oneMKL) to dynamically change the number of threads.
The default value of MKL_DYNAMIC is TRUE, regardless of OMP_DYNAMIC, whose default value may be FALSE.
When MKL_DYNAMIC is TRUE,Intel® oneAPI Math Kernel Library (oneMKL) may use fewer OpenMP threads than the maximum number you specify.
For example, MKL_DYNAMIC set to TRUE enables optimal choice of the number of threads in the following cases:
If the requested number of threads exceeds the number of physical cores (perhaps because of using the Intel® Hyper-Threading Technology), Intel® oneAPI Math Kernel Library (oneMKL) scales down the number of OpenMP threads to the number of physical cores.
If you are able to detect the presence of a message-passing interface (MPI), but cannot determine whether it has been called in a thread-safe mode, Intel® oneAPI Math Kernel Library (oneMKL) runs one OpenMP thread.
When MKL_DYNAMIC is FALSE, Intel® oneAPI Math Kernel Library (oneMKL) uses the suggested number of OpenMP threads whenever the underlying algorithms permit.For example, if you attempt to do a size one matrix-matrix multiply across eight threads, the library may instead choose to use only one thread because it is impractical to use eight threads in this event.
If Intel® oneAPI Math Kernel Library (oneMKL) is called from an OpenMP parallel region in your program, Intel® oneAPI Math Kernel Library (oneMKL) uses only one thread by default. If you want Intel® oneAPI Math Kernel Library (oneMKL) to go parallel in such a call, link your program against an OpenMP threading RTL supported by Intel® oneAPI Math Kernel Library (oneMKL) and set the environment variables:
- OMP_NESTED to TRUE
- OMP_DYNAMIC and MKL_DYNAMIC to FALSE
- MKL_NUM_THREADS to some reasonable value
With these settings, Intel® oneAPI Math Kernel Library (oneMKL) usesMKL_NUM_THREADS threads when it is called from the OpenMP parallel region in your program.
In general, set MKL_DYNAMIC to FALSEonly under circumstances that Intel® oneAPI Math Kernel Library (oneMKL) is unable to detect, for example, to use nested parallelism where the library is already called from a parallel section.
Product and Performance Information |
---|
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex. Notice revision #20201201 |