MKL

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

< Podręcznik użytkownika KDM < Oprogramowanie KDM < Oprogramowanie systemowe i narzędziowe

Intel® Math Kernel Library (MKL) - zestaw bibliotek matematycznych, zoptymalizowanych dla procesorów Intela. Biblioteki oferują pocedury BLAS 1, 2 i 3, Fast Fourier, LAPACK, ScaLAPACK, wsparcie dla procesorów wielordzeniowych, thread-safe, OpenMP, operacji wektorowych, ... Biblioteki zainstalowane są w katalogach /usr/local/intel/wersja/mkl/ lub /opt/intel/wersja/mkl/.


Użycie
  • dokumentacja w podkatalogu doc/,
  • biblioteki należy linkować w wersji odpowiedniej do procesora na jakim uruchamiane będą obliczenia:
    • procesory Intel64 (Bem) - podkatalog lib/intel64/.
  • zalecane jest linkowanie statyczne, przykłady:
    • MKL 15.0:
icc -o program.x \
  /opt/intel/15.0.1.133/mkl/lib/intel64/libmkl_lapack95_lp64.a \
  /opt/intel/15.0.1.133/mkl/lib/intel64/libmkl_intel_ilp64.a \
   -Vaxlib -lpthread
  • MKL 13.1:
export MKLPATH=/usr/local/intel/13.1/composer_xe_2013.5.192/mkl/lib/intel64/
ifort -o program.x \
  -L$MKLPATH \
  -Wl,--start-group \
  $MKLPATH/libmkl_intel_lp64.a \
  $MKLPATH/libmkl_intel_thread.a \
  $MKLPATH/libmkl_core.a \
  -Wl,--end-group -lguide -lpthread
  • biblioteki są zrównoleglone w trybie "shared memory" w oparciu o wątki. W ten sposób program, który nie jest zrównoleglony, a jest zlinkowany z MKL, może skorzystać z więcej niż jednego procesora. Skalowalność zależy od czasu jaki program spędza w procedurach pochodzących z MKL. Wywołanie kodu równoległego sterowane jest zmienną OMP_NUM_THREADS:
export OMP_NUM_THREADS=wymagana_liczba_procesorów

Jeśli program jest zrównoleglony sam w sobie, to nie wolno używać MKL w trybie równoległym - spowoduje to konkurowanie wątków MKL z programem właściwym! Wymuszenie trybu nierównoległego:

export MKL_SERIAL=yes


Linki zewnętrzne


Zobacz też: Oprogramowanie systemowe i narzędziowe, maszyny obliczeniowe