Developer Guide

Developer Guide for Intel® oneAPI Math Kernel Library Linux*

ID 766690
Date 12/16/2022

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Calling oneMKL Functions from Multi-threaded Applications

This section summarizes typical usage models and available options for calling Intel® oneAPI Math Kernel Library functions from multi-threaded applications. These recommendations apply to any multi-threading environments: OpenMP*, Intel® Threading Building Blocks,POSIX* threads, and others.

Usage model: disable oneMKL internal threading for the whole application

When used:Intel® oneAPI Math Kernel Library internal threading interferes with application's own threading or may slow down the application.

Example: the application is threaded at top level, or the application runs concurrently with other applications.


  • Link statically or dynamically with the sequential library

  • Link with the Single Dynamic Library and select the sequential library using an environment variable or a function call:

    • Set MKL_THREADING_LAYER=sequential

    • Call mkl_set_threading_layer(MKL_THREADING_SEQUENTIAL)

For details of the mentioned functions, see the Support Functions section of the Intel® oneAPI Math Kernel Library Developer Reference, available in the Intel Software Documentation Library.

Product and Performance Information

Performance varies by use, configuration and other factors. Learn more at

Notice revision #20201201