Developer Guide

Contents

MKL_DYNAMIC

The
MKL_DYNAMIC
environment variable enables
Intel® oneAPI Math Kernel Library
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
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
    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
    runs one OpenMP thread.
When
MKL_DYNAMIC
is
FALSE
,
Intel® oneAPI Math Kernel Library
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
is called from an OpenMP parallel region in your program,
Intel® oneAPI Math Kernel Library
uses only one thread by default. If you want
Intel® oneAPI Math Kernel Library
to go parallel in such a call, link your program against an OpenMP threading RTL supported by
Intel® oneAPI Math Kernel Library
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
uses
MKL_NUM_THREADS
threads when it is called from the OpenMP parallel region in your program.
In general, set
MKL_DYNAMIC
to
FALSE
only under circumstances that
Intel® oneAPI Math Kernel Library
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

Product and Performance Information

1

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