Multiplicaci - PowerPoint PPT Presentation

About This Presentation
Title:

Multiplicaci

Description:

Multiplicaci n de matrices Manuel S nchez Cuenca Manolo P rez Hern ndez Multiplicaci n de matrices Nociones b sicas sobre matrices Algoritmo secuencial ... – PowerPoint PPT presentation

Number of Views:38
Avg rating:3.0/5.0
Slides: 88
Provided by: Manu78
Category:

less

Transcript and Presenter's Notes

Title: Multiplicaci


1
Multiplicación de matrices
  • Manuel Sánchez Cuenca
  • Manolo Pérez Hernández

2
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

3
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

4
Nociones básicas sobre matrices
  • Array bidimensional de números
  • 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

5
Nociones básicas sobre matrices
  • Suma de matrices
  • Se suman los elementos de la misma posición 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

6
Nociones básicas sobre matrices
  • Multiplicación 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

7
Nociones básicas sobre matrices
  • Ej
  • También se puede multiplicar una matriz por una
    constante multiplicando todos los elementos por
    dicha constante

8
Nociones básicas sobre matrices
  • Multiplicación de una matriz por un vector
  • Desde el momento que un vector es una matriz con
    una solo fila o una columna, podemos usar el
    algoritmo de multiplicación de matrices.
    Entonces, si el vector B es de la forma n x 1
    podemos multiplicarlo por la matriz A (m x n)
    como A x B y si el vector A es de la forma 1 x n
    podemos multiplicarlo por la matriz B (n x m)
    como A x B.

9
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

10
Algoritmo secuencial
  • Por simplicidad, todo el tiempo trabajaremos con
    matrices cuadradas.
  • for (i 0 i lt n i)
  • for (j 0 i lt n j)
  • cij 0
  • for (k 0 k lt n k)
  • cij aik bkj
  • n3 multiplicaciones y n3 sumas ? O (n3)

11
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

12
Algoritmo paralelo
  • Podemos basarnos en el código secuencial, ya que
    los dos bucles externos son independientes en
    cada iteración.
  • Con n procesadores podemos obtener O (n2)
  • Con n2 procesadores O (n)
  • Estas implementaciones son óptimas en coste, ya
    que O (n3) n x O (n2) n2 x O (n)
  • Estas cálculos no incluyen el coste de las
    comunicaciones.

13
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

14
Submatrices
  • Si tenemos muchos menos de n procesadores, cada
    procesador debe trabajar con un subconjunto de
    cada una de las matrices ? submatrices.
  • Estas submatrices se utilizan como elementos
    normales, pero teniendo en cuenta que
    utilizaremos el algoritmo de multiplicación de
    matrices y de suma de matrices en lugar de la
    multiplicación y la suma de números ?
    implementación recursiva.

15
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

16
Implementación directa
  • Con n2 procesadores, cada procesador calcula un
    elemento de C, por lo que necesita una fila de A
    y una columna de B.
  • Si usamos submatrices, cada procesador deberá
    calcular una submatriz de C.

17
Implementación directa
  • Análisis de comunicaciones
  • Cada uno de los n2 procesadores recibe una fila
    de A y una columna de B, y devuelve un elemento
  • Mediante un broadcast de las dos matrices podemos
    ahorrar tiempo, por ejemplo en un bus tenemos

18
Implementación directa
  • Análisis de computación
  • Cada procesador realiza n multiplicaciones y n
    sumas, por lo que tenemos
  • Usando una estructura de árbol y n3 procesadores
    podemos obtener un tiempo de computación de O
    (log n)

19
Implementación directa
  • Cálculo de c00 para matrices de 4x4 y cálculos en
    estructura de árbol
  • a00 b00 a01 b10 a02 b20 a03 b30
  • x x x x

20
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

21
Implementación con submatrices
  • En cualquiera de los métodos se pueden sustituir
    los elementos de la matriz por submatrices para
    reducir el número de procesadores
  • Con submatrices de m x m y s n/m es como si
    tuviésemos matrices de s x s con submatrices de m
    x m en lugar de elementos simples.

22
Implementación con submatrices
  • Análisis 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

23
Implementación con submatrices
  • Al aumentar el tamaño de las submatrices (y
    disminuir el número de procesadores) el tiempo de
    transmitir un mensaje aumenta pero el número de
    mensajes disminuye, por lo que es posible
    encontrar un valor óptimo del tamaño de la
    submatriz.
  • Además, también es posible hacer un broadcast de
    las dos matrices completas.

24
Implementación con submatrices
  • Análisis de computación
  • Cada procesador realiza s multiplicaciones y s
    sumas de submatrices, una multiplicación de
    submatrices necesita m3 multiplicaciones y m3
    sumas y una suma m2 sumas, por lo que en resumen,
    el tiempo de computación es

25
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

26
Implementación recursiva
  • La división en submatrices sugiere una estrategia
    recursiva de divide y vencerás, que puede ser
    especialmente ventajoso en sistemas de memoria
    compartida.
  • El proceso de dividir una matriz en submatrices
    para repartir el trabajo entre otros procesadores
    debe parar cuando ya no queden procesadores
    libres.
  • La ventaja de esta estrategia es que en cada paso
    de recursión, los datos transmitidos son más
    pequeños y están más localizados.

27
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

28
Algoritmo de Cannon
  • Este algoritmo y el siguiente son especialmente
    apropiados para sistemas de paso de mensajes, y
    la arquitectura de paso de mensajes que más se
    ajusta a las matrices es una malla. Realmente,
    aunque la arquitectura física no sea una malla,
    lógicamente cualquier arquitectura puede
    representarse como una malla.

29
Algoritmo de Cannon
  • Utiliza una malla con conexiones entre los
    elementos de cada lado (toro) para desplazar los
    elementos de A hacia la izquierda y los de B
    hacia arriba.
  • El algoritmo sigue los siguientes pasos
  • 1. El procesador Pij tiene los elementos aij y
    bij.

30
Algoritmo de Cannon
  • 2. La fila i-ésima de A se desplaza i posiciones
    a la izquierda, y la columna j-ésima 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 Pij contenga los
    elementos aiji y bijj, que son necesarios para
    calcular cij.

31
Algoritmo de Cannon
  • 3. Cada procesador multiplica su par de
    elementos.
  • 4. Cada fila de A se desplaza una posición a la
    izquierda, y cada columna de B una posición 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

32
Algoritmo de Cannon
  • Ej

33
Algoritmo de Cannon
34
Algoritmo de Cannon
35
Algoritmo de Cannon
  • Análisis de comunicaciones
  • Los desplazamientos iniciales requieren un
    máximo de n-1 desplazamientos, y después se
    realizarán n-1 desplazamientos (uno en cada paso)
    por lo que tenemos el siguiente tiempo de
    comunicaciones
  • Esto nos da O (n)

36
Algoritmo de Cannon
  • En el caso de que estemos trabajando con
    submatrices, tenemos s-1 desplazamientos
    iniciales como máximo, y s-1 desplazamientos
    después, cada uno de ellos de m2 elementos
  • Lo que nos da O (sm2) O (nm)

37
Algoritmo de Cannon
  • Análisis de computación
  • 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 m3
    multiplicaciones y m3 sumas por cada
    multiplicación, y m2 sumas por cada suma, y
    realiza s multiplicaciones y s-1 sumas
  • Lo que da O (sm3) O (nm2)

38
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

39
Array sistólico
  • La información es bombeada al array sistólico en
    varias direcciones a intervalos regulares.
  • Concretamente, la información es bombeada desde
    la izquierda hacia la derecha y desde arriba
    hacia abajo.
  • Los datos se encuentran en los nodos, y entonces
    se multiplican y suman al valor calculado
    anteriormente.

40
Array sistólico
41
Array sistólico
  • Ej

42
Array sistólico
43
Array sistólico
44
Array sistólico
45
Array sistólico
  • Análisis 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
  • Esto nos da O (n)

46
Array sistólico
  • Análisis de computación
  • Cada procesador realiza n multiplicaciones y n-1
    sumas, lo que nos da un orden de complejidad O (n)

47
Array sistólico
  • Multiplicación de una matriz por un vector
  • Esta técnica puede utilizarse directamente para
    multiplicar una matriz por un vector usando
    simplemente un array de 1xn o de nx1, según sea
    el vector.

48
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

49
Algoritmo de Fox
  • Matrices de tamaño n x n
  • Se particionan a través de p procesadores.
  • Hace uso de un broadcast de uno a muchos de los
    bloques de la matriz A en filas de procesadores,
    y de un paso de bloques de la matriz B a través
    de las columnas de los procesadores en forma
    ascendente de procesador en procesador.
  • Inicialmente se selecciona cada bloque Ai,j de la
    diagonal para un broadcast.

50
Algoritmo de Fox
  • Repetir veces
  • Broadcast del bloque seleccionado de A a través
    de los procesadores de la fila en
    que está ubicado el bloque.
  • Multiplicar el bloque recibido de A como
    resultado del broadcast por el bloque residente
    de B (el procesador que inicia el broadcast ya
    tiene el bloque requerido de A).
  • Enviar el bloque de B al procesador directamente
    precedente en la columna del procesador (con
    enrollamiento), y recibir un bloque de refresco
    de B desde el procesador posterior.
  • Seleccionar el bloque de A para el broadcast de
    la siguiente fila. Si se ha realizado un
    broadcast de Ai,j en la etapa actual, entonces
    seleccionar para el próximo broadcast A
    i,(j1)mod .

51
Algoritmo de Fox
  • Pasos de Comunicación con 16 procesadores

52
Algoritmo de Fox
  • Tiempo de ejecución paralelo sobre un Hipercubo
  • Cada procesador gasta un tiempo de n3/p en la
    computación.
  • 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.

53
Algoritmo de Fox
  • Si la malla original de procesadores encaja en un
    hipercubo, cada broadcast puede ser ejecutado en
    un tiempo
  • Como esta operación se repite veces,
  • el tiempo total de comunicación es

54
Algoritmo de Fox
  • Y el tiempo de ejecución paralelo

Aunque el tiempo de ejecución paralelo y la
escalabilidad de este algoritmo son inferiores a
los de los algoritmos simple y de Cannon, el
tiempo de ejecución de este algoritmo puede ser
mejorado intercalando computación y comunicación
por pipelines.
55
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

56
Algoritmo DNS
  • Debe su nombre a Dekel, Nassimi y Sahni.
  • Algoritmo paralelo que puede consumir n3
    procesadores y ejecuta la multiplicación de
    matrices en un tiempo T(log n) usando O(n3/log n)
    procesadores.

57
Algoritmo DNS
  • Algoritmo CREW PRAM sin concentrarse en una red
    de interconexión particular.
  • n3 procesadores.
  • Dos matrices n x n.
  • Procesadores colocados en un array lógico
    tridimensional n x n x n.
  • A cada procesador se le asigna una multiplicación
    escalar.
  • Los procesadores se etiquetan de acuerdo a su
    posición en el array.
  • La multiplicación Ai,k x Bk,j se asigna a
    Pi,j,k.

58
Algoritmo DNS
  • Después de que cada procesador ejecute una
    multiplicación simple se suman los contenidos de
    Pi,j,0, Pi,j,1,,Pi,j,n-1 para obtener Ci,j.
  • La suma de todos los Ci,j se puede llevar a
    cabo simultáneamente a lo largo de los n pasos.

59
Algoritmo DNS
  • Tiempo de ejecución
  • Toma un paso para multiplicar y los n pasos para
    sumar, por tanto, emplea un tiempo T(log n)

60
Algoritmo DNS
  • Algoritmo paralelo usando un Hipercubo
  • El array lógico tridimensional se mapea en un
    hipercubo con n3 w3d procesadores.
  • Los procesadores se pueden visualizar como n
    planos de n x n procesadores cada uno.
  • Cada plano corresponde a un valor diferente de k.
  • Inicialmente, las matrices se distribuyen a lo
    largo de los n2 procesadores del plano
    correspondiente a k0 en la base del array
    tridimensional de procesadores.
  • Inicialmente, el procesador Pi,j,0 almacena
    Ai,j y Bi,j.

61
Algoritmo DNS
  1. Cada columna de A se mueve a diferentes planos,
    de tal forma que la columna j ocupa la misma
    posición en el plano correspondiente a k j
    (igual que se hizo inicialmente con k 0)
  2. Todas las columnas de A se replican n veces en
    sus respectivos planos por medio de un broadcast
    a lo largo del eje j. Como resultado, cada uno de
    los n procesadores, Pi,0,j, Pi,1,j,,Pi,n-1,j
    recibe una copia de Ai,j desde Pi,j,j.

62
Algoritmo DNS
  • Después de esto, cada columna vertical de
    procesadores Pi,j, tiene la fila Ai,. En
    concreto, el procesador Pi,j,k tiene Ai,k.
  • Para la matriz B, los pasos de comunicación son
    similares, pero las reglas de i y j en los
    procesadores descritos se permutan.

63
Algoritmo DNS
  • Después de estos pasos de comunicación, se
    multiplican Ai,k y Bk,j en Pi,j,k.
  • Cada elemento Ci,j de la matriz producto se
    obtiene por acumulación de nodos simples a través
    del eje k.
  • Durante este paso, el procesador Pi,j,0 acumula
    el resultado de las multiplicaciones de los
    procesadores Pi,j,1, Pi,j,2,,Pi,j,n-1.

64
Algoritmo DNS
  • Pasos de comunicación principales
  • Mover las columnas de A y las filas de B a sus
    respectivos planos.
  • Ejecutar un broadcast a lo largo del eje j para A
    y a lo largo del eje i para B.
  • Acumular los nodos simples a lo largo del eje k.
  • Todas estas operaciones se ejecutan en subcubos
    del hipercubo de n procesadores.

65
Algoritmo DNS
  • Patrón de comunicación para distribuir los
    elementos de A a lo largo de los procesadores.

66
Algoritmo DNS
67
Algoritmo DNS
  • Tiempo de ejecución
  • El tiempo de ejecución paralelo usando el
    algoritmo DNS sobre un Hipercubo con n3
    procesadores es de T(log n).

68
Algoritmo DNS
  • CREW PRAM Vs. Hipercubo
  • En CREW PRAM la columna vertical de procesadores,
    Pi,j,, computa el producto puntual de la fila
    Ai, y la columna B,j.
  • No se necesita ningún paso de movimiento de datos
    porque en CREW PRAM cada procesador puede acceder
    a cualquier localización en tiempo constante.

69
Algoritmo DNS
  • CREW PRAM Vs. Hipercubo
  • En un Hipercubo, las filas de A y las columnas de
    B deben ser movidas apropiadamente para que cada
    columna vertical del procesador Pi,j, tenga la
    fila Ai, y la columna B,j.
  • El procesador Pi,j,k debería tener Ai,k y
    Bk,j.

70
Algoritmo DNS
  • Algoritmo DNS con menos de n3 procesadores
  • El algoritmo DNS no es de coste optimo para n3
    procesadores, su tiempo de procesador es
    T(n3 log n) que excede de la complejidad
    secuencial, T(n3).

71
Algoritmo DNS
  • Número de procesadores p q3 para algún q lt n.
  • Las dos matrices se particionan en bloques de
    tamaño (n/q) x (n/q). Es decir, cada matriz se
    considera un array cuadrado de bloques de tamaño
    q x q.
  • La diferencia es que ahora operamos sobre bloques
    en vez de sobre elementos individuales.
  • Como 1 q n, el número de procesadores puede
    variar entre 1 y n3.

72
Algoritmo DNS
  • Tiempo de ejecución en un Hipercubo con
    enrutamiento de corte completo
  • El primer paso de comunicación uno a uno se
    ejecuta en A y en B y toma un tiempo para cada
    matriz de ts tw (n/q)2 th log q.
  • El segundo paso es un broadcast de uno a todos
    que se ejecuta en A y en B y toma un tiempo para
    cada matriz de ts log q tw (n/q)2 log q.

73
Algoritmo DNS
  • La acumulación de nodo simple final se ejecuta
    una sola vez (para la matriz C) y toma un tiempo
  • ts log q tw (n/q)2 log q.

74
Algoritmo DNS
  • Asumiendo que cada par multiplicación-suma toma
    una unidad de tiempo, la multiplicación de
    submatrices de tamaño (n/q) x (n/q) toma un
    tiempo de (n/q)3.
  • Se puede ignorar el tiempo de comunicación para
    el primer paso de comunicación uno a uno y el
    tiempo de computación para la suma en la fase de
    acumulación final.

75
Algoritmo DNS
  • Las expresiones aproximadas para el tiempo de
    ejecución paralelo es

El sistema paralelo es de coste óptimo para
n3 O(p log p) ó para p ?(n3 / log n)
76
Algoritmo DNS
  • Tiempo de ejecución sobre una malla 3D con
    enrutamiento de corte completo
  • El algoritmo DNS no es adecuado para una malla
    bidimensional, ya que el algoritmo mapea
    naturalmente sobre una malla tridimensional de
    procesadores y una malla tridimensional no se
    puede ajustar a una malla bidimensional sin
    congestión ni dilatación excesivas.

77
Algoritmo DNS
  • Sobre una malla tridimensional, el algoritmo de
    hipercubo se puede implementar sin
    modificaciones.
  • Solo hay un cambio en la ecuación de la expresión
    del tiempo de ejecución paralelo, que es la suma
    del termino 3thp1/3.
  • Es decir, el tiempo de ejecución paralelo es

78
Multiplicación de matrices
  • Nociones básicas sobre matrices
  • Algoritmo secuencial
  • Algoritmo paralelo
  • Submatrices
  • Implementación directa
  • Implementación con submatrices
  • Implementación recursiva
  • Algoritmo de Cannon
  • Array sistólico
  • Algoritmo de Fox
  • Algoritmo DNS
  • Mapeo de matrices en procesadores

79
Mapeo de matrices en procesadores
  • Particionamiento rayado
  • Particionamiento de tablero de damas

80
Mapeo de matrices en procesadores
  • Particionamiento rayado
  • Particionamiento de tablero de damas

81
Particionamiento rayado
  • Se divide la matriz en grupos de filas o columnas
    completas y a cada procesador se le asigna un
    grupo.
  • Se llama uniforme si cada grupo contiene el mismo
    número de filas o columnas.
  • Se llama rayado de bloque si a cada procesador se
    le asignan filas o columnas contiguas.

82
Particionamiento rayado
  • Se llama rayado cíclico si las filas o columnas
    se distribuyen secuencialmente a través de los
    procesadores de forma cíclica.
  • Se llama rayado cíclico de bloque si la matriz se
    divide en bloques de q filas (q lt n/p) y los
    bloques se distribuyen en los procesadores de
    forma cíclica.

83
Mapeo de matrices en procesadores
  • Particionamiento rayado
  • Particionamiento de tablero de damas

84
Particionamiento de tablero de damas
  • La matriz se divide en bloques o submatrices
    cuadradas o rectangulares más pequeñas y se
    distribuyen a través de los procesadores.
  • Divide las filas y columnas de la matriz para que
    a ningún procesador se le asigne una fila o
    columna completa.

85
Particionamiento de tablero de damas
  • Se llama particionamiento de tablero de damas
    uniforme si todas las submatrices son de igual
    tamaño.
  • Puede ser de bloque, cíclico o cíclico de bloque.
  • En el particionamiento cíclico mapeamos las filas
    en los procesadores de forma cíclica y después
    las columnas o viceversa.

86
Particionamiento de tablero de damas
  • En el particionamiento cíclico de bloque
    dividimos la matriz en q2p bloques y mapeamos
    esos bloques de tamaño q x q de forma cíclica.
  • Una matriz cuadrada paticionada por tablero de
    damas se mapea naturalmente en una malla
    bidimensional de procesadores.

87
Particionamiento rayado Vs. de tablero de damas
  • El nivel más bajo de granularidad en el de
    tablero de damas es un elemento de matriz por
    procesador.
  • El de tablero de damas puede explotar más la
    concurrencia (siempre que el algoritmo paralelo
    lo permita) porque la computación se puede
    dividir en más procesadores que el de rayado.
Write a Comment
User Comments (0)
About PowerShow.com