4 merge requests!368Update prace.md to document the change from qprace to qprod as the default...,!367Update prace.md to document the change from qprace to qprod as the default...,!366Update prace.md to document the change from qprace to qprod as the default...,!323extended-acls-storage-section
The module sets up environment variables, required for linking and running MKL-enabled applications. The most important variables are the $MKLROOT, $CPATH, $LD_LIBRARY_PATH, and $MKL_EXAMPLES
The module sets up environment variables, required for linking and running MKL-enabled applications. The most important variables are the `$MKLROOT`, `$CPATH`, `$LD_LIBRARY_PATH`, and `$MKL_EXAMPLES`.
The Intel MKL library may be linked using any compiler. With the Intel compiler, use the -mkl option to link default threaded MKL.
The Intel MKL library may be linked using any compiler. With the Intel compiler, use the `-mkl` option to link default threaded MKL.
### Interfaces
### Interfaces
The Intel MKL library provides a number of interfaces. The fundamental once are the LP64 and ILP64. The Intel MKL ILP64 libraries use the 64-bit integer type (necessary for indexing large arrays, with more than 231^-1 elements), whereas the LP64 libraries index arrays with the 32-bit integer type.
The Intel MKL library provides a number of interfaces. The fundamental ones are LP64 and ILP64. The Intel MKL ILP64 libraries use the 64-bit integer type (necessary for indexing large arrays, with more than 231^-1 elements), whereas the LP64 libraries index arrays with the 32-bit integer type.
@@ -39,7 +39,7 @@ The Intel MKL library provides a number of interfaces. The fundamental once are
...
@@ -39,7 +39,7 @@ The Intel MKL library provides a number of interfaces. The fundamental once are
Linking the Intel MKL libraries may be complex. Intel [mkl link line advisor][b] helps. See also [examples][1] below.
Linking the Intel MKL libraries may be complex. Intel [mkl link line advisor][b] helps. See also [examples][1] below.
You will need the mkl module loaded to run the MKL-enabled executable. This may be avoided, by compiling library search paths into the executable. Include rpath on the compile line:
You will need the `mkl` module loaded to run the MKL-enabled executable. This may be avoided, by compiling library search paths into the executable. Include `-rpath` on the compile line:
Advantage in using the Intel MKL library is that it brings threaded parallelization to applications that are otherwise not parallel.
Advantage in using the Intel MKL library is that it brings threaded parallelization to applications that are otherwise not parallel.
For this to work, the application must link the threaded MKL library (default). Number and behavior of MKL threads may be controlled via the OpenMP environment variables, such as OMP_NUM_THREADS and KMP_AFFINITY. MKL_NUM_THREADS takes precedence over OMP_NUM_THREADS.
For this to work, the application must link the threaded MKL library (default). Number and behavior of MKL threads may be controlled via the OpenMP environment variables, such as `OMP_NUM_THREADS` and `KMP_AFFINITY`. `MKL_NUM_THREADS` takes precedence over `OMP_NUM_THREADS`.
In this example, we compile, link, and run the cblas_dgemm example, demonstrating use of MKL with the icc -mkl option. Using the -mkl option is equivalent to:
In this example, we compile, link, and run the cblas_dgemm example, demonstrating use of MKL with the `icc -mkl` option. Using the `-mkl` option is equivalent to: