PDF de programación - Sesión: Visión general+BLAS - Librerías Matriciales

Imágen de pdf Sesión: Visión general+BLAS - Librerías Matriciales

Sesión: Visión general+BLAS - Librerías Matricialesgráfica de visualizaciones

Publicado el 20 de Agosto del 2018
406 visualizaciones desde el 20 de Agosto del 2018
697,1 KB
26 paginas
Creado hace 16a (12/10/2007)
Curso: Herramientas Informáticas para

Sesión: Visión general+BLAS

Computación Científica

Parte: Librerías Matriciales

Domingo Giménez

Departamento de Informática y Sistemas

Universidad de Murcia, Spain

dis.um.es/~domingo

Universidad de Murcia

1

Motivación

 Muchas veces son la parte más costosa

de la resolución del problema

 Identificar rutinas básicas, estandarizar e

implementarlas eficientemente:
 Programación más fácil
 Mantenimiento más fácil
 Más portabilidad
 Códigos eficientes

Universidad de Murcia

2

Contenido y organización

 Planificado:

 Visión histórica de las librerías matriciales

de álgebra numérica (1Te+0 Pr+0 Tr)

 BLAS (1.5 Te+1 Pr+3 Tr)

 Organización:

 Visión general+BLAS: 1.5 horas
 Prácticas ¿cuándo? ¿cómo?: 1 hora
 Trabajo sin evaluar

Universidad de Murcia

3

Motivación

 Un gran número de aplicaciones científicas

hacen uso del Álgebra Lineal Numérica:
 Simulación de moléculas (problemas de valores

propios)

 Econometría (mínimos cuadrados)
 Radiosidad (sistemas de ecuaciones)
 Búsqueda de información en web (valores propios)
 Reconocimiento de caras (valores propios)
...

Universidad de Murcia

4

Antecedentes históricos
(fuente: Enrique Quintana, UJI)

 1962: Rounding errors, Wilkinson
 1965: The Algebraic Eigenvalue Problem,

Wilkinson. SVD, Golub, Kahan

 1969: NAG. Strassen
 1972: EISPACK. QZ, Moler, Stewart
 1973: BLAS Report
 1974: Inicio LINPACK. Inicio BLAS-1

Universidad de Murcia

5

Antecedentes históricos (II)

 1975: ACM Trans. on Math. Soft.
 1976: EISPACK 2.0
 1977: Fortran 77
 1978: LINPACK. BLAS1 en ACM TOMS
 1980: DV, Cupper
 1982: Inicio BLAS-2
 1983: Matrix computation, Golub, Van

Loan

Universidad de Murcia

6

Antecedentes históricos (III)

 1984: EISPACK 3.0. netlib
 1986: Inicio BLAS3
 1987: Inicio LAPACK. BLAS2 en ACM

TOMS

 1990: BLAS3 en ACM TOMS.
 1992: LAPACK 3.0
 1993: Inicio ScaLAPCK

Universidad de Murcia

7

Antecedentes históricos (IV)

 1996: ARPACK
 1997: ScaLAPACK. PLAPACK
 1999: SuperLU
 2000: ATLAS. PETSc
 2002: GotoBLAS
 ...: FLAME. LAPACK07. HeteroScaLAPACK

Universidad de Murcia

8

Jerarquía de librerías

Independiente de la
plataforma

Secuencial

ScaLAPACK

Paso de mensajes

Direccionamiento
global

PBLAS

LAPACK

BLACS

Dependiente de la
plataforma

Direccionamiento
local

BLAS

Comunicaciones: PVM, MPI

Universidad de Murcia

9

Jerarquía de librerías

PDE Solver

Least Square Problem

Inverse Eigenvalue Problem

Se puede extender
la jerarquía resolviendo
problemas de alto coste
computacional. Necesarios
algoritmos eficientes
en sistemas de altas
prestaciones.

ScaLAPACK

PBLAS

LAPACK

BLACS

BLAS

Comunicaciones

Universidad de Murcia

10

Obteniendo información

 www.netlib.org/liblist.html
 www.netlib.org/utk/people/JackDongarra/la-sw.html

Universidad de Murcia

11

BLAS

ScaLAPACK

Paso de mensajes

Direccionamiento
global

PBLAS

LAPACK

BLACS

Dependiente de la
plataforma

Secuencial

Direccionamiento
local

BLAS

Comunicaciones: PVM, MPI

Universidad de Murcia

12

Independiente de la
plataforma

Basic Linear 
Algebra 
Subprograms

BLAS

 Conjunto de rutinas para realizar

operaciones básicas sobre vectores y
matrices

 C. L. Lawson, R. J. Hanson, D. Kincaid, and F. T. Krogh, Basic
Linear Algebra Subprograms for FORTRAN usage, ACM Trans.
Math. Soft., 5 (1979), pp. 308--323.

 J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson, An

extended set of FORTRAN Basic Linear Algebra Subprograms,
ACM Trans. Math. Soft., 14 (1988), pp. 1--17.

 J. J. Dongarra, J. Du Croz, I. S. Duff, and S. Hammarling, A set of
Level 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Soft
., 16 (1990), pp. 1--17.

Universidad de Murcia

13

BLAS

 Hay tres niveles según el coste

computacional:
tipo
operaciones



coste

accesos
computacional memoria

BLAS1 vector-vector

BLAS2 matriz-vector

BLAS3 matriz-matriz

n

n2

n3

n

n2

n2

Universidad de Murcia

14

BLAS 1

Universidad de Murcia

15

BLAS 1

Ejemplo ddot.f
Calcula el producto escalar de dos

vectores

Se puede usar en el bucle más interno de

la multiplicación de matrices, dando
lugar a una versión con BLAS 1
Se compila con (depende del sistema)
cc – O3 mb1.c –

lblas -lm

Universidad de Murcia

16

BLAS

 Formato de las funciones (niveles 2 y 3): XYYZZZ
X: Tipo de datos:

S : REAL
D : DOUBLE PRECISION
C : COMPLEX
Z : DOUBLE COMPLEX

YY: Tipo de matriz:

GE, GB, HE, HP, HB, SY, SP, TR, TP, TB

ZZZ: Operación:

MV: productor matriz vector
MM: producto matriz matriz
SV: sistema de ecuaciones ...

Universidad de Murcia

17

BLAS 2

Universidad de Murcia

18

BLAS 2

Universidad de Murcia

19

BLAS 2

Ejemplo dgemv.f
Calcula el producto de una matriz por un

vector

Se puede usar en el segundo bucle en la
multiplicación de matrices, dando lugar
a una versión con BLAS 2

Se compila con
cc – O3 mb2.c –

lblas -lm

Universidad de Murcia

20

BLAS 3

Universidad de Murcia

21

BLAS 3
Ejemplo dgemm.f
Calcula el producto de una matriz por un

vector

Se puede hacer la multiplicación de

matrices llamando directamente a la
rutina correspondiente de BLAS
Se compila con

icc – O3 mb3.c –

lgslcblas -lm

Universidad de Murcia

22

BLAS
 Multiplicación de matrices (en kefren,

pentium 4):

Método\tam 200

400

800

Normal

0.0463

0.7854

7.9686

Blas 1
Blas 2
Blas 3

0.0536
0.0501
0.0429

0.8190
0.5861
0.6115

8.2311
5.9997
4.7252

Universidad de Murcia

23

Versiones de BLAS

 BLAS de referencia: los códigos, los podemos instalar en

nuestro sistema, no optimizado

 BLAS propietario: optimizado? por los vendedores para

su sistema
 Intel: mkl
 IBM: ESSP ...

 GotoBLAS: muy eficiente en algunos casos
 Multitud de versiones libres optimizadas? para distintos

sistemas, precompiladas

 ATLAS se autoinstala

Universidad de Murcia

24

Algoritmos por bloques (en CAP)

 En vez de realizar operaciones elemento a

elemento realizarlas con bloques de
elementos: menos accesos a memoria para
el mismo volumen de computación
menor
tiempo de ejecución.

 Técnica utilizada desde los años 80. Se
utiliza en LAPACK para obtener rutinas
eficientes independientemente del sistema
donde se ejecuten.

Universidad de Murcia

25

BLAS - Práctica

 Una sesión presencial (¿cuándo? ¿dónde?)

para explicar el uso de BLAS.

 Versiones de multiplicación de matrices,

normal, con BLAS 1, 2 y 3:
 Compilarlas lincando con BLAS
 Ejecutar y comprobar el resultado, determinando la

forma de llamar a las matrices en BLAS

 Comparar tiempos de ejecución para las distintas

versiones variando el tamaño de las matrices

Universidad de Murcia

26
  • Links de descarga
http://lwp-l.com/pdf13077

Comentarios de: Sesión: Visión general+BLAS - Librerías Matriciales (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad