MKL
Przejdź do nawigacji
Przejdź do wyszukiwania
< 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/mkl/ lub /opt/intel/mkl/.
- Użycie
- dokumentacja w podkatalogu doc/,
- biblioteki należy linkować w wersji odpowiedniej do procesora na jakim uruchamiane będą obliczenia:
- zalecane jest linkowanie statyczne, przykłady:
- MKL 9:
icc -o program.x \ /opt/intel/mkl/9.0/lib/em64t/libmkl_lapack.a \ /opt/intel/mkl/9.0/lib/em64t/libmkl_em64t.a \ /opt/intel/mkl/9.0/lib/em64t/libguide.a \ -Vaxlib -lpthread
- MKL 10:
export MKLPATH=/opt/intel/mkl/10.0.1.014/lib/em64t 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