Librerías secuenciales de Álgebra Lineal Densa: BLAS y LAPACK

Slides:



Advertisements
Presentaciones similares
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.
Advertisements

Computación Matricial y Paralela1 Algoritmos Numéricos Algoritmos matriciales básicos Almacenamiento de matrices Operaciones básicas con vectores Operaciones.
1 Librería secuencial de Álgebra Lineal Densa LAPACK Domingo Giménez Javier Cuenca Facultad de Informática Universidad de Murcia.
Librería secuencial de Álgebra Lineal Densa LAPACK
Contenido Marco de referencia Arquitectura de computadoras paralelas
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,
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Universidad de Murcia1 Algoritmos matriciales por bloques Multiplicación de matrices. BLAS Domingo Giménez Departamento de Informática y Sistemas Universidad.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Capítulo 11 Matrices especiales y Gauss-Seidel.
Resolución de Sistemas Lineales
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
LEONARDO LÓPEZ C. ECONOMIA ESTADISTICA COMPUTARIZADA PARALELO: 261.
POSTGIS raster en gvSIG Nacho Brodin
Proyecto ROOTVE V2: Control de versiones con Subversion Grupo de Investigación y Desarrollo en Seguridad de la Información - GIDSI.
¿QUE SIGNIFICA PROGRAMACION? en informática, un método de programación en el que un programa se contempla como un conjunto de objetos limitados que, a.
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN.
TUTORIA 1 Lógica para la Computación TUTORIA 1 Facultad de Ciencias Naturales y Matemáticas.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
ARDUINO INTRODUCCIÓN Y PROGRAMACIÓN. Podemos tener Señales analógicas y digitales. INTRODUCCIÓN.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
L. S. C. A. Raúl Monforte Chulin
Convenciones de nomenclatura y diseño
Jennifer Morales Clarke 2º Bach. A
ARQUITECTURA BÁSICA DE UN ORDENADOR
VENTAJAS DEL ALGORITMO LMS
MATRICES Por Jorge Sánchez.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO
PROYECTO FINAL DE CARRERA Ingeniería Aeronáutica DESARROLLO DE OPTIMIZADOR DE FORMA 2D BASADO EN CÓDIGO DE ELEMENTOS FINITOS CON MALLADOS CARTESIANOS.
U.T. 11: Introducción A Las Bases De Datos
TIPOS DE MATRICES Matriz fila. Dimensión 1  n. A = ( )
Unidad 5. Capítulo VI. Sistemas lineales no homogéneos.
1 Matrices Índice del libro Matrices Tipos de matrices
Arquitecturas alternativas UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNICIONES ADMINISTRACION DE SERVIDORES.
PSEUDOCÓDIGO Prof. Rafael Mourglia.
Unidad 6. Capítulo IV. Puntos ordinarios y puntos singulares.
Tema 3. Lenguaje unificado de modelado UML
Radar de innovación educativa 2015
Tema 3 Fundamentos y diseño de algoritmos
Tipos de Datos abstractos
Definición de un Sistema Distribuido
CODIGOS DE BLOQUE LINEALES
PROVEEDOR DATA WAREHOUSE TERADATA
La rama de la matemática que tiene el propósito del desarrollo de métodos, para solucionar los problemas más diversos mediante una cantidad finita de operaciones.
Curso de iniciación al trabajo con MatLab 7.0
SIMULADOR MODULAR SECUENCIAL
Algoritmo Capitulo Cinco.
Simulación Basada en Ecuaciones
Conceptos Relacionados Unidad I. Parte A.
CONCEPTOS PRELIMINARES (Cont)
EL ÁLGEBRA.
Diagrama de Flujo La presentación gráfica de sistemas es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos.
HERRAMIENTAS DE PROGRAMACIÓN
A RQUITECTURA C LIENTE - SERVIDOR La arquitectura del cliente servidor se divide en dos partes Los promovedores de recursos o servicios llamados servidores.
ESTRUCTURA DEL SISTEMA OPERATIVO INTEGRANTES: *CARBAJAL GONZALES, ESMERALDA *GONZALES CABRERA, MIRIAM *OTRIZ SARAVIA, KAREN.
Fundamentos de la Programación I
FUNDAMENTOS DE PROGRAMACIÓN. INTRODUCCIÓN  Conceptos: Informática, Ordenador, Programa, Dato, Bit, Byte, Hardware, Software, Lenguaje de Programación,
Matrices: conceptos generales
Francisco García Barrios
DEPARTAMENTO DE MATEMÁTICAS
“Conceptos Básicos de Java”
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
TEMARIO DEFINICIÓN ………………………………………………………..………..
Ingeniería de Sistemas. Programación II Python ¿Qué es Python? Python es un lenguaje de programación creado por Guido Van Rossum a principios de los.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Diagrama de fujo. QUE ES UN DIAGRAMA DE FLUJO ? Un diagrama de flujo es la representación gráfica del flujo o secuencia de rutinas simples. Tiene la ventaja.
EVOLUCIÓN DE LOS PARADIGMAS DE PROGRAMACIÓN Integrantes: Christian Abad, Kevin Colcha.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
AHP ANALYSIS OF CLOUD COMPUTING SERVICE PROVIDERS FOR HIGHER EDUCATION.
Transcripción de la presentación:

Librerías secuenciales de Álgebra Lineal Densa: BLAS y LAPACK Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo 18 de noviembre de 201818 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia Contenido Jerarquía de librerías Obteniendo información Algoritmos por bloques BLAS LAPACK Otras librerías 18 de noviembre de 2018 Universidad Politécnica de Valencia

Jerarquía de librerías ScaLAPACK Paso de mensajes Direccionamiento global PBLAS Independiente de la plataforma Dependiente de la plataforma LAPACK BLACS Secuencial Direccionamiento local BLAS Comunicaciones: PVM, MPI 18 de noviembre de 2018 Universidad Politécnica de Valencia

Jerarquía de librerías: historia ScaLAPACK 1994 PRISM LAPACK2 Templates 1995 PBLAS 1994 Templates LAPACK 1987 BLACS 1991 LINPACK 1979 EISPACK 1974 BLAS1 1988 BLAS3 1990 Comunicaciones: PVM, MPI 1993 Rutinas de comunicación específicas 18 de noviembre de 2018 Universidad Politécnica de Valencia

Jerarquía de librerías: extensión 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 18 de noviembre de 2018 Universidad Politécnica de Valencia

Obteniendo información www.netlib.org/liblist.html www.netlib.org/utk/people/JackDongarra/la-sw.html 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques Multiplicación de matrices (en SUN Ultra 1): Método\tamaño 200 400 800 Normal 0.2179 13.4601 217.5464 Traspuesta 0.2013 3.3653 27.9945 Bloques 10 0.2880 2.5901 21.9029 25 0.2192 1.8347 14.9642 50 0.2161 1.7709 14.2502 Bloq tras 10 0.2937 2.5026 20.4405 25 0.2195 1.8009 14.6415 50 0.2152 1.7628 14.1806 Almac blo 10 0.2949 2.5122 20.3762 25 0.2277 1.8490 14.8625 50 0.2296 1.8429 14.7314 Bl tr al bl 10 0.2925 2.4985 20.1975 25 0.2244 1.8082 14.5282 50 0.2231 1.7147 13.6553 Bloq dob 20 5 0.6105 4.9363 39.9594 20 10 0.3206 2.6669 19.7044 50 10 0.3039 2.4542 19.7044 50 25 0.2370 1.9221 15.5190 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques Las prestaciones de los distintos algoritmos varían con: Tamaño del problema Parámetros del algoritmo Sistema en que se ejecuta Forma de la matriz … 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques Necesario: Aprender a usar librerías eficientes Aprender a desarrollar algoritmos por bloques Desarrollar técnicas de autooptimización, que seleccionen el algoritmo y los parámetros a usar, para obtener buenas prestaciones independiente de: El sistema donde se ejecuta Las condiciones actuales del sistema Los conocimientos del usuario 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques mult(a,fa,ca,lda,b,fb,cb,ldb,c,fc,cc,ldc) double *a; int fa,ca,lda; double *b; int fb,cb,ldb; double *c; int fc,cc,ldc; { int i,j,k; double s; for(i=0;i<fa;i++) for(j=0;j<cb;j++) { s=0.; for(k=0;k<ca;k++) s+=a[i*lda+k]*b[k*ldb+j]; c[i*ldc+j]=s; } Algoritmo sin bloques (normal). Acceso elemento a elemento. Problemas pequeños buenas prestaciones pues caben en memoria de niveles bajos de la jerarquía. Problemas grandes peores prestaciones. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques multbloques(a,fa,ca,lda,b,fb,cb,ldb,c,fc,cc,ldc,tb) double *a; int fa,ca,lda; double *b; int fb,cb,ldb; double *c; int fc,cc,ldc, tb; { int i,j,k; double *s; s=(double *) malloc(sizeof(double)* tb * tb); for(i=0;i<fa;i=i+ tb) for(j=0;j<cb;j=j+ tb) { ceros(s, tb, tb, tb); for(k=0;k<ca;k=k+ tb) multsumar(&a[i*lda+k], tb, tb,lda,&b[k*ldb+j], tb, tb,ldb,s, tb, tb, tb); copiar(s, tb, tb, tb,&c[i*ldc+j], tb, tb,ldc); } free(s); Algoritmo por bloques. Acceso y operaciones por bloques . Buenas prestaciones independiente del tamaño. El tamaño de bloque es parámetro a determinar. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques k tb tb j j B C tb k i s 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques multbloquesgrandes(a,fa,ca,lda,b,fb,cb,ldb,c,fc,cc,ldc,tb,tbp) double *a; int fa,ca,lda; double *b; int fb,cb,ldb; double *c; int fc,cc,ldc, tb, tbp; { int i,j,k; double *s; s=(double *) malloc(sizeof(double)* tb * tb); for(i=0;i<fa;i=i+ tb) for(j=0;j<cb;j=j+ tb) { ceros(s, tb, tb, tb); for(k=0;k<ca;k=k+ tb) multsumarbloques(&a[i*lda+k], tb, tb,lda,&b[k*ldb+j], tb, tb,ldb,s, tb, tb, tb, tbp); copiar(s, tb, tb, tb,&c[i*ldc+j], tb, tb,ldc); } free(s); Algoritmo por bloques dobles. La operación sobre bloques no es la multiplicación directa, sino por bloques. Tenemos dos tamaños de bloque. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques Almacenamiento por bloques: matriz 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 almacenamiento 0 1 4 5 2 3 6 7 8 9 12 13 10 11 14 15 posible acceso más rápido a los datos dentro de las operaciones por bloques 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques Trasposición de la matriz B y multiplicación: mult(a,fa,ca,lda,b,fb,cb,ldb,c,fc,cc,ldc) double *a; int fa,ca,lda; double *b; int fb,cb,ldb; double *c; int fc,cc,ldc; { int i,j,k; double s; for(i=0;i<fa;i++) for(j=0;j<cb;j++) { s=0.; for(k=0;k<ca;k++) s+=a[i*lda+k]*b[j*ldb+k]; c[i*ldc+j]=s; } 18 de noviembre de 2018 Universidad Politécnica de Valencia

Comunicaciones: PVM, MPI BLAS ScaLAPACK Paso de mensajes Direccionamiento global PBLAS Independiente de la plataforma Dependiente de la plataforma LAPACK BLACS Basic Linear Algebra Subprograms Direccionamiento local Secuencial BLAS Comunicaciones: PVM, MPI 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia BLAS Conjunto de rutinas para realizar operaciones básicas sobre vectores y matrices Publications/references for the BLAS? 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia BLAS Hay tres niveles según el coste computacional: tipo coste accesos operaciones computacional memoria BLAS1 vector-vector n n BLAS2 matriz-vector n2 n2 BLAS3 matriz-matriz n3 n2 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia BLAS 1 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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 icc –O3 mb1.c –lgslcblas -lm 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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 ... 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia BLAS 2 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia BLAS 2 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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 icc –O3 mb2.c –lgslcblas -lm 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia BLAS 3 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia BLAS Multiplicación de matrices (en kefren, pentium 4): Método\tamaño 200 400 800 Normal 0.0463 0.7854 7.9686 Traspuesta 0.0231 0.2875 2.3190 Bloques 10 0.0255 0.2493 2.0327 25 0.0265 0.2033 1.6928 50 0.0219 0.1785 1.6594 Bloq dob 20 5 0.0393 0.3669 3.4955 20 10 0.0269 0.3090 2.4424 50 10 0.0316 0.2232 2.2768 50 25 0.0215 0.1755 1.4726 Blas 1 0.0536 0.8190 8.2311 Blas 2 0.0501 0.5861 5.9997 Blas 3 0.0429 0.6115 4.7252 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia BLAS - Práctica Hacer llamada a dgemm desde programa en C y en Fortran: Ver las formas diferentes en la llamada Comparar los resultados, teniendo en cuenta que en C los elementos se almacenan por filas y en Fortran por columnas (en la multiplicación de matrices estas no deben ser simétricas) 18 de noviembre de 2018 Universidad Politécnica de Valencia

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 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK Algoritmos orientados a bloques  Basados en BLAS Eficiencia Portabilidad 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK Tipos de matrices: Densas. Banda. Reales y complejas. … no escasas Tipos de sistemas: Secuenciales. Memoria compartida. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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 ... 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK Tipos de matrices: 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; 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 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK Ejemplo dgesv.f Resuelve un sistema de ecuaciones Llamada en Fortran: call dgesv( ) En C: dgesv_( ) y se pasan las referencias a los parámetros 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK - Prácticas Resolver un sistema de ecuaciones usando dgesv.f Utilizando C y Fortran, y comparar las dos formas de llamada 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK Problema de mínimos cuadrados Problema: Rutinas: xyyLS, xyyLSX, xyyLSS Problema generalizado de mínimos cuadrados Rutinas: xyyLSE, xyyGLM 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia LAPACK Problema simétrico de valores propios Problema: Rutinas: Conductora simple: xyyEV Conductora divide y vencerás: xyyEVD Conductora experta: xyyEVX 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia 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. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques - Práctica Factorización LU por bloques: = Paso 1: (factorización LU sin bloques) Paso 2: (sistema triangular inferior múltiple) Paso 3: (sistema triangular superior múltiple) Paso 4: (actualización de bloque sur-este) L11 L22 L33 L32 L31 L21 A11 A22 A33 A32 A31 A23 A21 A13 A12 U11 U22 U33 U23 U13 U12 18 de noviembre de 2018 Universidad Politécnica de Valencia

Algoritmos por bloques - Práctica Programar la factorización LU por bloques utilizando llamadas a rutinas de BLAS y LAPACK. Usar la LU sin bloques como referencia. Hacerla sin pivotamiento. Comparar el tiempo de ejecución con el obtenido con la rutina sin bloques. Comparar el tiempo de ejecución sustituyendo la multiplicación de matrices por la versión por bloques programada. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Comunicaciones: PVM, MPI ATLAS ScaLAPACK Paso de mensajes Direccionamiento global PBLAS Independiente de la plataforma Dependiente de la plataforma Automatic Tuned Linear Algebra Software LAPACK BLACS Direccionamiento local Secuencial ATLAS Comunicaciones: PVM, MPI 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia ATLAS Rutinas básicas de Álgebra Lineal con autooptimización. En la instalación se realizan una serie de tests para decidir los mejores parámetros a utilizar en la resolución de los problemas, dependiendo de la rutina y del tamaño de los vectores y matrices. Tiempo de instalación grande. Se tendría disponible software eficiente para nuevas plataformas sin esperar el tedioso proceso de desarrollar software optimizado. La misma funcionalidad que BLAS. Se puede hacer interface para que las llamadas a las rutinas sean iguales. 18 de noviembre de 2018 Universidad Politécnica de Valencia

Comunicaciones: PVM, MPI FLAME ScaLAPACK Paso de mensajes Direccionamiento global PBLAS Independiente de la plataforma Dependiente de la plataforma LAPACK BLACS Formal Linear Algebra Methods Environment Direccionamiento local Secuencial FLAME Comunicaciones: PVM, MPI 18 de noviembre de 2018 Universidad Politécnica de Valencia

Universidad Politécnica de Valencia FLAME Desarrollo de rutinas de Álgebra Lineal manera sistemática. Metodología orientada a objeto. Código más sencillo. Para algunos tamaños (matrices rectangulares) mejores prestaciones que ATLAS y BLAS. 18 de noviembre de 2018 Universidad Politécnica de Valencia