Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T7 Alg Multmatr
T7 Alg Multmatr
Multiplicacin de matrices
Nociones
Multiplicacin de matrices
Nociones
bidimensional de nmeros
Matriz n x m n filas y m columnas
Matriz 3 x 4:
1 3 2 2
2 4 6 3
2 7 4 5
de matrices
Se suman los elementos de la misma
posicin en ambas matrices:
1 3 2
3 2 3
4 5 5
3 4 1 + 4 1 2 = 7 5 3
1 1 2
1 2 2
2 3 4
de matrices
Sean A (n x l) y B (l x m) dos matrices,
entonces cada elemento cij de la matriz
resultante se calcula como:
c11 1*1 2 * 2 5
1 2
5 3 11
1 1 3
4 2 8
0 2 *
2
1
4
8 5 18
2 3
Tambin
Multiplicacin de matrices
Nociones
Algoritmo secuencial
Multiplicacin de matrices
Nociones
Algoritmo paralelo
Podemos
Multiplicacin de matrices
Nociones
Submatrices
Si
Multiplicacin de matrices
Nociones
Implementacin directa
Con
Implementacin directa
Anlisis
de comunicaciones
Cada uno de los n2 procesadores recibe una fila
de A y una columna de B, y devuelve un
elemento:
tcom n 2 (t startup 2nt data ) n 2 (t startup t data )
n 2 ( 2t startup (2n 1)t data )
Mediante
Implementacin directa
Anlisis
de computacin
Cada procesador realiza n multiplicaciones y
n sumas, por lo que tenemos:
tcomp 2n
Usando
Implementacin directa
Clculo
x
+
x
+
Multiplicacin de matrices
Nociones
de comunicaciones
Cada uno de los s2 procesadores recibe
una fila de submatrices de A y una
columna de submatrices de B, y
devuelve una submatriz:
tcom s 2 (t startup 2 sm 2t data ) s 2 (t startup m 2t data )
s 2 (t startup 2nmt data ) s 2 (t startup m 2t data )
de computacin
Cada procesador realiza s multiplicaciones
y s sumas de submatrices, una
multiplicacin de submatrices necesita m3
multiplicaciones y m3 sumas y una suma
m2 sumas, por lo que en resumen, el
tiempo de computacin es:
tcomp s( 2m 3 m 2 ) O( sm 3 ) O(nm 2 )
Multiplicacin de matrices
Nociones
Implementacin recursiva
La
Multiplicacin de matrices
Nociones
Algoritmo de Cannon
Este
Algoritmo de Cannon
Utiliza
Algoritmo de Cannon
2. La fila i-sima de A se desplaza i
posiciones a la izquierda, y la columna jsima de B se desplaza j posiciones
hacia arriba, y todo esto teniendo en
cuenta que el elemento que sale por un
extremo entra por el otro. Con este paso
se consigue que el procesador P ij
contenga los elementos aij+i y bi+jj, que
son necesarios para calcular c ij.
Algoritmo de Cannon
3. Cada procesador multiplica su par de
elementos.
4. Cada fila de A se desplaza una posicin a
la izquierda, y cada columna de B una
posicin hacia arriba.
5. Cada procesador multiplica su nuevo par
de elementos, y suma el resultado al anterior.
6. Se repiten los pasos 4 y 5 hasta terminar,
es decir n 1 desplazanientos
Algoritmo de Cannon
Ej:
3 2 0 2 0 2 8 8 8
2 1 4 * 1 4 1 17 12 21
3 2 1 3 2 4 11 10 12
Paso 1
3 2 0
2 1 4
3 2 1
Paso 2
2 0 2
1 4 1
3 2 4
3 2 0
1 4 2
1 3 2
2 4 4
1 2 2
3 0 1
Paso 3
3 2 0
1 4 2
1 3 2
2 4 4
1 2 2
3 0 1
6 8 0
1 8 4
3 0 2
Algoritmo de Cannon
Paso 4
2 0 3
4 2 1
3 2 1
1 2 2
3 0 1
2 4 4
6 8 0
1 8 4
3 0 2
1 2 2
3 0 1
2 4 4
8 8 6
13 8 5
9 8 6
Paso 5
2 0 3
4 2 1
3 2 1
Algoritmo de Cannon
Paso 4
0 3 2
2 1 4
2 1 3
3 0 1
2 4 4
1 2 2
8 8 6
13 8 5
9 8 6
Paso 5
0 3 2
2 1 4
2 1 3
3 0 1
2 4 4
1 2 2
8 8 8
17 12 21
11 10 12
Algoritmo de Cannon
Anlisis
de comunicaciones
Los desplazamientos iniciales requieren un
mximo de n-1 desplazamientos, y despus
se realizarn n-1 desplazamientos (uno en
cada paso) por lo que tenemos el siguiente
tiempo de comunicaciones:
Algoritmo de Cannon
En el caso de que estemos trabajando con
submatrices, tenemos s-1 desplazamientos
iniciales como mximo, y s-1
desplazamientos despus, cada uno de ellos
de m2 elementos:
Algoritmo de Cannon
Anlisis de computacin
Cada procesador realiza n multiplicaciones y n-1 sumas
para calcular su elemento de C, lo que implica O (n).
Usando submatrices, cada procesador realiza m 3
multiplicaciones y m 3 sumas por cada multiplicacin, y
m2 sumas por cada suma, y realiza s multiplicaciones y
s-1 sumas:
3 3) = O (nm2)2
Lo
t quedas 2Om(sm
( s 1)m
comp
Multiplicacin de matrices
Nociones
Array sistlico
La
Array sistlico
Array sistlico
Ej:
3 2 0 2 0 2 8 8 8
2 1 4 * 1 4 1 17 12 21
3 2 1 3 2 4 11 10 12
4
2 1
3 4 2
1 0 .
2 . .
0 2 3 0 0 0
4 1 2 . 0 0 0
1 2 3
0 0 0
Array sistlico
Array sistlico
Array sistlico
Array sistlico
Anlisis
de comunicaciones
Se realizan n desplazamientos para que la
ltima fila y ultima columna entren, n1 para
que entre el ltimo elemento y n-1 para que
llegue al final, por lo que tenemos el siguiente
tiempo de comunicaciones:
Array sistlico
Anlisis
de computacin
Cada procesador realiza n
multiplicaciones y n-1 sumas, lo que
nos da un orden de complejidad O (n)
Array sistlico
Multiplicacin
vector:
Esta tcnica puede utilizarse
directamente para multiplicar una
matriz por un vector usando
simplemente un array de 1xn o de nx1,
segn sea el vector.
Multiplicacin de matrices
Nociones
Algoritmo de Fox
Matrices
de tamao n x n
Se particionan a travs de p procesadores.
Hace
Inicialmente
Algoritmo de Fox
Repetir
1.
2.
3.
4.
veces
Algoritmo de Fox
Pasos
Algoritmo de Fox
Tiempo
la computacin.
El tiempo para el broadcast de uno a todos los
bloques de A domina sobre el tiempo para el
cambio en pasos simples de los bloques de B.
Algoritmo de Fox
Si la malla original de procesadores encaja
(ts tw * n / p ) log
2
p
p
(1 / 2)(ts p tw * n /
veces,
p ) log p
Algoritmo de Fox
Y el tiempo de ejecucin paralelo
Multiplicacin de matrices
Nociones
Algoritmo DNS
Debe
Sahni.
Algoritmo
Algoritmo DNS
Algoritmo
Algoritmo DNS
Despus de que cada procesador ejecute
Algoritmo DNS
Tiempo
de ejecucin
Algoritmo DNS
Algoritmo
Algoritmo DNS
1. Cada columna de A se mueve a diferentes
Algoritmo DNS
Despus de esto, cada columna vertical
Algoritmo DNS
Despus de estos pasos de comunicacin,
acumula
el
resultado
de
las
multiplicaciones de los procesadores Pi,j,1,
Pi,j,2,,Pi,j,n-1.
Algoritmo DNS
Algoritmo DNS
Patrn
Algoritmo DNS
Algoritmo DNS
Tiempo
de ejecucin
Algoritmo DNS
CREW
Algoritmo DNS
CREW
B[k,j].
Algoritmo DNS
Algoritmo
Algoritmo DNS
Nmero de procesadores p = q3 para algn q < n.
Las dos matrices se particionan en bloques de
Algoritmo DNS
Tiempo
Algoritmo DNS
La acumulacin de nodo simple final se
Algoritmo DNS
Asumiendo que cada par multiplicacin-suma
Algoritmo DNS
Las expresiones aproximadas para el tiempo de
ejecucin paralelo es
Tp (n / q ) 3 * ts * log q 3 * tw * (n / q ) log q
3
Como : q p1/ 3
Tp (n 3 / p) ts * log p tw * (n 2 / p 2 / 3 ) log p
Coste
n 3 ts * p * log p tw * n 2 * p1/ 3 * log p
El sistema paralelo es de coste ptimo para
n3 = (p log p) para p = (n3 / log n)
Algoritmo DNS
Tiempo
Algoritmo DNS
Sobre una malla tridimensional, el algoritmo de
hipercubo
se
modificaciones.
puede
implementar
sin
Multiplicacin de matrices
Nociones
Mapeo de matrices en
procesadores
Particionamiento
rayado
Particionamiento
de tablero de damas
Mapeo de matrices en
procesadores
Particionamiento
Particionamiento
rayado
de tablero de damas
Particionamiento rayado
Se
Se
Se
Particionamiento rayado
Se
Se
Mapeo de matrices en
procesadores
Particionamiento
rayado
Particionamiento
de tablero de damas
Particionamiento
de tablero de damas
La
Divide
Particionamiento
de tablero de damas
Se
Puede
En
Particionamiento
de tablero de damas
En
Una
Particionamiento rayado
Vs.
de tablero de damas
El
El