Basic Linear Algebra Subprograms (BLAS) Avances en la Generación de Bibliotecas de Álgebra Lineal Universidad Politécnica de Valencia Marzo, 2006

Documentos relacionados
Linear Algebra PACKage (LAPACK) Avances en la Generación de Bibliotecas de Álgebra Lineal Universidad Politécnica de Valencia Marzo, 2006

Análisis y Modificación de Código Heredado para Cómputo de Alto Rendimiento con Modelos Numéricos del Clima

Una Biblioteca Numérica Paralela para UPC

Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas

DESARROLLO DE SOFTWARE MODULAR, ABIERTO Y COLABORATIVO PARA SIMULACIÓN DE MÁQUINAS Y MECANISMOS

ALN. Repaso matrices. In. Co. Facultad de Ingeniería Universidad de la República

Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela

Adaptación: Julio J. Águila G. 1 Autores: Enriques Arias 2, Diego Cazorla 1

FLAG/C. Una API para computación matricial sobre GPUs. M. Jesús Zafont Alberto Martín Francisco Igual Enrique S. Quintana-Ortí

Luis P. García González Servicio de Apoyo a la Investigación Tecnológica. Universidad Politécnica de Cartagena

2. Problemas. Espacios Vectoriales. Álgebra Lineal- Propedéutico Mayo de 2012

Utilización de CLAPACK Para Resolver Sistemas de Ecuaciones Lineales Mediante Paralelismo y Optimización de Memoria

Medición del rendimiento

cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Algebra lineal. CURSO ACADÉMICO - SEMESTRE Primer semestre

PLAN DE ESTUDIOS 1996

HPC: Aplicaciones y Software

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Álgebra lineal Prof: Leonid Fridman

Matemáticas II. Prácticas: Matrices y Determinantes ; C = 1 3 5

Microprocesadores para comunicaciones. Escuela Técnica Superior de Ingenieros de Telecomunicación. Organización y estructura de las memorias caché

Arquitectura de Computadoras

TEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I)

Estructura de Computadores

Taller de Programación Paralela

Modos de Direccionamiento

TEMA 5. RECTAS Y PLANOS. INCIDENCIA.

Incremento del reuso de datos de códigos dispersos en arquitecturas SMT

Modelo de von Neumann

ALN - SVD. In. Co. Facultad de Ingeniería Universidad de la República

MAGMA. Matrix Algebra on GPU and Multicore Architecture. Ginés David Guerrero Hernández

Matrices. Álgebra de matrices.

CONTENIDOS MATEMÁTICAS II SEGUNDA EVALUACIÓN CURSO 2017/2018 MATRICES

Códigos de Química Computacional en el CESGA (Gaussian, GAMESS, NWCHEM)

Tema 5 Jerarquía de Memoria

Fecha de elaboración: Agosto de Fecha de última actualización: Julio de 2010.

Tipos De Procesadores

2. INSTALACIÓN DE LAS HERRAMIENTAS DE DESARROLLO CUDA

Una forma fácil de recordar esta suma (regla de Sarrus): Primero vamos a estudiar algunas propiedades de los determinantes.

GRADO: Ingeniería en Tecnologías Industriales CURSO: 1º CUATRIMESTRE: 1º

Procesadores intel 286, 386, 486, 586, 686.,intel pentium I,II,III,IV procesadores AMD athlon, athlon 64, athlon xp, duron, opteron, sempron, amd64

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Algebra lineal. CURSO ACADÉMICO - SEMESTRE Primer semestre

Utilización y optimización de librerías numéricas paralelas

MATRIZ Una matriz de orden (tamaño) mxn sobre el campo de los complejos es un arreglo rectangular de la forma a 11 a 12 a 1n a ] a m1 a m2 a mn

INSTITUTO POLITECNICO NACIONAL

POWER PC. Indice ARQUITECTURA DE COMPUTADORES. Antonio del Amo Ruiz. 1. Introducción. 2. Tecnología RISC. 3. Arquitectura de la CPU Power PC

Tema 1: Matrices. El concepto de matriz alcanza múltiples aplicaciones tanto en la representación y manipulación de datos como en el cálculo numérico.

Una matriz es una tabla ordenada (por filas y columnas) de escalares a i j de la forma: a

Modelos de Programación Paralela

Estructura y tecnología de computadores - prácticas en ensamblador

SISTEMAS OPERATIVOS Arquitectura de computadores

Organización del Computador I. Introducción e Historia

Arquitectura de Computadoras

Álgebra Lineal Grupo A Curso 2011/12. Espacios vectoriales. Bases...

Contenidos del Curso. Arquitectura de Computadores. Organización de un Sistema computacional

ESPACIOS Y SUBESPACIOS VECTORIALES

INFORMATICA III. Cap. I: Plataformas

A.M. Urbano, R. Cantó, B. Ricarte Institut de Matemàtica Multidisciplinar, Universitat Politècnica de València, E Valencia

Tema 5 Jerarquía de Memoria

TEMA 3 PROCESADORES VECTORIALES

ANX-PR/CL/ GUÍA DE APRENDIZAJE

1.- Definir: Vectores linealmente dependientes y Sistemas ligados.

102 EJERCICIOS DE ALGEBRA LINEAL por Francisco Rivero Mendoza Ph.D.

Métodos Estadísticos Multivariados

Costos del Cómputo Paralelo en Clusters Heterogéneos

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Operaciones con matrices

Capítulo 2: Multiplicación de Matrices

Matrices ortogonales y descomposición QR

Aproximación discreta de mínimos cuadrados con lapack

Clase No. 13: Factorización QR MAT 251. Joaquín Peña (CIMAT) Métodos Numéricos (MAT 251) / 16

Optimización de Rutinas Multinivel de Álgebra Lineal en Sistemas Multicore

Cuestiones de Álgebra Lineal

Resolución de Sistemas de Ecuaciones Lineales Banda Sobre Procesadores Actuales y Arquitecturas Multihebra. Aplicaciones en Control

Práctica 1 Parte 2: Masa-Muelle y ODEs (Bloque OPCIONAL) (Asignación 19 de Febrero; Entrega 25 de Febrero a las 23:59)

Javier Pérez Mato µp para Comunicaciones Curso 2008/09 ETSIT - ULPGC

ESCUELA COLOMBIANA DE INGENIERÍA

Análisis de Paralelización con Memoria Compartida y Memoria Distribuida en Clusters de Nodos con Múltiples Núcleos

ANX-PR/CL/ GUÍA DE APRENDIZAJE

Programación de Sistemas. Mtro. en IA José Rafael Rojano Cáceres

Tema 1. Espacios Vectoriales. Sistemas de ecuaciones.

Universidad Nacional de Ingeniería Facultad de Ciencias. Física Computacional CC063. Algebra Lineal. Prof: J. Solano 2012-I

1. Necesidades del comprador: COMPUTADOR PERSONAL Y DE OFICINA PROCESADORES, MEMORIAS RAM, ROM, DISCO DURO, CACHÉ, TARJETAS, IMPRESORAS

OBJETIVOS DE APRENDIZAJE EJERCICIO 5.1 EDADES Y ALTURAS

Medición del Rendimiento de Computadores

Una Aproximación de Alto Nivel a la Resolución de Problemas Matriciales con Almacenamiento en Disco

Transformaciones lineales

El álgebra de las matrices Suma y producto por un escalar Producto de matrices Propiedades y ejemplos

Contenidos: Definiciones:

Espacios Vectoriales, Valores y Vectores Propios

2. Álgebra matricial. Inversa de una matriz O B 1 O B 1. Depto. de Álgebra, curso

Matrices y Determinantes. Prof. Nilsa I. Toro Catedrática Recinto Universitario de Mayagüez Residencial - AFAMaC

Práctica 2: Representación de datos y ajuste de curvas

Sistema de Ecuaciones Lineales

CARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA. Autor ERIKA VIVIANA RIAÑO BEJAR

Transcripción:

Basic Linear Algebra Subprograms () Avances en la Generación de Bibliotecas de Álgebra Lineal Universidad Politécnica de Valencia Marzo, 2006

Índice Qué es la biblioteca? Organización de Funcionalidad de Prestaciones de -2-3 Optimización del producto de matrices Fuentes de información

Qué es la Biblioteca? En la base de los problemas de Álgebra lineal pueden identificarse un conjunto de operaciones numéricas básicas como, por ejemplo: Cálculo de la norma de un vector, Resolución de un sistema triangular de ecuaciones, Producto de matrices, etc. (Basic Linear Algebra Subprograms) es un conjunto de núcleos (rutinas) computacionales escritos en Fortran 77 para operaciones básicas del Álgebra lineal

Qué es la Biblioteca? Las especificaciones (interfaces y funcionalidad) de los núcleos de se han convertido en estándares de facto. Ejemplo: Cálculo de la norma de un vector FUNCTION xnrm2( N, X, INCX ) Implementación de referencia http://www.netlib.org/blas

Qué es la Biblioteca? Si la mayor parte de los cálculos se realizan en forma de las operaciones del, su optimización redunda en una reducción del tiempo de la resolución de las aplicaciones Existen implementaciones de optimizadas por los propios fabricantes: ACML de AMD, Velocity Engine de Apple, libsci de Cray, MLIB de HP, ESSL de IBM, MKL de Intel, PDLIB/SX de NEC, SCSL de SGI, Sun Performance Library de SUN, etc.

Qué es la biblioteca?...aunque también existen otras implementaciones eficientes Implementación portable: ATLAS Goto para Intel Pentium/IA-64, Alpha EV, SPARC, IBM PowerPC, AMD Opteron, etc. Además, algunas implementaciones proporcionan paralelismo a nivel de threads para arquitecturas con memoria compartida (espacio de direccionamiento único): MKL de Intel Goto para Intel ATLAS, etc.

Qué es la biblioteca? constituye la interfaz entre las bibliotecas y aplicaciones numéricas de alto nivel y la arquitectura subyacente Aplicaciones Optimizaciones independientes de la arquitectura LAPACK Optimizaciones dependientes de la arquitectura Proc.

Qué es la biblioteca? define la especificación de las rutinas: Interfaz FUNCTION xnrm2( N, X, INCX ) Funcionalidad Cálculo de la norma de un vector Revisaremos la funcionalidad ofrecida por. Las interfaces de las rutinas se verán en la parte práctica

Organización de -1 Operaciones básicas sobre escalares y vectores Caracterización: O(n) cálculos sobre O(n) datos Ejemplo: Cálculo de la norma de un vector -2 Operaciones básicas de tipo matriz-vector Caracterización: O(n 2 ) cálculos sobre O(n 2 ) datos Ejemplo: Resolución de un sistema triangular de ecuaciones -3 Operaciones básicas de tipo matriz-matriz Caracterización: O(n 3 ) cálculos sobre O(n 2 ) datos Ejemplo: Producto de matrices

Funcionalidad de -1. Operandos: a R, x, y R n Operaciones de reducción Producto escalar a x T y Norma vectorial a x 2 a x i Suma Máximo a max x i Generación de transformaciones Rotaciones de Givens Operaciones vectoriales Escalado de un vector x a x AXPY y a x y Aplicación de una rotación de Givens Movimientos de datos Copia x y Intercambio x y

Funcionalidad de -2. Operandos: Producto matriz-vector a R, x R n, y R m, f A R mxn, T R nxn triangular, f M =M o M T y ya f A x Actualizaciones de rango 1(y 2) A Aayx T Resolución de sistemas triangulares lineales x f T 1 x

Funcionalidad de -3. Operandos: a,b R, f A R mxk, f B R kxn,c R mxn T R mxm triangular, f M =M o M T Producto de matrices C acb f A f ' B Actualizaciones de rango k C C af A f A T, C=C T, m=n Resolución de sistemas triangulares lineales múltiples B f T 1 B, m=k B B f T 1, m=n

Funcionalidad de Tipos de datos Simple precisión (IEEE 754 32 bits) Doble precisión (IEEE 754 64 bits) Reales Complejos

Funcionalidad de Tipos de matrices General Simétrica/ Hermitiana Triangular Densa Banda Formatos empaquetados disponibles Sólo una mitad almacenada

Prestaciones Plataforma: Procesador: Memoria: Biblioteca : Intel Xeon 2.4 GHz 512 KB de caché L2 y 1 GB de RAM Goto 0.96st Compilador: gcc 3.3.5; optimización -O3 S.O.: Linux 2.4.27 Parámetro de rendimiento: MFLOPs Velocidad pico teórica: 4800 MFLOPs

Prestaciones: -2 Qué pasa desde n=220?

Prestaciones: -2 Qué pasa desde n=220? Una matriz nxn de números en doble precisión, con n=220 ocupa 220x220x8 = 387.200 Bytes...... y la memoria caché de segundo nivel del procesador es de tamaño 512 Kbytes

Prestaciones: -3

Prestaciones: -3 Por qué 480 Mflops para dgemv y 4000 Mflops para dgemm? La justificación viene de los ratios entre cálculo (flops) y movimientos de datos (memops) dgemv: 2 n 2 n 2 flops memops =2 Necesitamos una memoria capaz de suministrar datos al procesador a la mitad de velocidad que éste realiza los cálculos! dgemm: 2 n 3 6 n 2 flops memops = n 3 A medida que crece el tamaño del problema, la velocidad de la memoria se vuelve menos importante!

Optimización del Producto de Matrices Consideraremos el producto general C = C + A B con todas las matrices cuadradas de la misma dimensión

Optimización del Producto de Matrices La operación puede implementarse de 3 formas diferentes GEPP C = C + A B GEMP C = C + A B GEPM C = C + A B

Optimización del Producto de Matrices Consideremos la implementación de GEPP C = C + A B Ésta, a su vez, puede implementarse de dos modos diferentes GEPB C = C + A B GEBP C = C + A B

Optimización del Producto de Matrices Por último, consideremos GEBP C = C + A B y supongamos que: C es m c x n, A es m c x k c y B es k c x n Las dimensiones permiten que A y sendas columnas de B y C residan en la caché Disponemos de una implementación capaz de calcular dgemv a la máxima velocidad del procesador si la matriz y los vectores residen en la caché Si A está en la caché, entonces permanece allí hasta que ya no sea necesaria

Optimización del Producto de Matrices Entonces, podemos implementar GEBP como una secuencia de dgemv C = C + A B con los siguientes costes: Cargar A (m c x k c ) en la caché: m c k c memops Cargar los pares de columnas de C y B en la caché: (m c +k c )n memops Almacenar las columnas modificadas de C en la memoria: m c n memops Calcular los productos matriz-vector: 2m c k c n flops

Optimización del Producto de Matrices Sea c m c k c ; entonces el ratio entre cálculo y movimientos de datos es de: 2c 2 n c 2 3cn Así, si c n/100, incluso si las operaciones con memoria son 10 veces más lentas que los cálculos, estas operaciones únicamente añaden un 10% de sobrecoste al total

Fuentes de Información: www, google,... Sitio en netlib: http://www.netlib.org/blas Basic Linear Algebra Subprograms Technical (T) Forum Standard, 2001: http://www.netlib.org/blas/blast-forum quick reference: http://www.netlib.org/blas/blasqr.pdf FAQs: http://www.netlib.org/blas/faq.html de referencia: http://www.netlib.org/blas/blas.tgz

Fuentes de Información: www, google,... Definición de núcleos del Álgebra lineal del -1 (http://www.acm.org/toms) R.J. Hanson, F.T. Krogh, C.L. Lawson. A proposal for standard linear algebra subprograms. ACM Signum Newsletter, 8:16, 1973. C.L. Lawson, R.J. Hanson, D. Kincaid, F.T. Krogh. Basic Linear Algebra Subprograms for FORTRAN usage. ACM TOMS, 5:308-323, 1979

Fuentes de Información: www, google,... Definición de núcleos del Álgebra lineal del -2 y -3 (http://www.acm.org/toms) J.J. Dongarra, J. Du Croz, S. Hammarling, R.J. Hanson. An extended set of FORTRAN basic linear algebra subprograms. ACM TOMS, 14:1-32, 1988 J.J. Dongarra, J. Du Croz, I.S. Duff, S. Hammarling. A set of level 3 basic linear algebra subprograms. ACM TOMS, 16:1-28, 1988

Fuentes de Información: www, google,... Implementaciones optimizadas de ATLAS: http://math-atlas.sourceforge.net/ Goto: http://www.tacc.utexas.edu/resources/software MKL de Intel: http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl Implementación eficiente del producto de matrices: http://www.cs.utexas.edu/users/flame Laboratorio del curso