Conceptos básicos de segmentación

Anuncio
LAPACK'07
Avances en la Generación de Bibliotecas de Álgebra Lineal
Universidad Politécnica de Valencia
Marzo, 2006
Índice





¿LAPACK'07?
Algunos ejemplos
 Sistemas lineales
 Valores propios
Facilidad de uso
Optimización
Fuentes de información
LAPACK'07
¿LAPACK'07?

Algunas “razones de peso” (http://www.google.com):
S. Graham, M. Snir, C.A. Patterson. “Getting up to speed. The future of
supercomputing”. National Research Council. 2005
High-End Computing Revitalization Task Force. “Federal plan for highend computing”. 2004
D. Rotman, P. Harding. “DOE Greenbook – Needs and directions in
high-performance computing for the office of science”. 2002
LAPACK'07
¿LAPACK'07?

¿2007?

Nuevos problemas
 Problemas no lineales de valores propios, funciones de matrices, etc.

Nuevos algoritmos
 LAPACK 3.0 incorpora el estado del arte en algoritmos ¡en 1999!
 Mejoras en velocidad, fiabilidad y coste de almacenamiento

Nuevos lenguajes de programación y arquitecturas
 Python y Multi-cores
LAPACK'07
¿LAPACK'07?

Facilidad el uso

Autooptimización

Portar funcionalidad de LAPACK a ScaLAPACK (memoria distribuida)
LAPACK'07
Algunos Ejemplos: Sistemas Lineales

Estructuras de datos recursivas para matrices densas
Almacenamiento en Fortran (por columnas)
1
1 2 3 4 5 6
2
.
.
.
6
LAPACK'07
Algunos Ejemplos: Sistemas Lineales

Estructuras de datos recursivas para matrices densas
A
C
B
D
1
2
LAPACK'07
3
4
1
A
.
.
.
2
.
.
.
.
.
.
Algunos Ejemplos: Sistemas Lineales
Ventajas de las estructuras de datos recursivas:
 Mayor velocidad y aceleración
MFLOPs

Tamaño problema
Permite el uso de BLAS-3 para matrices simétricas empaquetadas
 Ajuste automático del tamaño de bloque del algoritmo al tamaño de las
cachés de segundo y tercer nivel (¿?)
...
 El primer nivel de recursividad reduce el número de fallos de TLB

LAPACK'07
Algunos Ejemplos: Sistemas Lineales

Inconvenientes de las estructuras de datos recursivas:
 El uso de “matrices recursivas” complica la tarea del usuario de la
biblioteca
 Solución
de LAPACK'07: Realizar las transformaciones de
almacenamiento por columnas a recursivo dentro de la rutina de cálculo
LAPACK'07
Algunos Ejemplos: Valores Propios

Cálculo de los valores propios de matrices no simétricas en LAPACK 3.0:
SUBROUTINE DGEES(...)
...
CALL DGEHRD(...)  14 n 3
3
...
CALL DHSEQR(...)  25 n3
...
END

 O n2 
La rutina DHSEQR (iteración QR) ocupa el 81% del coste teórico
LAPACK'07
Algunos Ejemplos: Valores Propios

Plataforma:
 Procesador:
 Memoria:
 Bibliotecas BLAS:
Compilador:
 S.O.:

Intel Xeon 2.4 GHz
512 KB de caché L2 y 1 GB de RAM
Referencia, GotoBLAS 1.00st,
MKL 8.0 (Intel) y ATLAS 3.7.11st
gcc 3.3.5; optimización -O3
Linux 2.4.27

Parámetro de rendimiento:
MFLOPs

Velocidad pico teórica:
4800 MFLOPs
LAPACK'07
Algunos Ejemplos: Valores Propios
LAPACK'07
Algunos Ejemplos: Valores Propios

Nuevo método de cálculo de los valores propios:
K. Braman, R. Byers, R. Mathias. “The Multi-Shift QR Algorithm Part I:
Maintaining Well Focused Shifts and Level 3 Performance”. SIMAX, 23:929947, 2002
K. Braman, R. Byers, R. Mathias. “The Multi-Shift QR Algorithm Part II:
Aggressive Early Deflation”. SIMAX, 23:948-973, 2002

Aceleración de DHSEQR entre 3 y 10 veces
LAPACK'07
Facilidad de Uso

Apuesta de LAPACK'07:
“Since we do not believe that we can simultaneously maximize
performance, memory efficiency, ease of use, reliability, and ease of
maintenance, we have decided on the following strategy: Maintain one
core version in Fortran 77, and provide wrappers in other languages just
for the driver routines. Based on current user demand, these other
languages will include Fortran 95, C,.... Matlab, Python and
Mathematica...”

Ventajas citadas en el párrafo
LAPACK'07
Facilidad de Uso

Inconvenientes: ¡Opinión personalísima!
 Se sigue apostando por un lenguaje, Fotran 77, con 40 años de
existencia que arrastra, como principal problema, la inexistencia de
rutinas para gestión de memoria dinámica (malloc/free)
 Se sigue apostando por un modelo de programación de una época
donde la memoria era un bien muy escaso
 Sólo las rutinas drivers dispondrán de wrappers para otros lenguajes
LAPACK'07
Optimización

Apuesta de LAPACK'07:
 Uso de ATLAS a nivel de BLAS
 Extensión de las ideas de ATLAS a la elección del tamaño de bloque
óptimo para las rutinas de LAPACK

Ventajas:
 Aproximación conocida

Inconvenientes:
 El rendimiento es muy variable, aunque suele ser subóptimo
LAPACK'07
Optimización
Plataforma:
 Procesador:
 Memoria:
 Biblioteca BLAS:
 Compilador:
 S.O.:
Intel Xeon 2.4 GHz
512 KB de caché L2 y 1 GB de RAM
GotoBLAS 0.96st
gcc 3.3.5; optimización -O3
Linux 2.4.27

Parámetro de rendimiento:
MFLOPs

Velocidad pico teórica:
4800 MFLOPs

LAPACK'07
Optimización
LAPACK'07
Optimización

Plataforma:
 Procesador:
 Memoria:

Bibliotecas BLAS:
Compilador:
 S.O.:

Intel Itanium2 1.5 GHz
256 KB/4 MB de cachés L2/L3
y 1 GB de RAM
Referencia, GotoBLAS 0.95st,
MKL 8.0 (Intel) y ATLAS 3.7.11st
icc 9.0; optimización -O3
Linux 2.4.21

Parámetro de rendimiento:
MFLOPs

Velocidad pico teórica:
6000 MFLOPs
LAPACK'07
Optimización
LAPACK'07
Fuentes de Información

LAPACK working notes (http://www.netlib.org/lapack/lawns/downloads):
J. Demmel, J. Dongarra. “LAPACK 2005 prospectus: Reliable and
scalable software for linear algebra computations on high end
computers”
LAPACK'07
Descargar