Procesamiento ParaleloCurso 0809 - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Procesamiento ParaleloCurso 0809

Description:

Mariposa 'Butterfly' Problem tica de interbloqueo. C lculos sincronizados (PRAM) ... proPar Problema de la distribuci n del calor s ncrona-19 ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 29
Provided by: pablocaraz
Category:

less

Transcript and Presenter's Notes

Title: Procesamiento ParaleloCurso 0809


1
Procesamiento Paralelo Curso 08/09
  • Computadores Paralelos
  • Programación basada en paso de mensajes
  • Técnicas básicas de programación paralela
  • Compulsiva, Divide y Vencerás, Pipeline,
  • Síncrona, Equilibrado de carga y Terminación
  • Programación basada en memoria común
  • Algoritmos y aplicaciones
  • Ordenación,

2
Procesamiento Paralelo Temario síncrona-2
  • Computación Síncrona
  • Sincronización (Barrera y su implementación)
  • Contador
  • Árbol
  • Mariposa Butterfly
  • Problemática de interbloqueo
  • Cálculos sincronizados (PRAM)
  • Modelo Hardware / Software
  • Algunos ejemplos simples
  • Ejemplo adaptado a CLUSTER
  • Problema de la distribución del calor

3
proPar Sincronización BARRERA síncrona-3
(75 según Fox, 1994)
Muchas aplicaciones presentan sincronismo
---------- MPI_Comm_size (MPI_COMM_WORLD,
numProcesos) ---------- // Computar todos paso
1 MPI_Barrier (MPI_COMM_WORLD) // Computar
todos paso 2
4
proPar Sincronización BARRERA síncrona-4
5
proPar BARRERA (Contador) síncrona-5
  • Idea Un contador cuenta los procesos que
    llegan a la barrera

Código de Pg?
6
proPar BARRERA (Árbol) síncrona-6
  • Idea Fases de sincronismo parcial por parejas
    (Sean 8 Pi)

Código de cada Pi?
7
proPar BARRERA (Árbol) síncrona-7
void barrera (int yo, int dist) if
((yo/dist)2) 0) recibir (yodist,
msj) if (distltN/2) barrera (yo, dist2)
enviar (yodist, msj) else
enviar (yo-dist, msj) recibir (yo-dist,
msj) //barrera (yo, 1)
8
proPar BARRERA (Butterfly) síncrona-8
  • Idea Barreras parciales por parejas (Enlaces
    Full Duplex)

Código de cada Pi?
9
proPar BARRERA (Butterfly) síncrona-9
void barrera (void) for (dist1 distltN
dist2) if ( (yo(dist2)) lt dist)
enviar (yodist, msj) recibir
(yodist, msj) else recibir
(yo-dist, msj) enviar (yo-dist,
msj)
10
proPar BARRERA (Problemática de
Interbloqueo) síncrona-10
  • Ojo en situaciones tipo Butterfly

Pi
Pi1 -------------------
------------------ enviar (Pi1, msj)
enviar (Pi, msj) recibir(Pi1, msj)
recibir(Pi, msj) -------------------
------------------
Pi
Pi1 -------------------
------------------ enviar (Pi1, msj)
recibir(Pi, msj) recibir(Pi1, msj)
enviar (Pi, msj) -------------------
------------------
11
proPar BARRERA (Problemática de
Interbloqueo) síncrona-11
  • MPI_Sendrecv

Ojo !
12
proPar Cálculos sincronizados (PRAM) síncrona-12
  • Modelo Hardware (SIMD)
  • Los Pi trabajan síncronamente
  • Los Pi activos ejecutan misma
  • instrucción sobre distintos datos
  • La instrucción move, add, función
  • La propia inst. dice qué Pi activo
  • No se pasa a siguiente instrucción
  • hasta que todos acaban

EREW Lectura y escritura Excluyente CREW Lectura
Concurrente y escritura Excluyente ERCW Lectura
Excluyente y escritura Concurrente CRCW Lectura
y escritura Concurrente
13
proPar Cálculos sincronizados (PRAM) síncrona-13
  • Modelo Software (operador forall)

forall (ij to k by delta) operaciones
ejecutadas por Pi?P0..Pn
s0 for (i0 ilt10 i) s s vi forall
(i0 ilt4 i) ti s vi forall (i2
ilt4 i) Q(i) forall (i0 ilt4 i) s s
vi
fuera del forall secuencial P0
14
proPar Cálculos sincronizados (PRAM) síncrona-14
  • Algunos ejemplos simples (Difusión de un dato)

D 5, N Pi quieren leerlo y máquina EREW ( N
2i ) ?
forall (i0iltNi) if (D0) ...
for (i0iltNi) Ai D forall
(i0iltNi) if (Ai0) ...
15
proPar Cálculos sincronizados (PRAM) síncrona-15
  • Idea Usar más Pi según se van teniendo copias
    nuevas en A

A0 D // Inicio for (i0ilt ?
i) // Pasos forall (j ? jlt ? j) //
Difusión A ? A ? // paralela
16
proPar Cálculos sincronizados (PRAM) síncrona-16
Código paralelo ?
Idea Usar un vector auxiliar (A)
17
proPar Cálculos sincronizados (PRAM) síncrona-17
Código definitivo ?
forall (i0iltNi) Ai Vi for
(i1iltlogNi) forall (j2i-1
jltN j2i) AjAjAj-2i-1
18
proPar Cálculos sincronizados (PRAM) síncrona-18
  • Cómo simular el forall con modelo de paso de
    mensajes?

---------- ---------- forall (P0..Pn)
Q(i) ---------- ----------
19
proPar Problema de la distribución del
calor síncrona-19
  • Barra con temperatura en los extremos (1D)
    Temperatura interior?

Modelo de difusión del calor?
Tb ? (Ta Tc) / 2
  • Cuándo terminar?
  • NumIteraciones
  • cotaError lt ?

20
proPar Problema de la distribución del
calor síncrona-20
define N 100000 define P 100   int main (int
argc, char argv) int i, t float xP,
yP   x0 y0 20.0 xP-1
yP-1 100.0 for (i1 iltP-1 i) xi
0.0 for (t1 tltN t2) for (i1
iltP-1 i) yi 0.5 (xi-1xi1)
for (i1 iltP-1 i) xi 0.5
(yi-1yi1) // imprimir los valores de
temperaturas exit (0)
21
proPar Problema de la distribución del
calor síncrona-21
22
proPar Problema de la distribución del
calor síncrona-22
  • Placa con temperatura en los bordes (2D)
    Temperatura interior?

23
proPar Problema de la distribución del
calor síncrona-23
  • Placa con temperatura en los bordes (2D)
    Temperatura interior?
  • 200 x 200 puntos
  • cambiosColor lt 21
  • 164.000 iteraciones
  • 457883 (segmseg)

24
proPar Problema de la distribución del
calor síncrona-24
  • Zona con temperatura en los bordes (2D)
    Puedo pasar?

Seguro?
Código paralelo?
25
proPar Problema de la distribución del
calor síncrona-25
for (i1 iltnumIter i) T (TN TS TE
TO) 0.25 send (PN, T) // send (PS, T)
// Envios no send (PE, T) // bloqueantes
send (PO, T) // recv (PN, TN) recv (PS,
TS) recv (PE, TE) recv (PO, TO)
Terminación por cota de Error ?
26
proPar Problema de la distribución del
calor síncrona-26
  • Particionamiento

27
proPar Problema de la distribución del
calor síncrona-27
  • Particionamiento

28
proPar Problema de la distribución del
calor síncrona-28
  • Ojo al partir ! (Fila de puntos fantasma)

Proceso Pi
Proceso Pi1
FIN
Write a Comment
User Comments (0)
About PowerShow.com