Developer Guide

Contents

Dynamically Selecting the Interface and Threading Layer

The Single Dynamic Library (SDL) enables you to dynamically select the interface and threading layer for
Intel® MKL
.

Setting the Interface Layer

To set the interface layer at run time, use the
mkl_set_interface_layer
function or the
MKL_INTERFACE_LAYER
environment variable.
Available interface layers depend on the architecture of your system.
On systems based on the Intel® 64 architecture, LP64 and ILP64 interfaces are available. The following table provides values to be used to set each interface layer.
Specifying the Interface Layer
Interface Layer
Value of
MKL_INTERFACE_LAYER
Value of the Parameter of
mkl_set_interface_layer
Intel LP64, default
LP64
MKL_INTERFACE_LP64
Intel ILP64
ILP64
MKL_INTERFACE_ILP64
If the
mkl_set_interface_layer
function is called, the environment variable
MKL_INTERFACE_LAYER
is ignored.
See the
Intel® MKL
Developer Reference
for details of the
mkl_set_interface_layer
function.
On systems based on the IA-32 architecture, the cdecl and stdcall interfaces are available. These interfaces have different function naming conventions, and SDL selects between cdecl and stdcall at link time according to the function names.

Setting the Threading Layer

To set the threading layer at run time, use the
mkl_set_threading_layer
function or the
MKL_THREADING_LAYER
environment variable. The following table lists available threading layers along with the values to be used to set each layer.
Specifying the Threading Layer
Threading Layer
Value of
MKL_THREADING_LAYER
Value of the Parameter of
mkl_set_threading_layer
Intel threading, default
INTEL
MKL_THREADING_INTEL
Sequential mode of
Intel® MKL
SEQUENTIAL
MKL_THREADING_SEQUENTIAL
PGI threading
PGI
MKL_THREADING_PGI
Intel TBB threading
TBB
MKL_THREADING_TBB
Not supported by the SDL for Intel® Many Integrated Core Architecture.
If the
mkl_set_threading_layer
function is called, the environment variable
MKL_THREADING_LAYER
is ignored.
See the
Intel® MKL
Developer Reference
for details of the
mkl_set_threading_layer
function.

Replacing Error Handling and Progress Information Routines

You can replace the
Intel® MKL
error handling routine
xerbla
or progress information routine
mkl_progress
with your own function. If you are using SDL, to replace
xerbla
or
mkl_progress
, call the
mkl_set_xerbla
and
mkl_set_progress
function, respectively. See the
Intel® MKL
Developer Reference
for details.
If you are using SDL, you cannot perform the replacement by linking the object file with your implementation of
xerbla
or
mkl_progress
.

Product and Performance Information

1

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