Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 12/16/2022
Public

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

Document Table of Contents

DFTI_THREAD_LIMIT

In some situations you may need to limit the number of threads that the DftiComputeForward and DftiComputeBackward functions use. For example, if more than one thread calls Intel® oneAPI Math Kernel Library, it might be important that the thread calling these functions does not oversubscribe computing resources (CPU cores). Similarly, a known limit of the maximum number of threads to be used in computations might help the DftiCommitDescriptor function to select a more optimal computation method.

Set the parameter DFTI_THREAD_LIMIT as follows:

  • To a positive number, to specify the maximum number of threads to be used by the compute functions.
  • To zero (the default value), to use the maximum number of threads permitted in Intel® oneAPI Math Kernel Library FFT functions. See "Techniques to Set the Number of Threads" in the Intel® oneAPI Math Kernel Library Developer Guide for more information.

On an attempt to set a negative value, the DftiSetValue function returns an error and does not update the descriptor.

The value of the DFTI_THREAD_LIMIT configuration parameter returned by the DftiGetValue function is defined as follows:

  • 1 if Intel® oneAPI Math Kernel Library runs in the sequential mode
  • Depends of the commit status of the descriptor if Intel® oneAPI Math Kernel Library runs in a threaded mode:

    Commit Status

    Value

    Not committed

    The value of DFTI_THREAD_LIMIT set in a previous call to the DftiSetValue function or the default value

    Committed

    The upper limit on the number of threads used by the DftiComputeForward and DftiComputeBackward functions

To better understand usage of the DFTI_THREAD_LIMIT configuration parameter, see this example in your Intel® oneAPI Math Kernel Library directory:

./examples/dftf/source/config_thread_limit.f90