Programacin Paralela - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

Programacin Paralela

Description:

... paralelas de entrada como de salida son comunes (replicadas ) a todo los procesadores del grupo. ... variables de entrada y salida son privadas a cada ... – PowerPoint PPT presentation

Number of Views:118
Avg rating:3.0/5.0
Slides: 35
Provided by: Marc328
Category:

less

Transcript and Presenter's Notes

Title: Programacin Paralela


1
Programación Paralela
  • Particionado y Divide Vencerás
  • Dto. De Informática
  • UNSL

2

Indice
  • Particionado
  • Particionado de Datos
  • Particionado de Funciones
  • Divide y vencerás
  • Hipercubos
  • Práctica

3
Particionado
  • Simplemente consiste en dividir el problema en
    partes.
  • Es la base de toda programación paralela.
  • Estrategia Embarrasengly Parallel es una forma
    de particionado.

4
Particionado
  • Una buena estrategia divide en partes tanto el
    cómputo asociado con un problema, como los datos
    sobre los que este cómputo opera.
  • Generalmente, el particionado se enfoca sobre los
    datos, es decir determinan divisiones apropiadas
    para los datos y finalmente asocian el cómputo
    con datos.
  • El enfoque alternativo primero descompone el
    cómputo y luego trata con la asignación de los
    datos.

DESCOMPOSICIÓN DE DOMINIO
DESCOMPOSICION FUNCIONAL
5
Descomposición de DominioParticionado de Datos
  • Los datos pueden ser inputs, outpus, o valores
    intermedios.
  • Pueden surgir diferentes particiones, basadas en
    diferentes estructuras de datos.

6
Descomposición FuncionalParticionado de Funciones
7
Descomposición FuncionalParticionado de Funciones
  • Esta descomposición representa un forma diferente
    y complementaria de pensamiento acerca de la
    solución de un problema.
  • El foco está en la computación más que en los
    datos manipulados por la computación.
  • Primero se intenta dividir la computación en
    tareas disjuntas y luego se ven los
    requerimientos de datos que tienen.

8
Divide Vencerás
  • Es un método elegante de resolver problemas.
  • Simplemente se divide el problema en problemas
    más pequeños de la misma clase, luego se
    resuelven las partes separadamente y se combinan
    los resultados parciales para obtener la solución
    final.
  • Este método es utilizado recursivamente para
    dividir las partes en problemas mas y mas
    pequeños hasta alcanzar un punto donde el
    problema es trivial de resolver.

9
DV Secuencial
  • 1 type table array1..n of T
  • 2 seqDV(tabla, first, last)
  • 3
  • 4 if first lt last then
  • 5
  • 6 divide(tabla, first, last, middle)
  • 7 seqDV(tabla, first, middle)
  • 8 seqDV(tabla, middle1, last)
  • 9 combine(a, first, last, middle)
  • 10
  • 11

10
DV Paralelo
  • 1 parDV(tabla, first, last)
  • 2
  • 3 if firstltlast then
  • 4
  • 5 divide(tabla, first, last, middle)
  • PARALLEL(parDV(tabla, first, middle),
  • parDV(tabla,
    middle1, last))
  • 7 combine(tabla, first, last, middle)
  • 8
  • 9 else soluciontrivial(tabla)
  • 10

11
DC Paralelo
12
DV Paralelo
  • Esta formulación crea un árbol binario de
    procesos
  • Al inicio, el proceso raíz del árbol toma un
    problema, y lo divide en dos problemas mas
    chicos.
  • La división del problema es repetida hasta que
    las hojas del árbol han recibido los problemas
    más básicos.
  • Alternativamente, los procesos hojas pueden
    resolver el problema en forma secuencial si
    faltaran procesadores para llegar a la solución
    trivial.
  • Cada hoja retorna la solución de su problema a su
    nodo padre
  • Cada proceso padre combina y/o aplica alguna
    operación a las soluciones entregadas por sus
    hijos en una única solución que es retornada al
    padre de éste.
  • Eventualmente, la raíz genera la solución al
    problema original.

13
Asignación de procesadoresDV Paralelo
P0
Un procesador para cada nodo 2m sub-tareas,
requieren 2m1-1
P2
P1
P4
P5
P6
P3
14
Asignación de procesadoresDV Paralelo
P0
Rehusar los procesadores en cada nivel del árbol
2m sub-tareas, requieren 2m procesadores
P1
P0
P2
P1
P3
15
Asignación de procesadoresDV Paralelo
La jerarquía de procesos de algoritmos DV
generalmente se asocian a un estructura que es
topológicamente similar a un hipercubo
16
Asignación de procesadores en MPIDV Paralelo
En cada nível, el proceso Pi, con qué proceso Pj
se debe comunicar?
17
Asignación de procesadores en MPIDV Paralelo
Asignación cíclica
En cada nível, el proceso Pi, con qué proceso Pj
se debe comunicar?
18
DV Paralelo
  • Tipos de Algoritmos (Input-Output)
  • En el caso paralelo, existe una clasificación de
    problemas atendiendo a la naturaleza de las
    variables de entrada y salida
  • Común - Común (CC)  es aquél cuyas variables
    paralelas de entrada como de salida son comunes
    (replicadas ) a todo los procesadores del grupo.
  • Común - Privado (CP)  es aquél cuyas variables
    de entrada son comunes pero las variables de
    resultado quedan privadas en cada procesador
  • Privado - Común (PC)  es aquél cuyas variables
    de entrada son privadas en cada procesador y los
    resultados quedan replicados en todos los
    procesadores
  • Privado - Privado (PP)  es aquél cuyas variables
    de entrada y salida son privadas a cada
    procesador.

19
Fase de División DV Paralelo
Común-Común
20
Fase de Conquista y Comunicación DV Paralelo
Común-Común
Comunicación Combinación
21
Comunicación DV Paralelo
Común-Común
22
DV No Binarios
Común- Común
1
0
3
4
2
6
5
7
8
4
5
3
1
2
0
7
8
6
4
3
5
2
0
1
8
6
7
23
DV No BinariosHipercubo Ternario de 2
dimensiones
24
DV No BinariosPolitopos (polytopes) de 3
dimensiones
1
0
3
4
2
5
4
1
0
5
2
3
4
0
1
5
2
3
1
0
2
3
25
Caso de Estudio Algoritmo Shortest-Path
Es un problema importante en la teoría de grafos
y tiene gran aplicación en problemas de
comunicaciones y otros problemas computacionales.
Grafo G
Matriz de
Adyacencia A
26
Caso de Estudio Algoritmo Shortest-Path
  • El Problema all-pairs shortest-path involucra
    encontrar el paso mas corto entre todos los
    pares de vértices en un grafo.
  • Un grafo G(V,E) con V el conjunto de vértices y
    N conjunto de arcos conectando vértices en V.
  • En un grafo dirigido, cada eje tienen también una
    dirección. De modo que los ejes (vi,vj) y (vj,vi)
    con i ltgt j, son distintos.
  • Un grafo puede ser representado como una matriz
    de adyacencia A en la cual cada elemento (i,j)
    representa el arco entre los elementos i y j.
  • Aij 1 si existe un arco del vértice i a j.
  • Aij 0 en otro caso.

27
Caso de Estudio Algoritmo Shortest-Path
  • Un paso desde el vértice vi hasta el vértice vj
    es una secuencia de arcos (vi, vk) (vk, vr) (vt,
    vj) en la cual ningún arco aparece dos veces
  • El paso más corto entre dos vértices de un grafo
    es el paso que tiene el menor número de ejes.
  • El problema all-pairs shortest-path requiere
    que encontremos el paso mas corto entre todos los
    paresde vértices en un grafo.
  • El algoritmo toma como entrada una matriz de
    adyacencia A (de NxN) y computa la matriz S (de
    NxN).
  • Sij tendrá la longitud del paso más corto entre
    i y j o -1 ( o ? )

28
Caso de Estudio Algoritmo Shortest-Path
.
La idea es determinar si el paso desde vi a vj
vía vk es mas corto que el mejor paso conocido
desde vi a vj.
29
Caso de Estudio Algoritmo Shortest-Path
  • El algoritmo deriva la matriz S en N pasos,
    construyendo en cada paso k una matriz intermedia
    I(k) que contiene la distancia mas corta conocida
    entre cada par de nodos.
  • Inicialmente Iij(0) es la longitud entre (vi,vj)
    (si existe el arco, de lo contrario será cero
    (0)).
  • Durante el k-ésimo paso evaluarán nuevamente
    todos los valores de Iij para determinar si
  • El mejor paso conocido entre vi y vj es más largo
    que las longitudes combinadas desde vi a vk y
    desde vk a vj. De serlo Iij es actualizada para
    reflejar el paso más corto.

Algoritmo de Floyd Secuencial
30
Caso de Estudio Algoritmo Shortest-Path
Algoritmo de Floyd Secuencial
31
Caso de Estudio Algoritmo Shortest-Path
.
  • for k 0 to N-1
  • for i local_i_start to local_i_end
  • for j 0 to N-1
  • Iij(k1) min(Iij(k), Ii,k(k)
    Ik,j(k))
  • endfor
  • endfor
  • endfor

Algoritmo Paralelo de Floyd
32
Caso de Estudio Algoritmo Shortest-Path
(K, i, j)
33
Caso de Estudio Algoritmo Shortest-Path
34
Caso de Estudio Algoritmo Shortest-Path
  • Paralelizar las filas
  • Este algoritmo puede utilizar a lo sumo N
    procesadores.
  • Cada tarea tiene la responsabilidad de generar
    una o más filas de la Matriz I.
  • En cada k-paso, cada tarea requiere los valores
    de la k-ésima fila de I. Es decir en cada paso
    algún tarea deberá comunicar esta fila al resto
    de las tareas
Write a Comment
User Comments (0)
About PowerShow.com