MKL: Różnice pomiędzy wersjami

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania
m
 
(Nie pokazano 3 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
 
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie systemowe i narzędziowe]]</small>
 
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie systemowe i narzędziowe]]</small>
  
'''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/mkl/ lub /opt/intel/mkl/.
+
'''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/.
  
  
Linia 9: Linia 9:
  
 
* biblioteki należy linkować w wersji odpowiedniej do procesora na jakim uruchamiane będą obliczenia:
 
* biblioteki należy linkować w wersji odpowiedniej do procesora na jakim uruchamiane będą obliczenia:
** procesory IA-32 ([[Układ]]) - podkatalog lib/32/,
+
** procesory Intel64 ([[Bem]]) - podkatalog lib/intel64/.
** procesory IA-64 ([[Gromada]], [[Leo]]) - podkatalog lib/64/,
 
** procesory EM64T ([[Nova]]) - podkatalog lib/em64t/.
 
  
 
* zalecane jest linkowanie statyczne, przykłady:
 
* zalecane jest linkowanie statyczne, przykłady:
** MKL 9:
+
** MKL 15.0:
 
  icc -o program.x \
 
  icc -o program.x \
   /opt/intel/mkl/9.0/lib/em64t/libmkl_lapack.a \
+
   /opt/intel/15.0.1.133/mkl/lib/intel64/libmkl_lapack95_lp64.a \
   /opt/intel/mkl/9.0/lib/em64t/libmkl_em64t.a \
+
   /opt/intel/15.0.1.133/mkl/lib/intel64/libmkl_intel_ilp64.a \
  /opt/intel/mkl/9.0/lib/em64t/libguide.a \
+
    -Vaxlib -lpthread
  -Vaxlib -lpthread
+
* MKL 13.1:
** MKL 10:
+
  export MKLPATH=/usr/local/intel/13.1/composer_xe_2013.5.192/mkl/lib/intel64/
  export MKLPATH=/opt/intel/mkl/10.0.1.014/lib/em64t
 
 
  ifort -o program.x \
 
  ifort -o program.x \
 
   -L$MKLPATH \
 
   -L$MKLPATH \
Linia 30: Linia 27:
 
   -Wl,--end-group -lguide -lpthread
 
   -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:
+
* 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
 
  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!
 
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!

Aktualna wersja na dzień 12:35, 22 lut 2016

< 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