- Infos im HLRS Wiki sind nicht rechtsverbindlich und ohne Gewähr -
- Information contained in the HLRS Wiki is not legally binding and HLRS is not responsible for any damages that might result from its use -

MKL: Difference between revisions

From HLRS Platforms
Jump to navigationJump to search
No edit summary
No edit summary
(One intermediate revision by the same user not shown)
Line 13: Line 13:


Load the necessary module. For example:
Load the necessary module. For example:
{{Command| command =
<pre>
module load compiler/intel  
module load compiler/intel  
module load numlib/intel/mkl # set up MKL environment
module load numlib/intel/mkl # set up MKL environment
module load mpi/impi # if MPI needed  
module load mpi/impi         # if MPI needed  
}}
</pre>


=== Example ===
=== Example ===
Line 50: Line 50:
=== Compilation example ===
=== Compilation example ===


{{Command| command =
<pre>
ifort -c example_blas.f90 -o example_blas.o
ifort -c example_blas.f90 -o example_blas.o
ifort -L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread  example_blas.o
ifort -L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp5 -lpthread  example_blas.o
}}
</pre>


To see what libraries are recommended for a particular use case, visit:
To see what libraries are recommended for a particular use case, visit:

Revision as of 10:51, 17 October 2014

Intel® Math Kernel Library (MKL) is a library of optimized math routines for science, engineering, and financial applications. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms and Vector Math.
Intel-logo.png
Developer: Intel
Platforms: NEC Nehalem Cluster
Category: Numerical Library
License: Commercial
Website: Intel® MKL homepage


Using MKL on Nehalem cluster

This example shows the basic steps when using MKL.

Load the necessary module. For example:

module load compiler/intel 
module load numlib/intel/mkl # set up MKL environment
module load mpi/impi         # if MPI needed 

Example

File: example_blas.f90
 program example_blas
   implicit none
   real, dimension(3) :: a = (/2.,1.,-1./), b = (/5., -2., 1.5/)
   real               :: c, sdot
   real(kind=8)       :: d, dnrm2
   ! *** skalar product ***
   ! sdot: s ... REAL, dot ... skalar product
   ! 1. Argument  ... dimensions of the vectors
   ! 2. und 4. A. ... the vectors
   ! 3. und 5. A. ... increment (here 1)
   c = sdot(3, a, 1, b, 1)
   write(*,*) c
   ! Result: 6.500000
   ! *** norm of the vectors ***
   ! dnrm2: d ... DOUBLE PRECISION, nrm2 ... (euklidian) norm
   ! 1. Argument: dimensions of the vectors
   ! 2. A.:       vektor
   ! 3. A.:       increment (here 1)
   d = dnrm2(3, dble(a), 1)
   write(*,*) d
   ! Result: 2.44948974278318
 end program example_blas


Compilation example

ifort -c example_blas.f90 -o example_blas.o
ifort -L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp5 -lpthread  example_blas.o

To see what libraries are recommended for a particular use case, visit:

See also

External links