Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/22/2024
Public

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

Document Table of Contents

mkl_get_dynamic

Determines whether Intel® oneAPI Math Kernel Library (oneMKL) is enabled to dynamically change the number of OpenMP* threads.

Syntax

int mkl_get_dynamic(void);

Include Files

  • mkl.h

Description

This function returns the status of dynamic adjustment of the number of OpenMP* threads. To determine this status, the function inspects the return value of the following function call and if it is undefined, inspects the environment setting below:

NOTE:

Dynamic adjustment of the number of threads is enabled by default.

The dynamic adjustment works as follows. Suppose that the mkl_get_max_threads function returns the number of threads equal to N. If dynamic adjustment is enabled, Intel® oneAPI Math Kernel Library (oneMKL) may request up toNthreads, depending on the size of the problem. If dynamic adjustment is disabled, Intel® oneAPI Math Kernel Library (oneMKL) requests exactlyN threads for internal parallel regions (provided it uses a threaded algorithm with at least Ncomputations that can be done in parallel). However, the OpenMP* run-time library may be configured to supply fewer threads than Intel® oneAPI Math Kernel Library (oneMKL) requests, depending on the OpenMP* setting of dynamic adjustment.

Return Values

Name

Type

Description

ret

int

0 - Dynamic adjustment of the number of threads is disabled.

1 - Dynamic adjustment of the number of threads is enabled.

Example

#include "mkl.h"
…
int nt = mkl_get_max_threads();
if (1 == mkl_get_dynamic()) 
printf("Intel MKL may use less than %i threads for a large problem", nt);
else
printf("Intel MKL should use %i threads for a large problem", nt);