Threading Behavior of Intel MKL on Intel MIC Architecture

To avoid performance drops caused by oversubscribing Intel Xeon Phi coprocessors, Intel MKL limits the number of threads it uses to parallelize computations:

  • For native runs on coprocessors, Intel MKL uses 4*Number-of-Phi-Cores threads by default and scales down the number of threads back to this value if you request more threads and MKL_DYNAMIC is true.
  • For runs that offload computations, Intel MKL uses 4*(Number-of-Phi-Cores-1) threads by default and scales down the number of threads back to this value if you request more threads and MKL_DYNAMIC is true.
  • If you request fewer threads than the default number, Intel MKL will use the requested number.

Here Number-of-Phi-Cores is the number of cores per coprocessor.

Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

For more complete information about compiler optimizations, see our Optimization Notice.