Librería secuencial de Álgebra Lineal Densa LAPACK

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

TEMA 1 Introducción a la Programación Concurrente
Diseño y análisis de algoritmos
1.3. PROGRAMACION PARALELA
Nociones Elementales de Matrices
FACTORIZACIÓN LU Bachilleres:
Guardando las distancias: a la memoria de
TEMA 3: ECUACIONES Y SISTEMAS
MÉTODOS NUMÉRICOS. Explicación del método de L U. Realizado por:
MROGINSKI, Javier L. – BENEYTO, Pablo A. –
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
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.
Informática empresarial
Programación en Matlab
Métodos de Diferencias Finitas para Ecuaciones en Derivadas Parciales
Métodos Numéricos para Ecuaciones en Derivadas Parciales
Curso de Computación Científica en Clusters
1 Librería secuencial de Álgebra Lineal Densa LAPACK Domingo Giménez Javier Cuenca Facultad de Informática Universidad de Murcia.
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)
Problemas de frontera para ecuaciones diferenciales
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Analisis de Rendimiento.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
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
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
Sesión 12.2 Sistemas lineales y método de Gauss.
Métodos de Análisis Ingenieril
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.
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,
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
ALGORITMO DE FACTORIZACION DIRECTA.
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:
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Matrices: conceptos generales
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.
Ecuaciones y sistemas de ecuaciones
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.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
ECUACIONES DE SEGUNDO GRADO.
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 SEGUNDO GRADO
ECUACIONES DE 2º GRADO a.x2 + b.x + c = 0
Resolución de Sistemas Lineales
MATRICES.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
SISTEMAS DE ECUACIONES NO LINEALES DÍA 18 * 1º BAD CS
TEMA 1 Sistemas de ecuaciones lineales
Lenguaje Programación
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
CONCEPTOS BÁSICOS DE ÁLGEBRA
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.
@ Angel Prieto BenitoApuntes 2º Bachillerato C.S.1 RESOLUCIÓN DE SISTEMAS U.D. 1 * 2º BCS.
Librerías secuenciales de Álgebra Lineal Densa: BLAS y LAPACK
Transcripción de la presentación:

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

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

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: Implementation Guide for LAPACK UT, CS-90-101, April 1990. E. Anderson and J. Dongarra LAPACK: A Portable Linear Algebra Library for High-Performance Computers UT, CS-90-105, May 1990. E. Anderson, Z. Bai, C. Bischof, J. Demmel, J. Dongarra, J. DuCroz, A. Greenbaum, S. Hammarling, A. McKenney, D. Sorensen Programada en FORTRAN LAPACK = Linear Algebra PACKage

LAPACK Algoritmos orientados a bloques  Basados en BLAS Eficiencia Portabilidad LAPACK surgió con el propósito de unificar y hacer más eficientes, robustas , precisas y funcionales dos librerías existentes con anterioriedad: EISPACK y LINPACK. El principal problema de estas librerías previas era el el patrón de acceso a los datos que seguían sus rutinas, ya que estaba basado en operaciones vectoriales de nivel 1 de BLAS. LAPACK mejoró esta ineficiencia reorganizando los algoritmos de cara a usar operaciones orientadas a bloques de matrices, con lo que aumenta la localidad de acceso a los datos, utilizando operaciones del nivel 3 de BLAS.

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.

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

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. RUTINAS CONDUCTORAS: resuelven un problema completo, por ejemplo, un sistema linear de ecuaciones o el cálculo de valores propios de una matriz simétrica. RUTINAS COMPUTACIONALES: Resuelven diferentes tareas computacionales concretas, como, por ejemplo, una factorización LU. Cada rutina conductora suele estar formada por una secuencia de llamadas a rutinas computacionales. RUTINAS AUXILIARES: - Rutinas que realizan subtareas dentro de rutinas por bloques. Principalmente son implementaciones en forma de versiones sin bloques de estas mismas rutinas por bloques (por ejemplo DGETF2  LU sin bloques, dentro de DGETR LU con bloques). - Rutinas que realizan computaciones de bajo nivel requeridas frecuentemente como, por ejemplo, escalar una matriz. De cara a una mejor organización de las diferentes librerías, algunas de ellas podrían estar incluidas en futuras versiones de BLAS. - Unas pocas extensiones de BLAS tales como operaciones matriz-vector con matrices complejas. Al igual que las anteriores, también podrían incorporarse a futuras versiones de BLAS.

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. RUTINAS CONDUCTORAS: resuelven un problema completo, por ejemplo, un sistema linear de ecuaciones o el cálculo de valores propios de una matriz simétrica.

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. RUTINAS COMPUTACIONALES: Resuelven diferentes tareas computacionales concretas, como, por ejemplo, una factorización LU. Cada rutina conductora suele estar formada por una secuencia de llamadas a rutinas computacionales.

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. RUTINAS AUXILIARES: - Rutinas que realizan subtareas dentro de rutinas por bloques. Principalmente son implementaciones en forma de versiones sin bloques de estas mismas rutinas por bloques (por ejemplo DGETF2  LU sin bloques, dentro de DGETR LU con bloques). - Rutinas que realizan computaciones de bajo nivel requeridas frecuentemente como, por ejemplo, escalar una matriz, calcular la norma de una matriz, generar una matriz elemental de Householder,.... De cara a una mejor organización de las diferentes librerías, algunas de ellas podrían estar incluidas en futuras versiones de BLAS. - Unas pocas extensiones de BLAS tales como operaciones matriz-vector con matrices complejas. Al igual que las anteriores, también podrían incorporarse a futuras versiones de BLAS.

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 ... YY: Tipos de matriz: [J-189 pag13] BD bidiagonal DI diagonal GB general banda GE general GT general tridiagonal ... HS upper Hessenberg SY simetrica

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;

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

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: ATX=B o AHX=B Número de condición, singularidad, ... Refina la solución y hace análisis de error. Equilibrado del sistema.

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

LAPACK. Ejemplo dgesv dgesv 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 Resuelve el doble sistema triangular LU X = B

LAPACK. Ejemplo dgesv 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 Multiplicación de matrices

LAPACK. Ejemplo dgesv 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 Resuelve un sistema triangular de ecuaciones UX=Y

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.

LAPACK. Práctica: Factorización LU por bloques dgetf2: LU sin bloques dtrsm: sistema triangular dgemm: multiplicacion matricial Partiendo de una matriz A  Rn´n, ésta se particiona siguiendo el diagrama de la Figura 4.1, donde A00 es una submatriz b´b, A01 es una submatriz b´(n-b), A10 es una submatriz (n-b)´b y A11 es una submatriz (n-b)´(n-b). L00 y L11 son submatrices triangulares inferiores y unitarias, mientras que U00 y U11 son submatrices triangulares superiores. De manera que se puede escribir:    La ecuación 4.13 supone realizar una factorización LU en el bloque A00 de dimensiones b´b. Una vez realizado, se conocerán las matrices L00 y U00, con lo que se podrá resolver el sistema triangular superior de la ecuación 4.14 para obtener L10 y el sistema triangular inferior de la ecuación 4.15 para obtener U01. Finalmente la ecuación 4.16 se podría reformular de esta manera: con lo que ahora el problema de encontrar L11 y U11 se reduciría a realizar la factorización LU sobre la matriz A’11 de dimensiones (n-b)´(n-b), en lugar de sobre A, realizando el mismo proceso que anteriormente se aplicó sobre A (Figura 4.2). La factorización completa de A se obtendrá repitiendo este proceso un total de n/b veces, sobrescribiéndose la matriz A por L y U.

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 Partiendo de una matriz A  Rn´n, ésta se particiona siguiendo el diagrama de la Figura 4.1, donde A00 es una submatriz b´b, A01 es una submatriz b´(n-b), A10 es una submatriz (n-b)´b y A11 es una submatriz (n-b)´(n-b). L00 y L11 son submatrices triangulares inferiores y unitarias, mientras que U00 y U11 son submatrices triangulares superiores. De manera que se puede escribir:    La ecuación 4.13 supone realizar una factorización LU en el bloque A00 de dimensiones b´b. Una vez realizado, se conocerán las matrices L00 y U00, con lo que se podrá resolver el sistema triangular superior de la ecuación 4.14 para obtener L10 y el sistema triangular inferior de la ecuación 4.15 para obtener U01. Finalmente la ecuación 4.16 se podría reformular de esta manera: con lo que ahora el problema de encontrar L11 y U11 se reduciría a realizar la factorización LU sobre la matriz A’11 de dimensiones (n-b)´(n-b), en lugar de sobre A, realizando el mismo proceso que anteriormente se aplicó sobre A (Figura 4.2). La factorización completa de A se obtendrá repitiendo este proceso un total de n/b veces, sobrescribiéndose la matriz A por L y U.   

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