Biblioteca MKL

De MateWiki
Saltar a: navegación, buscar
Warning.png Este artículo está en versión beta. El autor de este artículo no lo ha terminado todavía, por favor no lo edites hasta que elimine este mensaje.


MKL[1] es una biblioteca desarrollada por Intel para realizar operaciones relacionadas con álgebra numérica. Esta biblioteca es muy rápida sobre procesadores Intel. Es la biblioteca que emplea MATLAB para realizar las operaciones de álgebra numérica. También puede usarse con otros entornos de cálculo numérico como GNU Octave o R.

1 ¿Qué es una biblioteca?

En programación, una biblioteca es un conjunto de funciones que se agrupan en módulos, para que se utilicen en otros programas, sin necesidad de tener que escribir de nuevo esas funciones. Por ejemplo, las denominadas toolboxes de MATLAB son bibliotecas de programación.

Normalmente las bibliotecas se refieren a un tema muy específico. Hay bibliotecas para estadística, para métodos numéricos, para tratamiento de imágenes, para procesar ficheros de audio, para generar gráficos, etc.

2 ¿Qué es MKL?

La biblioteca Intel Math Kernel Library contiene funciones optimizadas para realizar diferentes operaciones matemáticas en procesadores fabricados por Intel. Se emplea mucho en entornos científicos, de ingeniería y financieros, ya que puede resolver sistemas lineales con diferentes tipos de matrices (densas, sparse), transformada rápida de Fourier y cualquier operación que requiera manipular vectores y matrices.

La biblioteca está disponible para sistemas Windows, GNU/Linux y Mac. En Windows y Mac es necesario adquirir una licencia comercial para poder emplear la biblioteca[2]. En cambio, en GNU/Linux puede conseguirse una licencia personal sin coste[3].

Hay dos maneras de usar esta biblioteca para acelerar nuestros programas:

  • Podemos usarla directamente escribiendo nuestros programas en C, C++ o FORTRAN. Este modo es complejo, y los programas tienen que ser escritos a muy bajo nivel.
  • Podemos emplear un programa que enlace con la biblioteca, y nos permita usarla de manera transparente y sencilla.

Por ejemplo, cuando estamos realizando cualquier operación con matrices en MATLAB, en realidad estamos empleando la biblioteca MKL de manera inadvertida. En cambio, cuando usamos otros programas, emplean otras bibliotecas que no funcionan de manera optimizada en procesadores Intel. Por este motivo, programas como GNU Octave son más lentos en la mayoría de operaciones que MATLAB.

Para que un programa de cálculo como GNU Octave o R funcione con la biblioteca MKL no es necesario cambiar los programas, sino simplemente recompilar el programa para que emplee la biblioteca.

3 LAPACK

Bibliotecas LAPACK, niveles de LAPACK

4 Influencia de la arquitectura

Artículos principales: arquitectura de un ordenador, complejidad de un algoritmo, eliminación gaussiana.

El rendimiento de los métodos numéricos para álgebra lineal no dependen ya de la complejidad del algoritmo. Los algoritmos están muy establecidos, y no hay margen para avances en la complejidad. La mejora del rendimiento se ha debido a cambios en la arquitectura de los ordenadores donde se implementan.

La secuencia de operaciones es más importante que la cantidad de operaciones.

Arquitectura Von Neumann. Análisis de Von Neumann de la eliminiación gaussiana[4]


5 Cómo compilar Octave con MKL

[1]

6 Referencias

  1. Math Kernel Library (software.intel.com)
  2. Intel MKL purchase (software.intel.com)
  3. Intel Non-Commercial Software Development (software.intel.com)
  4. Grcar, Joseph F. John von Neumann's Analysis of Gaussian Elimination and the Origins of Modern Numerical Analysis. SIAM Review, 53(4), pp. 607–682, 2011. (enlace a PDF sin suscripción)