Integrantes: Germán Hüttemann Marcelo Rodas Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas
Resumen Motivación. Descripción del Problema. Descripción de la Implementación Secuencial. Descripción de la Implementación 1-D. Descripción de la Implementación 2-D. Resultados Obtenidos. Conclusiones. Trabajos Futuros.
Motivación Multiplicación de Matrices (Ejemplo base). Permite Analizar: Fundamentos de la Paralelización. Resolución de problemas difíciles. Puesta en Práctica de la Teoría.
Descripción del Problema Multiplicación de Matrices. A1,1 A1,2 … A1,N B1,1 B1,2 B1,R C1,1 C1,2 C1,R A2,1 A2,2 A2,N x B2,1 B2,2 B2,R = C2,1 C2,2 C2,R AM,1 AM,2 AM,N BN,1 BN,2 BN,R CM,1 CM,2 CM,R
Implementación Secuencial Costo: O(N3). desde i = fila_inicial hasta (fila_inicial + cantidad_filas) desde j = colum_inicial hasta (colum_inicial + cantidad_columnas) C[i,j] = 0 desde k = 1 hasta (cantidad_filas_de_A o cantidad_columnas_de_B) C[i,j] = C[i,j] + A[i,k] * B[k,j] fin-desde
Implementación 1-D Costo: O(N3/P). Cantidad de Hilos: 4 A1,1 A1,2 A1,3 B1,1 B1,2 B1,3 B1,4 P1 A2,1 A2,2 A2,3 A2,4 x B2,1 B2,2 B2,3 B2,4 = P2 A3,1 A3,2 A3,3 A3,4 B3,1 B3,2 B3,3 B3,4 P3 A4,1 A4,2 A4,3 A4,4 B4,1 B4,2 B4,3 B4,4 P4 A5,1 A5,2 A5,3 A5,4
Implementación 2-D Costo: O(N3/P). Cantidad de Hilos: 4. A1,1 A1,2 B1,1 B1,2 B1,3 B1,4 B1,5 C1 C2 A2,1 A2,2 A2,3 A2,4 X B2,1 B2,2 B2,3 B2,4 B2,5 = A3,1 A3,2 A3,3 A3,4 B3,1 B3,2 B3,3 B3,4 B3,5 C3 C4 A4,1 A4,2 A4,3 A4,4 B4,1 B4,2 B4,3 B4,4 B4,5 A5,1 A5,2 A5,3 A5,4
Resultados (1)
Resultados (2)
Resultados (3)
Resultados (4)
Resultados (5)
Resultados (6)
Resultados (7)
Resultados (8)
Resultados (8)
Resultados (9)
Resultados (10)
Resultados (11)
Conclusiones Nivel de concurrencia está fuertemente ligado al hardware. Con el aumento de los hilos se aumenta la aceleración aproximadamente en la misma proporción.
Trabajo Futuro Encontrar hasta que punto el número de hilos creados sigue sin afectar significativamente al tiempo de ejecución del algoritmo. Plantear un método más eficiente para la asignación de filas y columnas sobrantes. Variedad de tamaños de matrices. Administración razonable de la memoria (matrices grandes)
Gracias por la Atención ¿Preguntas? Gracias por la Atención