1 Librería secuencial de Álgebra Lineal Densa LAPACK Domingo Giménez Javier Cuenca Facultad de Informática Universidad de Murcia.

Slides:



Advertisements
Presentaciones similares
TEMA 1 Introducción a la Programación Concurrente
Advertisements

Diseño y análisis de algoritmos
1.3. PROGRAMACION PARALELA
UNIVERSIDAD NACIONAL DE INGENIERÍA UNI- NORTE
Nociones Elementales de Matrices
FACTORIZACIÓN LU Bachilleres:
APLICACIONES DE LAS MATRICES A LA VIDA COTIDIANA
-Raúl Ojeda Osorio -Jordy Joaquin Cuan Robledo
Guardando las distancias: a la memoria de
MÉTODOS NUMÉRICOS. Explicación del método de L U. Realizado por:
TRANSFORMACIONES GEOMÉTRICAS
Introducción a la Estadística Informática
MATRICES.
ECUACIONES CUÁDRATICAS RACIONALES
Solución de sistemas lineales de n x n empleando la regla de Cramer
L aboratorio de P aralelismo IF - EHU. 4. T IPOS DE P ROBLEMAS P ARALELOS. M ETODOLOGÍA DE D ESARROLLO DE P ROGRAMAS P ARALELOS.
APLICACIÓN DE PROCESAMIENTO EN PARALELO BASADO EN OPENMP EN EL MANEJO MATRICIAL USADO EN EL ANÁLISIS DE SISTEMAS ELÉCTRICOS Antonio Ramos Paz 1, Eustaquio.
UNIVERSIDAD DE PANAMÁ FACULTAD DE CIENCIAS NATURALES Y EXACTAS DEPARTAMENTO DE MATEMATICA COLOQUIOS MATEMÁTICOS OPERADORES EN ESPACIOS DE HILBERT. REPRESENTACION.
Distinguir y realizar los cálculos con las operaciones matriciales básicas. Las operaciones matriciales permiten el abordaje de los métodos del álgebra.
Tres Algoritmos Paralelos para Multiplicación Matriz Vector
Introducción a la Computación Paralela Germán Larrazábal Departamento Computación, FACYT, Universidad de Carabobo, Venezuela
Informática empresarial
Métodos de Diferencias Finitas para Ecuaciones en Derivadas Parciales
Métodos Numéricos para Ecuaciones en Derivadas Parciales
MATRICES Y DETERMINANTES.
Curso de Computación Científica en Clusters
POTENCIAS NATURALES DE MATRICES CUADRADAS
Linear algebra: matrices Horacio Rodríguez. Introduction Some of the slides are reused from my course on graph- based methods in NLP (U. Alicante, 2008)
Librería secuencial de Álgebra Lineal Densa LAPACK
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Analisis de Rendimiento.
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
UNIVERSIDAD NACIONAL DEL NORDESTE
Tipos de Paralelismo Paralelismo de datos: cada procesador ejecuta la misma tarea sobre diferentes conjuntos o subregiones de datos Paralelismo de tareas:
Contenido Marco de referencia Arquitectura de computadoras paralelas
Sesión 12.2 Sistemas lineales y método de Gauss.
Algebra Lineal.
Sistemas Ecuaciones Lineales Teoría. Definición: Un sistema de m ecuaciones lineales con n incógnitas (en R): Como paso previo a resolverlo necesitamos.
M A T R I C E S MATRICES matrices.
12 December 2005Universidad de Murcia1 Computación Matricial y Paralela Curso Doctorado programa de Informática y Matemáticas Aplicadas en Ciencia e Ingeniería,
ALGORITMO DE FACTORIZACION DIRECTA.
Práctica 4-5 Métodos Directos e Iterativos para Sistemas de Ecuaciones Lineales.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Matrices: conceptos generales
Práctica 4 Métodos Directos para Sistemas de Ecuaciones Lineales.
Matrices Una matriz de tamaño n x m es un arreglo de números reales colocados en n filas (o renglones) y m columnas, de la siguiente forma:
E.T.S. de Ingeniería Informática Dpto. de Matemática Aplicada I.
Laboratorio de cómputo científico
Universidad de Murcia1 Algoritmos matriciales por bloques Multiplicación de matrices. BLAS Domingo Giménez Departamento de Informática y Sistemas Universidad.
003 MATRICES MATRICES.
Factorización Directa con pivoteo máximo de columna.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Capítulo 11 Matrices especiales y Gauss-Seidel.
UNIDAD 4 Clase 6.3 Tema: Sistema de Ecuaciones Lineales
1 COMPUTACIÓN MATRICIAL Y PARALELA curso profesores Antonio Javier Cuenca Muñoz Domingo Giménez Cánovas dis.um.es/~domingo/doctorado/0607/commatpar.html.
ECUACIONES DE 2º GRADO a.x2 + b.x + c = 0
MATRICES.
Resolución de Sistemas Lineales
SISTEMA DE ECUACIONES LINEALES. Métodos ExactosMétodos Aproximados.
MATRICES.
TEMA 1 Sistemas de ecuaciones lineales
Lenguaje Programación
Matrices.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
Matemática Básica (Ing.) 1 Sesión 12.1 Sistemas lineales y método de Gauss.
6. Sistemas de ecuaciones diferenciales lineales
Matrices ¿Qué es una matriz? ¿Qué es una matriz? ¿Qué es una matriz? ¿Qué es una matriz? Su Estructura Su Estructura Su Estructura Su Estructura Propiedades.
Visión por Computador Tensores bi-tri focales Ayudantía 04 Miguel A. Carrasco Noviembre, 2006 IIC3682.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Librerías secuenciales de Álgebra Lineal Densa: BLAS y LAPACK
Transcripción de la presentación:

1 Librería secuencial de Álgebra Lineal Densa LAPACK Domingo Giménez Javier Cuenca Facultad de Informática Universidad de Murcia

2 LAPACK ScaLAPACK LAPACK BLAS PBLAS BLACS Comunicaciones: PVM, MPI Paso de mensajes Secuencial Dependiente de la plataforma Independiente de la plataforma Direccionamiento local Direccionamiento global Linear Algebra Package

3 LAPACK Conjunto de rutinas para resolver problemas de los más frecuentes en álgebra lineal densa: sistemas de ecuaciones y problemas de valores propios Documentos: 1. Implementation Guide for LAPACK UT, CS , April E. Anderson and J. Dongarra 2. LAPACK: A Portable Linear Algebra Library for High- Performance Computers UT, CS , May E. Anderson, Z. Bai, C. Bischof, J. Demmel, J. Dongarra, J. DuCroz, A. Greenbaum, S. Hammarling, A. McKenney, D. Sorensen

4 LAPACK Algoritmos orientados a bloques  Basados en BLAS Eficiencia Portabilidad

5 LAPACK Problemas que resuelve: Sistemas de ecuaciones lineales Problemas de mínimos cuadrados Problemas de valores propios Problemas de valores singulares Otros: factorización de matrices, estimación del número de condición, etc.

6 LAPACK Tipos de matrices: Densas. Banda. Reales y complejas. … no escasas Tipos de sistemas: Secuenciales. Memoria compartida.

7 LAPACK Tipos de rutinas: “Driver routines” – Rutinas conductoras. Resuelve un problema. “Computational routines” – Rutinas computacionales. Realizan una tarea computacional “Auxiliary routines” – Rutinas auxiliares. Realizan una subtarea o trabajo de menor nivel.

8 LAPACK. Tipos de rutinas Rutinas conductoras: Para la resolución completa de problemas estándar: Sistemas de ecuaciones lineales. Problemas de valores propios. Siempre que sea posible es recomendable usar estas rutinas para resolver un problema.

9 LAPACK. Tipos de rutinas Rutinas computacionales: Realizan tareas computacionales: Factorizaciones LU y QR, reducción de matriz simétrica a tridiagonal,... Cada rutina conductora realiza una secuencia de llamadas a las rutinas computacionales. El usuario también puede llamar en sus programas a rutinas computacionales.

10 LAPACK. Tipos de rutinas Rutinas auxiliares: Son rutinas que hacen operaciones de bajo nivel: Versiones no orientadas a bloques de algoritmos orientados a bloques. Computaciones de bajo nivel (escalar una matriz, generación de matriz de Householder). Extensiones de BLAS.

11 LAPACK Formato de rutinas conductoras y computacionales: XYYZZZ X: Tipo de datos: S : REAL D : DOUBLE PRECISION C : COMPLEX Z : DOUBLE COMPLEX YY: Tipo de matriz ZZZ: Operación: SV: sistemas de ecuaciones EV: valores propios...

12 LAPACK Tipos de matrices YY (1/2): BD bidiagonal; GB general band; GE general (i.e., unsymmetric, in some cases rectangular); GG general matrices, generalized problem (i.e., a pair of general matrices); GT general tridiagonal; HB (complex) Hermitian band; HE (complex) Hermitian; HG upper Hessenberg matrix, generalized problem (i.e a Hessenberg and a triangular matrix); HP (complex) Hermitian, packed storage; HS upper Hessenberg; OP (real) orthogonal, packed storage; OR (real) orthogonal; PB symmetric or Hermitian positive definite band; PO symmetric or Hermitian positive definite; PP symmetric or Hermitian positive definite, packed storage;

13 LAPACK Tipos de matrices YY (2/2): PT symmetric or Hermitian positive definite tridiagonal; SB (real) symmetric band; SP symmetric, packed storage; ST (real) symmetric tridiagonal; SY symmetric; TB triangular band; TG triangular matrices, generalized problem (i.e., a pair of triangular matrices); TP triangular, packed storage; TR triangular (or in some cases quasi-triangular); TZ trapezoidal; UN (complex) unitary; UP (complex) unitary, packed storage

14 LAPACK Rutinas conductoras de resolución de ecuaciones lineales: AX = B Rutina simple: xyySV Factoriza A y sobreescribe B con X Rutina experta: xyySVX. Puede llevar a cabo otras funciones: A T X=B o A H X=B Número de condición, singularidad,... Refina la solución y hace análisis de error. Equilibrado del sistema.

15 LAPACK. Ejemplo dgesvdgesv Ejemplo dgesvdgesv Resuelve un sistema de ecuaciones Llamada en Fortran: call dgesv( ) En C: dgesv_( ) y se pasan las referencias a los parámetros

16 LAPACK. Ejemplo dgesvdgesv Rutina conductora de LAPACK Resolución de un sistema de ecuaciones AX=B Llamadas: dgetrf Rutina computacional de LAPACK Factorización LU: Transforma A  LU dgetrs Rutina computacional de LAPACK Resuelve el doble sistema triangular LU X = B

17 LAPACK. Ejemplo dgesvdgesv dgetrf Rutina computacional de LAPACK Factorización LU: Transforma A  LU Llamadas en cada pasada de bucle: dgetf2 Rutina auxiliar de LAPACK Factorización LU sin bloques aplicada a determinados bloques de A dtrsm (2 veces por pasada) Rutina del nivel 3 de BLAS Resuelve un sistema triangular de ecuaciones dgemm Rutina del nivel 3 de BLAS Multiplicación de matrices

18 LAPACK. Ejemplo dgesvdgesv dgetrs Rutina computacional de LAPACK Resuelve el doble sistema triangular LU X =B Llamadas en cada pasada de bucle: dlaswp Rutina auxiliar de LAPACK Aplica a B los intercambios de filas realizados previamente a las matrices L y U dtrsm Rutina del nivel 3 de BLAS Resuelve un sistema triangular de ecuaciones LY=B dtrsm Rutina del nivel 3 de BLAS Resuelve un sistema triangular de ecuaciones UX=Y

19 LAPACK También: Valores propios no simétrico. Descomposición en valores singulares. Valores propios simétrico generalizado. Valores propios no simétrico generalizado. Descomposición en valores singulares generalizado.

Computación Matricial y Paralela20 Factorización LU Cada A ij, L ij, U ij de tamaño b  b Paso 1: L 00 U 00 =A 00  Factorización sin bloques Paso 2: L 00 U 01 =A 01  Sistema múltiple triangular inferior (¿bloques?) Paso 3: L 10 U 00 =A 10  Sistema múltiple triangular superior (¿bloques?) Paso 4: A 11 =L 10 U 01 + L 11 U 11  A’ 11 =A 11 - L 10 U 01, por bloques y seguir trabajando con el nuevo valor de A 11

Computación Matricial y Paralela21 Factorización LU void lu_bloques(double *a,int fa,int ca,int lda,int tb)lu_bloques {int i,j,k,f,c; for(i=0;i<fa;i=i+tb) { f=(tb<fa-i ? tb : fa-i); c=(tb<ca-i ? tb : ca-i); lu(&a[i*lda+i],f,c,lda); if(i+tb<fa) { sistema_triangular_inferior(&a[i*lda+i],f,c,lda,&a[i*lda+i+c],f,ca-i- c,lda); sistema_triangular_superior(&a[i*lda+i],f,c,lda,&a[(i+f)*lda+i],fa-i- f,c,lda); multiplicar_restar_matrices(&a[(i+f)*lda+i],fa-i-f,c,lda, &a[i*lda+i+f],f,ca-i-c,lda,&a[(i+f)*lda+i+c],fa-i-f,ca-i-c,lda); } } }

Computación Matricial y Paralela22 Factorización LU en mi portátil : tamaño bloque\matriz sin bloques

23 LAPACK. Práctica: Factorización LU por bloques dgetf2: LU sin bloques dtrsm: sistema triangular dgemm: multiplicacion matricial

24 LAPACK. Práctica: Factorización LU por bloques Evolución de la factorización LU por bloques sobre la matriz A, sobrescribiendola por L y U bloque a bloque en cada pasada

25 LAPACK. Práctica: Factorización LU por bloques Probar las rutinas proporcionadas: LU.c: factorización LU sin bloques. Almacenamiento [i][j] BLU.c: factorización LU por bloques utilizando llamadas a rutinas de BLAS y LAPACK Comparar el tiempo de ejecución de ambas rutinas: para diferentes tamaños de matriz para diferentes tamaños de bloque en BLU.c Comparar el tiempo de ejecución de estas rutinas con las correspondientes rutinas de LAPACK: dgetf2: factorización LU sin bloques dgetrf: factorización LU por bloques Comparar el tiempo de ejecución de BLU.c sustituyendo la llamada a dgemm (multiplicación de matrices de BLAS-3) por: rdgemm: una versión programada por bloques con llamadas a DGEMM para cada bloque mdgemm: una versión programada directamente de forma tradicional

26 Trabajo: LU de matriz tridiagonal por bloques Dada matriz cuadrada por bloques cuadrados, de tamaño arbitrario y en la forma: A00A01000 A10A11A1200 0A21A22A230 00A32A33A34 000A43A44 obtener su factorización LU con programas: Sin trabajo por bloques Con algoritmo por bloques programado completo Con algoritmo por bloques con llamadas a BLAS y LAPACK Con llamada directa a LAPACK y comparar los tiempos de ejecución