Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

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

Document Table of Contents

mkl_set_threading_layer

Sets the threading layer for Intel® oneAPI Math Kernel Library (oneMKL) at run time. Use with the Single Dynamic Library (SDL).

Syntax

threading = mkl_set_threading_layer( required_threading )

Fortran Include Files/Modules

  • Include file: mkl.fi
  • Module (compiled): mkl_service.mod
  • Module (source): mkl_service.f90

Input Parameters

Name

Type

Description

required_threading

INTEGER

Determines the threading layer. Possible values:

MKL_THREADING_INTEL for Intel threading.

MKL_THREADING_SEQUENTIALfor the sequential mode of Intel® oneAPI Math Kernel Library (oneMKL).

MKL_THREADING_TBB for threading with the Intel® Threading Building Blocks.

MKL_THREADING_PGI for PGI threading on Windows* or Linux* operating system only. Do not use this value with the SDL for Intel® Many Integrated Core (Intel® MIC) Architecture.

NOTE:
PGI* support is deprecated and will be removed in the oneMKL 2025.0 release.

MKL_THREADING_GNU for GNU threading on Linux* operating system only. Do not use this value with the SDL for Intel MIC Architecture.

Description

If you are using the Single Dynamic Library (SDL), the mkl_set_threading_layerfunction sets the specified threading layer for Intel® oneAPI Math Kernel Library (oneMKL) at run time.

Call this function prior to calling any other Intel® oneAPI Math Kernel Library (oneMKL) function in your application except mkl_set_interface_layer.

You can call mkl_set_threading_layer and mkl_set_interface_layer in any order.

The mkl_set_threading_layer function takes precedence over the MKL_THREADING_LAYER environment variable.

See Intel® oneAPI Math Kernel Library (oneMKL) Developer Guide for the layered model concept and usage details of the SDL.

Return Values

Type

Description

INTEGER

  • Current threading layer if it is set in a call to mkl_set_threading_layer or specified by environment variables or defaults. Possible values are specified in Input Parameters.

  • -1, if the layer was not specified prior to the call and the input parameter is incorrect.