Multiplicación de matrices dispersas Alumno: Irene Sánchez Linares
Índice Descripción del problema Representación Algoritmo secuencial Esquemas algorítmicos Elección del esquema OpenMP MPI Estudio experimental
Descripción del problema Una matriz dispersa es una matriz en la que la mayoría de sus elementos son nulos. Vamos a suponer que más del 80%. Tipos de matrices: Estructuradas No estructuradas Multiplicación de matrices: Sean A (n x l) y B (l x m) dos matrices, entonces cada elemento c ij de la matriz resultante se calcula como:
Representación Matriz completa. Esquema coordenado arrays de n elementos: elementos columnas filas ( row CSR (Compressed sparse arrays de n elementos: Elementos Columnas array de tamaño nº de filas: Filas fila(0) = 0; fila(i+) fila(i) = nº elementos en la fila i (... DNS, Muchos más... (CSC, DIA, BND,
Representación La matriz A en formato CSR La matriz B traspuesta y en formato CSR La matriz C: Secuencial: formato CSR Paralelo: formato coordenado
Algoritmo secuencial Es el mismo que para matrices densas pero adaptado. Sólo se multiplica cuando el segundo operando está en la misma fila que columna el primer operando. Se empieza una nueva columna cuando no quedan elementos en la fila de A o en la columna de B. 5
Algoritmo secuencial Es el mismo que para matrices densas pero adaptado. Sólo se multiplica cuando el segundo operando está en la misma fila que columna el primer operando. Se empieza una nueva columna cuando no quedan elementos en la fila de A o en la columna de B. 5
Algoritmo secuencial Es el mismo que para matrices densas pero adaptado. Sólo se multiplica cuando el segundo operando está en la misma fila que columna el primer operando. Se empieza una nueva columna cuando no quedan elementos en la fila de A o en la columna de B. 5 5
Algoritmo secuencial Es el mismo que para matrices densas pero adaptado. Sólo se multiplica cuando el segundo operando está en la misma fila que columna el primer operando. Se empieza una nueva columna cuando no quedan elementos en la fila de A o en la columna de B. 5 5
Algoritmo secuencial Es el mismo que para matrices densas pero adaptado. Sólo se multiplica cuando el segundo operando está en la misma fila que columna el primer operando. Se empieza una nueva columna cuando no quedan elementos en la fila de A o en la columna de B. 5 5
Algoritmo secuencial Es el mismo que para matrices densas pero adaptado. Sólo se multiplica cuando el segundo operando está en la misma fila que columna el primer operando. Se empieza una nueva columna cuando no quedan elementos en la fila de A o en la columna de B. 5 5
Algoritmo secuencial Es el mismo que para matrices densas pero adaptado. Sólo se multiplica cuando el segundo operando está en la misma fila que columna el primer operando. Se empieza una nueva columna cuando no quedan elementos en la fila de A o en la columna de B. 5 5
Esquemas algorítmicos Paralelismo de datos Particionado de datos en memoria distribuida Algoritmo relajado Bolsa de tareas
Elección del esquema: OpenMP Paralelismo de datos a) Repartir la matriz en bloques de filas/p filas. ( filas/p #pragma omp for private(i,j,s) schedule(static, b) Repartir la matriz en filas cíclicamente. ( schedule(static, #pragma omp for private(i,j,s) Mejora el balanceo de la carga respecto al anterior. ( b ( a
Elección del esquema: OpenMP Bolsa de tareas a) Repartir las filas de una en una dinámicamente ( dynamic ) #pragma omp for private(i,j,s) schedule b) Repartir bloques de m filas dinámicamente ( m #pragma omp for private(i,j,s) schedule (dynamic, Ventajas Gestión de la bolsa por parte de OpenMP Proporciona el mejor balanceo posible. Elegimos la bolsa de tareas
Elección del esquema: MPI Particionado de datos Cuántos elementos van a recibir? Depende a) Repartir en bloques de n/p filas. Desbalanceo de la carga. b) Repartir filas cíclicamente. Mejora el balanceo de la carga. Dificultad: distribución de los datos. ( b ( a
Elección del esquema: MPI Bolsa de tareas Ventajas: No empaquetar datos. Mejor balanceo. Inconvenientes: Más comunicaciones y con menos datos. Contención. Terminación: El test es global sincronización. Particionado de datos Bolsa de tareas
Estudio experimental Variando: nº de procesadores p el tamaño original de la matriz N N 000 000 p 8 6 el porcentaje E de elementos no nulos. 5000 E = %, 5%, 0%, 0% Se probará también con matrices estructuradas 0000 00000
Preguntas