ALN - Formatos dispersos



Documentos relacionados
ALN - Formatos dispersos. In. Co. Facultad de Ingeniería Universidad de la República

Computación Matrices dispersas

Fundamentos de Matemática Aplicada. (Prácticas)

1. Manejo de memoria estática 2. Manejo de memoria dinámica

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Programación Avanzada para Sistemas de Telecomunicación Arrays

MATLAB: Introducción al procesamiento de imágenes

Capítulo 12: Indexación y asociación

ESTRUCTURA DE DATOS: ARREGLOS

by Tim Tran:

Organización Básica de un Computador y Lenguaje de Máquina

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

MATLAB en 30 minutos

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Ingeniería Superior de Informática

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Ejercicios de fundamentos de los computadores

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Sistemas de Archivos Implementación. Módulo 11. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Proyecto de Diseño # 3 DISEÑO E IMPLEMENTACIÓN DE SISTEMAS ARITMÉTICOS MATERIAL ADICIONAL

Estructura de Datos. Unidad I Tipos de Datos

Arrays y Cadenas en C

Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato

Desarrolle diagramas de flujo y programas que resuelvan los siguientes ejercicios:

Modulo 1 El lenguaje Java


Photoshop. Conceptos Básicos

Introducción al tipo de dato ARRAY

Academia técnica de computación A.T.C.

MICROSOFT EXCEL Introducción: Qué es y para qué sirve Excel2007? TECNOLOGIA/ INFORMATICA: MS-EXCEL

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010

Valores y vectores propios de una matriz. Juan-Miguel Gracia

Tema 1: Implementación del sistema de archivos

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Taller de Programación I. Tema 04: Arreglos y Matrices en Java

Tema 2. Espacios Vectoriales Introducción

Algorítmica y Lenguajes de Programación. MATLAB (i)

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

MODELOS DE RECUPERACION

UNIVERSIDAD DE SALAMANCA

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

PRÁCTICA 1. Grupo de Visión Artificial. David García Pérez

Sistema de Ficheros. Sistemas Operativos - ITIG. Álvaro Polo Valdenebro. Abril apoloval@gsyc.es. GSyC Introducción 1

Computación I Representación Interna Curso 2011

MANUAL DE USUARIO CMS- PLONE

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Computación archivos

Análisis de los datos

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

Procesamiento Digital de Imágenes. Compresión de imágenes

PRACTICA 6. VECTORES Y MATRICES.

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

Subespacios vectoriales en R n

Cursada Primer Semestre 2015 Guía de Trabajos Prácticos Nro. 2

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.

Software de Simulación aplicado a entornos de e-learning

Cálculo científico y técnico con HP49g/49g+/48gII/50g Módulo 3: Aplicaciones Tema 3.7 Polinomio interpolador

Introducción a Computación

Módulo II - PowerPoint

Índices de RI. UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides

Técnicas empleadas. además de los discos las controladoras.

Álgebra Lineal Tutorial básico de MATLAB

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes:

ARREGLOS DEFINICION GENERAL DE ARREGLO

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Comenzando con MATLAB

Práctica 7. TAD aplicación

1. INVERSA DE UNA MATRIZ REGULAR

Base de datos en Excel

GUÍA DE TRABAJO N 2 ARREGLOS EN C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8. Tema: ARREGLOS (ARRAYS) LENGUAJE C#

11. Algunas clases estándar de Java (II)

Organización de Computadoras. Turno Recursantes Clase 8

Tema 3: Vectores y matrices. Conceptos básicos

www Banners

Práctica 0. Emulador XENON de la computadora CESIUS

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

2 Matrices. 1. Tipos de matrices. Piensa y calcula. Aplica la teoría

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006

Finanzas de Empresas Turísticas

Diagonalización de matrices

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

Tema 9. Vectores y Matrices

Relaciones entre Tablas en una Base de Datos Access

FACULTAD DE INGENIERÍA, U.B.A. Seminario de Sistemas Embebidos TRABAJO PRÁCTICO 0

Introducción a la estadística y SPSS

UNIVERSIDADES DE ANDALUCIA PRUEBAS DE ACCESO A LA UNIVERSIDAD. Miguel A. Jorquera

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Convivencia. Gestión del Sistema de Archivos

Trabajo Práctico Introductorio Matlab, Simulink y Métodos de Integración Numérica

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

>> % suma de dos números reales, el resultado se asigna a ans

PART II: Moviendo al jugador

TEMA 1 Representación de la información

Representación de Datos. Representación de datos numéricos. Representación de datos caracteres. Representación de otros tipos de datos

PROPORCIONALIDAD - teoría

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

Transcripción:

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

Temario Matrices dispersas Motivación e historia Formatos estáticos Formatos dinámicos Otros formatos Versión 1.0 2

Motivación La resolución de una gran cantidad de problemas ingnieriles involucra la utilización de matrices. Mejorar la precisión de la resolución de diversos problemas implica aumentar el tamaño de las matrices involucradas. Versión 1.0 3

Motivación Situación: Matrices muy grandes Previsible gran porcentaje de valores = 0 Se busca una forma de representar esas matrices que cueste menos memoria y permita acelerar los cálculos. Versión 1.0 4

Representación en memoria de una matriz convencional La memoria es una secuencia de bits 1 2 3 4 5 6 7 8 9 10 11 Si tenemos matriz( n, m) de reales de 4 Bytes Trabajando en lenguajes como C que almacena por fila ( Fortran por columna ). La posición en bits de la celda (i, j) en la memoria es: inicio_matriz + ((( i 1) * m ) + j ) * (4 * 8) Versión 1.0 5

Matrices convencionales Las matrices son naturalmente muy eficientes en el uso de memoria -para almacenar datos- y de procesador -para accederlos-. Versión 1.0 6

Matrices dispersas Definición (informal) Es aquella que está compuesta por muchos elementos de valor = 0. Versión 1.0 7

Matrices dispersas Definición demasiado informal!!!! Que significa muchos?!??! Depende problema estructura Versión 1.0 8

Historia Algo de historia El considerado pionero en la utilización de matrices dispersas es Ralph A. Willoughby (1923-2001). Trabajando para resolver problemas de circuitos en laboratorios de IBM a fines de los 50 s. Versión 1.0 9

Historia Algo de historia 1968, el primer congreso sobre utilización de matrices dispersas (IBM T.J. Watson Research Center) 1975, segundo (Argonne National Laboratory ) 1976, Artículo relevamiento I. Duff (aprox. 600 trabajos referenciados).. a la fecha crecimiento substancial del área en la computación científica Versión 1.0 10

Matrices dispersas En esta clase nos preocupa el uso de memoria en las matrices dispersas (en el resto del curso los cálculos). Eventualmente se podría definir como dispersa con respecto a otro valor distinto de 0 (para almacenar). Versión 1.0 11

Representación matrices dispersas Debemos tratar de preservar los principios de economía: Mínimo consumo de memoria Mínimo uso de procesador tiempo para acceder a los datos tiempo de cálculos Localidad de datos Versión 1.0 12

Matrices dispersas Dos grandes familias de estrategias para almacenamiento para matrices dispersas: formatos estáticos: Útiles cuando se conoce la estructura de la matriz, o cuando esta se genera en una única ocasión. formatos dinámicos: Cuando la estructura de la matriz dispersa cambia en forma continua. Versión 1.0 13

Formatos estáticos Simple o elemental (coordinate) Comprimido por fila (CRS) Comprimido por columna (CCS) Comprimido por fila a bloque (BCRS) Comprimido por diagonales (CDS) Jagged diagonal scheme and skyline Versión 1.0 14

Formatos estáticos Formato simple o elemental 3 vectores Vector_f (fila) Vector_c (columna) Vector_d (dato) Versión 1.0 15

Formatos estáticos Formato simple o elemental Memoria utilizada para almacenar una matriz de dimensiones n x n y nz elementos distintos de cero?? nz datos (pto. flotante doble prec.) nz*8 nz para col, enteros nz*[2,4] (32768, 2.1475e+09) nz para filas, enteros nz*[2,4] nz*8*2 Versión 1.0 16

Formatos estáticos Ventajas intuitivo se utilizan estructuras del mismo tamaño es igual si queremos acceder por fila que por columna Desventajas utiliza más memoria que otras implementaciones acceder por fila o columna es más difícil que en otros formatos Versión 1.0 17

Formatos estáticos Formato CSR- (Compressed Sparse Row) o CRS Vector_f ( columna ) Vector_c ( índice de cada nueva fila ) Vector_d ( dato ) Versión 1.0 18

Formatos estáticos Formato CRS Versión 1.0 19

Formatos estáticos Formato CRS Un vector de punto flotante de tamaño nz en el que se almacenan los valores de los coeficientes. Otro vector de tamaño nz en el que se almacenan los números de columna de los elementos distintos de cero. Un vector de tamaño n+1 siendo n la cantidad de filas de la matriz, en el cual se almacena la posición de la primera ocurrencia de cada fila Versión 1.0 20

Formatos estáticos Formato CRS Memoria necesaria para almacenar?? nz * 8 nz * [2,4] (n+1) * [2,4] 12*nz + 4*(n+1) Versión 1.0 21

Formatos estáticos CRS Ventajas utiliza menos memoria que otras estrategias es fácil acceder a una fila completa Desventajas no se utilizan estructuras del mismo tamaño es difícil acceder a una columna completa Versión 1.0 22

Formatos estáticos Formato CSC (Compressed Sparse Column) o CCS Igual al CRS pero almacena por columna Es el formato que emplea MatLab!!! Versión 1.0 23

Formatos estáticos Comprimido por bloque de filas (BCRS) Si la matriz se puede almacenar como subbloques regulares Se utilizan los almacenamientos CRS o CCS pero accediendo a los valores según el subbloque Versión 1.0 24

Formatos estáticos Comprimido por bloques de filas (BCRS) Matriz de nxn, con nnzb bloques de dimensión nb Tres vectores : punto flotante val(nnzb x nb x nb) enteros col(1:nnzb) enteros bloque_fila(nd+1) nd = (n/nb) Versión 1.0 25

Versión 1.0 26

Formatos estáticos Comprimido por bloque de columnas (BCRS) Ventajas: Mejora el tiempo de acceso a los bloques Puede ser necesario almacenar 0 para respetar los tamaños de bloque Desventajas: Sirve solo si la matriz posee bloques regulares Versión 1.0 27

Formatos estáticos Comprimido por diagonales (CDS) Se almacena una matriz rectangular con las diagonales. Versión 1.0 28

Formatos estáticos Jagged Diagonal Storage Versión 1.0 29

Versión 1.0 30

Formatos estáticos (Historia) Bit Map 1 1 0 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 Versión 1.0 31

Formatos dinámicos Utilizan herramientas de almacenamiento dinámico (punteros) Listas enlazadas Vectores de listas Versión 1.0 32

Formatos dinámicos LLRCS LLRS LLCS Versión 1.0 33

Formatos dinámicos LLRCS ( Linked List Row-Column Storage) Se utiliza una multi-estructura bidimensional. Dos vectores de tamaño filas y columnas, cada entrada: un puntero para recorrer la fila correspondiente un puntero para recorrer la columna correspondiente Cada elemento guarda: Valor, fila, columna, al siguiente en la fila y en la columna. Memoria para nz coeficientes no nulos: nz * (1 flotante + 2 punteros + 2 enteros) + 2*n punteros Versión 1.0 34

Formatos dinámicos LLRS (Linked List Row Storage ) Estructura unidimensional de tamaño igual a la cantidad de filas, de cada posición se puede obtener la lista de entradas de esa fila. Memoria para nz coeficientes no nulos: nz punto flotantes nz enteros 2*nz punteros (o nz) el vector de entrada (n punteros). Versión 1.0 35

Formatos dinámicos LLCS (Linked List Column Storage ) Estructura unidimensional de tamaño igual a la cantidad de columnas, de cada posición del vector se puede obtener la lista de coeficientes no nulos de esa columna. Posee las mismas necesidades de memoria que LLRS. Versión 1.0 36

Otros formatos Formatos compuestos: guardar la diagonal por un lado y el resto por separado Versión 1.0 37

Otros formatos formatos multi-nivel: estructuras tipo árbol UB-tree, BUB-tree, R-tree, R*-tree, etc trasladando ideas de índices, imágenes y otros. Versión 1.0 38

Otros. Java Sparse Array (JSA) Versión 1.0 39