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® oneAPI Math Kernel Library
.

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® oneAPI Math Kernel Library
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.
stdcall functionality has been deprecated and will be removed in a future release of the product.

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® oneAPI Math Kernel Library
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® oneAPI Math Kernel Library
Developer Reference
for details of the
mkl_set_threading_layer
function.

Replacing Error Handling and Progress Information Routines

You can replace the
Intel® oneAPI Math Kernel Library
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® oneAPI Math Kernel Library
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

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