Developer Guide for Intel® oneAPI Math Kernel Library for Windows*
ID
766692
Date
4/28/2026
Public
Getting Help and Support
What’s New
Notational Conventions
Related Information
Getting Started
Structure of the Intel® oneAPI Math Kernel Library
Linking Your Application with the Intel® oneAPI Math Kernel Library
Managing Performance and Memory
Language-Specific Usage Options
Coding Tips
Managing Output
Working with the Intel® Math Kernel Library Cluster Edition Software
Managing Behavior of the Intel® oneAPI Math Kernel Library with Environment Variables
Programming with Intel® Math Kernel Library in an Integrated Development Environment (IDE)
Intel® Math Kernel Library Benchmarks
Appendix A: Intel® oneAPI Math Kernel Library Language Interfaces Support
Appendix B: Support for Third-Party Interfaces
Appendix C: Directory Structure in Detail
Notices and Disclaimers
Using the q mkl Compiler Options
Using the mkl-ilp64 Compiler Option
Automatically Linking a Project in the Visual Studio* Integrated Development Environment with Intel® oneMKL
Using the Single Dynamic Library
Selecting Libraries to Link With
Using the Link-line Advisor
Using the Command-Line Link Tool
OpenMP* Threaded Functions and Problems
Functions Threaded with Intel® Threading Building Blocks
Avoiding Conflicts in the Execution Environment
Techniques to Set the Number of Threads
Setting the Number of Threads Using an OpenMP* Environment Variable
Changing the Number of OpenMP* Threads at Run Time
Using Additional Threading Control
Calling Intel® oneMKL Functions from Multi-threaded Applications
Using Intel® Hyper-Threading Technology
Managing Multi-core Performance
Managing Performance with Heterogeneous Cores
Message-Passing Interface Support
Linking with Intel® Math Kernel Library Cluster Edition Software
Working with OpenMP* Threads
Using DLLs
Setting Environment Variables on a Cluster
Interaction with the Message-Passing Interface
Using a Custom Message-Passing Interface
Examples of Linking for Clusters
Overview of the Intel® Distribution for LINPACK* Benchmark
Contents of the Intel® Distribution for LINPACK* Benchmark
Building the Intel® Distribution for LINPACK* Benchmark for a Customized MPI Implementation
Building the Netlib HPL from Source Code
Configuring Parameters
Ease-of-use Command-Line Parameters
Running the Intel® Distribution for LINPACK* Benchmark
Heterogeneous Support in the Intel® Distribution for LINPACK* Benchmark
Environment Variables
Improving Performance of Your Cluster
Setting Environment Variables on a Cluster
By default, when you call the MPI launch command mpiexec, the entire launching node environment is passed to the MPI processes. However, if there are undefined variables or variables that are different from what is stored in your environment, you can use -env or -genv options with mpiexec. Each of these options take two arguments- the name and the value of the environment variable to be passed.
-genv NAME1 VALUE1 -genv NAME2 VALUE2
-env NAME VALUE -genv
See these Intel ® MPI Library examples on how to set the value of OMP_NUM_THREADS explicitly:
mpiexec -genv OMP_NUM_THREADS 2 ....
mpiexec -n 1 -host first -env OMP_NUM_THREADS 2 test.exe : -n 2 -host second -env OMP_NUM_THREADS 3 test.exe ....
See these Intel MPI Library examples on how to set the value of MKL_BLACS_MPI explicitly:
mpiexec -genv MKL_BLACS_MPI INTELMPI ....
mpiexec -n 1 -host first -env MKL_BLACS_MPI INTELMPI test.exe : -n 1 -host second -env MKL_BLACS_MPI INTELMPI test.exe.