Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria...

22
Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas

Transcript of Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria...

Page 1: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida 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

Page 2: 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.

Page 3: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

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.

Page 4: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

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,Nx

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

Page 5: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

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

fin-desde

fin-desde

Page 6: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Implementación 1-D

• Costo: O(N3/P).• Cantidad de Hilos: 4

A1,1 A1,2 A1,3 A1,4 B1,1 B1,2 B1,3 B1,4 P1 P1 P1 P1

A2,1 A2,2 A2,3 A2,4x

B2,1 B2,2 B2,3 B2,4=

P2 P2 P2 P2

A3,1 A3,2 A3,3 A3,4 B3,1 B3,2 B3,3 B3,4 P3 P3 P3 P3

A4,1 A4,2 A4,3 A4,4 B4,1 B4,2 B4,3 B4,4 P4 P4 P4 P4

A5,1 A5,2 A5,3 A5,4 P4 P4 P4 P4

Page 7: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Implementación 2-D

• Costo: O(N3/P).• Cantidad de Hilos: 4.

A1,1 A1,2 A1,3 A1,4 B1,1 B1,2 B1,3 B1,4 B1,5 C1 C1 C2 C2 C2

A2,1 A2,2 A2,3 A2,4XB2,1 B2,2 B2,3 B2,4 B2,5

=C1 C1 C2 C2 C2

A3,1 A3,2 A3,3 A3,4 B3,1 B3,2 B3,3 B3,4 B3,5 C3 C3 C4 C4 C4

A4,1 A4,2 A4,3 A4,4 B4,1 B4,2 B4,3 B4,4 B4,5 C3 C3 C4 C4 C4

A5,1 A5,2 A5,3 A5,4 C3 C3 C4 C4 C4

Page 8: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (1)Secuencial vs Concurrencia 1-D (4 hilos)

0

20000

40000

60000

80000

100000

120000

0 500 1000 1500 2000

Tamaño de Matriz

Tie

mp

o P

rom

edio

Tiempo (Secuencial) Tiempo (4 hilos)

Page 9: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (2)Secuencial vs Concurrencia 2-D (4 hilos)

0

20000

40000

60000

80000

100000

120000

0 500 1000 1500 2000

Tamaño de Matriz

Tie

mp

o P

rom

edio

Tiempo (Secuencial) Tiempo (4 hilos)

Page 10: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (3)Secuencial vs Concurrencia 1-D (9 hilos)

0

20000

40000

60000

80000

100000

120000

0 500 1000 1500 2000

Tamaño de Matriz

Tie

mp

o P

rom

edio

Tiempo (Secuencial) Tiempo (9 hilos)

Page 11: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (4)Secuencial vs Concurrencia 2-D (9 hilos)

0

20000

40000

60000

80000

100000

120000

0 500 1000 1500 2000

Tamaño de Matriz

Tie

mp

o P

rom

edio

Tiempo (Secuencial) Tiempo (9 hilos)

Page 12: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (5)Secuencial vs Concurrencia 1-D (16 hilos)

0

20000

40000

60000

80000

100000

120000

0 500 1000 1500 2000

Tamaño de Matriz

Tie

mp

o P

rom

edio

Tiempo (Secuencial) Tiempo (16 hilos)

Page 13: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (6)Secuencial vs Concurrencia 2-D (16 hilos)

0

20000

40000

60000

80000

100000

120000

0 500 1000 1500 2000

Tamaño de Matriz

Tie

mp

o P

rom

edio

Tiempo (Secuencial) Tiempo (16 hilos)

Page 14: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (7)Tiempo de Creación de Hilos en 1-D

0102030405060708090

0 2 4 6 8 10 12 14 16 18

Cantidad de Hilos

Tie

mp

o (

mse

g)

Tiempo de Creación (Prom)

Page 15: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (8)Tiempo de Creación de Hilos en 2-D

010

2030

4050

6070

8090

0 2 4 6 8 10 12 14 16 18

Cantidad de Hilos

Tie

mp

o (

mse

g)

Tiempo de Creación (Prom)

Page 16: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (8)Tiempo de Creación de un Hilo en 1-D

(Prom)

0

2

4

6

8

10

0 2 4 6 8 10 12 14 16 18Hilos Creados

Tie

mp

o d

e u

n h

ilo

(mse

g)

Tiempo de creación de un Hilo (Prom)

Page 17: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (9)Tiempo de Creación de un Hilo en 2-D

(Prom)

0

2

4

6

8

10

0 2 4 6 8 10 12 14 16 18

Hilos Creados

Tie

mp

o d

e u

n h

ilo

(mse

g)

Tiempo de creación de un Hilo (Prom)

Page 18: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (10)Aceleración del Algoritmo 1-D

0

2

4

6

8

10

0 200 400 600 800 1000 1200 1400 1600 1800Tamaño de matriz

Ace

lera

ció

n

Alg. 1-D (4 hilos) Alg. 1-D (9 hilos) Alg. 1-D (16 hilos)

Page 19: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

Resultados (11)Aceleración del Algoritmo 2-D

0

2

4

6

8

10

0 200 400 600 800 1000 1200 1400 1600 1800Tamaño de matriz

Ace

lera

ció

n

Alg. 2-D (4 hilos) Alg. 2-D (9 hilos) Alg. 2-D (16 hilos)

Page 20: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

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.

Page 21: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

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)

Page 22: Implementación de Algoritmos de Multiplicación de Matrices Densas utilizando hilos y memoria compartida Integrantes: Germán Hüttemann Marcelo Rodas.

GRACIAS POR LA ATENCIÓN¿Preguntas?