Linking with Threading Libraries
Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library
In the
utilizes multiple processor cores available on your system, uses the OpenMP*, the application may also require a threading RTL. You should link not more than one
provides several threading libraries, each dependent on the
threading library must be consistent with the
parallel mode
,
Intel® oneAPI Math Kernel Library
or Intel TBB
threading technology, and requires a proper
threading
runtime library (RTL) to be linked with your application. Independently of use of
Intel® oneAPI Math Kernel Library
threading
RTL to your application.
Threading RTLs are
provided by your compiler.
Intel® oneAPI Math Kernel Library
threading
RTL of a certain compiler, and your choice of the
Intel® oneAPI Math Kernel Library
threading
RTL that you use in your application.
The OpenMP RTL of the Intel® compiler is the
libiomp5
library, located under
md.lib
<parent directory>
\
compiler
\
lib
.
You can find additional information about the Intel OpenMP RTL at
https://www.openmprtl.org.
The Intel TBB RTL of the Intel® compiler is the
. You can find additional information about the Intel TBB RTL at
https://www.threadingbuildingblocks.org.
tbb
library, located under
12.lib
<parent directory>
\tbb\libIn the
runs unthreaded code, does not require an
sequential mode
,
Intel® oneAPI Math Kernel Library
threading
RTL, and does not respond to environment variables and functions controlling the number of threads. Avoid using the library in the sequential mode unless you have a particular reason for that, such as the following:
- Your application needsa threadingRTL that none ofthreading libraries is compatible withIntel® oneAPI Math Kernel Library
- Your application is already threaded at a top level, and using parallelonly degrades the application performance by interfering with that threadingIntel® oneAPI Math Kernel Library
- Your application is intended to be run on a single thread, like a message-passing interface (MPI) application
It is critical to link the application with the proper RTL. The table below explains what library in the
threading layer and what
Intel® oneAPI Math Kernel Library
threading
RTL you should choose under different scenarios:
Application
| Intel® oneAPI Math Kernel Library | RTL Required
| ||
---|---|---|---|---|
Uses OpenMP
| Compiled with
| Execution Mode
| Threading Layer
| |
no
| any compiler
| parallel
| Static linking:
mkl_intel_ thread. lib Dynamic linking:
mkl_intel_ thread _dll.lib | libiomp5 md .lib |
no
| any compiler
| parallel
| Static linking:
mkl_tbb_ thread. lib Dynamic linking:
mkl_tbb_ thread _dll.lib | tbb 12.lib |
no
| any compiler
| sequential
| Static linking:
mkl_ sequential. lib Dynamic linking:
mkl_ sequential _dll.lib | none
|
yes
| Intel compiler
| parallel
| Static linking:
mkl_intel_ thread. lib Dynamic linking:
mkl_intel_ thread _dll.lib | libiomp5 md .lib |
yes
| PGI* compiler
| parallel
| Static linking:
mkl_pgi_ thread. lib Dynamic linking:
mkl_pgi_ thread _dll.lib | PGI OpenMP RTL
|
yes
| any other compiler
| parallel
| Not supported. Use
Intel® oneAPI Math Kernel Library |
Product and Performance Information
|
---|
Performance varies by use, configuration and other factors. Learn more at
www.Intel.com/PerformanceIndex.
Notice revision #20201201
|