Россия, Липецк, Липецкий Государственный Технический Университет, 2014 |
Библиотеки Intel. Intel® Math Kernel Library
Презентацию к данной лекции Вы можете скачать здесь.
Общая характеристика Intel® Math Kernel Library
Intel® Math Kernel Library (Intel® MKL) – вычислительная математическая библиотека, содержащая хорошо оптимизированные многопоточные реализации математических функций. Содержит BLAS, LAPACK, ScaLAPACK, солверы для разреженных систем, быстрое преобразование Фурье, векторизованные математические функции и т.д.
Многоплатформенная библиотека, однако ScaLAPACK не поддерживается в Mac OS* X.
Поддерживаются C и Fortran.
Входит в состав следующих пакетов:
- IntelR Parallel Studio XE
- IntelR Cluster Studio XE
- IntelR C++ Studio XE
- IntelR Composer XE
- IntelR C++ Composer XE
- IntelR Fortran Composer XE
Состав Intel® Math Kernel Library
Основные операции с векторами и матрицами:
- BLAS (Basic Linear Algebra Subroutines);
- SparseBLAS (Basic Linear Algebra Subroutines);
- PBLAS (Parallel BLAS).
BLAS – эффективная библиотека, в которой реализованы основные операции: векторно-векторные (1 уровень), матрично-векторные (2 уровень) и матрично-матричные (3 уровень). Библиотека оптимизируется под разные архитектуры и используется в качестве "ядра" других библиотек более высокого уровня).
SparseBLAS – расширение BLAS для работы с разреженными векторами и матрицами.
PBLAS – параллельная реализация BLAS для вычислительных систем с распределенной памятью. Построена на основе MPI.
Модуль линейной алгебры (решение систем линейных алгебраических уравнений, решение спектральных задач). Включает следующие компоненты:
- LAPACK (Linear Algebra PACKage);
- ScaLAPACK.
LAPACK содержит подпрограммы решения систем линейных алгебраических уравнений, решения спектральных задач для матриц (вычисления собственных значений и собственных векторов), факторизации матриц разного вида (LU, QR, Холецкого, Шура, сингулярного и других) и т.д. Процедуры предназначены для работы с хорошо заполненными и ленточными матрицами, вещественными и комплексными, в форматах с простой и двойной точностью (http://www.netlib.org/lapack).
ScaLAPACK – параллельная библиотека подпрограмм линейной алгебры, реализованная для систем с распределенной памятью (http://www.netlib.org/scalapack).
Модуль линейной алгебры для разреженных матриц:
- PARDISO (PARallel DIrect SOlver);
- итерационные солверы для разреженных матриц.
PARDISO – потокобезопасная, эффективная библиотека, предназначенная для решения систем линейных алгебраических уравнений с большими разреженными матрицами, как симметричными, так и несимметричными (http://www.pardiso-project.org). Подпрограммы библиотеки реализованы как для систем с общей, так и с распределенной памятью.
- VML (Vector Mathematical Library);
- VSL (Vector Statistical Library).
VML – векторные реализации математических функций.
VSL – параллельные (многопоточные) реализации генераторов псевдослучайных чисел.
Модуль быстрого преобразования Фурье:
- FFT (Fast Fourier Transform);
- ClusterFFT – кластерная реализация библиотеки быстрого преобразования Фурье.
Модуль поддержки решения дифференциальных уравнений в частных производных:
- TT (Trigonometric Transforms);
- PL (Poisson Library).