MKL: Różnice pomiędzy wersjami
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 | + | ** procesory Intel64 ([[Bem]]) - podkatalog lib/intel64/. |
− | |||
− | |||
* zalecane jest linkowanie statyczne, przykłady: | * zalecane jest linkowanie statyczne, przykłady: | ||
− | ** MKL | + | ** MKL 15.0: |
icc -o program.x \ | icc -o program.x \ | ||
− | /opt/intel/ | + | /opt/intel/15.0.1.133/mkl/lib/intel64/libmkl_lapack95_lp64.a \ |
− | /opt/intel/ | + | /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/ | |
− | export MKLPATH=/ | ||
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