La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

proPar Curso 13/14 4 2, 3, 2 2, 2 5 Computadores Paralelos

Presentaciones similares


Presentación del tema: "proPar Curso 13/14 4 2, 3, 2 2, 2 5 Computadores Paralelos"— Transcripción de la presentación:

1 proPar Curso 13/14 4 2, 3, 2 2, 2 5 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 proPar Temario pipeline-2
Técnica de pipeline Plataforma para aplicaciones tipo pipeline Suma de números Ordenación de números Generación de números primos Resolución de sistemas de ecuaciones lineales

3 proPar Temario pipeline-3
1776 Adam Smith “La riqueza de las naciones” => Alfileres Fábrica ejemplo: 18 tareas 10 obreros alfDía 4.800 AlfObrero ¿Artesano sólo y una a una? 20AlfDía un reto +Destreza -TiemposMuertos +Máquinas

4 proPar Temario pipeline-4
[8/10/ /10/2013]: 100 años de coches en serie Fábrica Ford T: piezas 84 tareas Se pasó de: 1 coche 12h 1 coche 1,5h

5 proPar Técnica de pipeline pipeline-5
Idea intuitiva => Cadena de montaje de coches Descomposición funcional Secuencia de datos homogéneos de entrada Peluquería Personas Despeinadas (Di) Lavar => Cortar => Marcar Proceso divisible en subtareas secuenciales (filtros) LCM 1Hora 3 Mill. 10:45 (1) D4,D3,D2 11:00 (2) D5,D4,D3 P1 10:30 (1) D3,D2 10:15 (1) D2 10:00 (1) 10:45 (3) (2) (1) D4 11:00 (4) (3) (2) D5 P1 10:40 (3) (2) (1) 10:00 (1) 10:30 (2) (1) D3 10:15 (1) D2 10:20 (2) (1) L C M 20’ 20’ ’ 1,5 M 1,5M ,5M Secuencial => 1P x Hora Vs Pipeline => 1P x 20’ Difícil equilibrar carga (L=C=M) # filtros no muy grande

6 proPar Técnica de pipeline pipeline-6
Ejemplo1: Filtrado de señal f0 fin fout f1 f3 f2 f(t) Señal filtrada f0 f1 f2 f3 t d1 d0 d2 d3 d2 d1 d3 d4 d5 d6 d1 d0 d2 d1 d0 d0 Hay otras dos formas de utilizar pipeline que veremos con ejemplos

7 proPar Plataformas para aplicaciones tipo pipeline pipeline-7
PC + ClearSpeed CSX700 [96+96] PC + Placa con Transputers Switch

8 proPar Suma de números pipeline-8
for (i=1; i<=N; i++) S = S + V[i]; Cada Pi tiene un dato “Vi” del vector rec(Pi, &S); env(Pd, S+Vi); P1 P2 P3 Pn V[] Un Maestro tiene el vector P1 P2 P3 Pn V[] V3,V2,V1 maestro V[] rec(Pi, &V); env(Pd, [V1+V2,[V3..Vn]]); ¡ Tantos Pi como números !

9 proPar Suma de números pipeline-9
Un Maestro tiene el vector y hay pocos procesos “P << N” 4 Cada Pi suma una rodaja de tamaño N / P = q M P1 P2 P3 P4 V[] + rec(Pi, &V); env(Pd, [Suma[V0..Vq],[Vq+1..Vn]]); ¿Mejorable? ¡ Sigo sin hacer trabajar en paralelo a los procesos ! Tengo que sumar K vectores de tamaño N “Muchas instancias del mismo problema” Otro uso pipeline

10 proPar Suma de números pipeline-10
Pipeline aplicado a muchas instancias del mismo problema M P1 P2 P3 P4 M P1 P2 P3 P4 M P1 P2 P3 P4 M P1 P2 P3 P4 M P1 P2 P3 P4 M P1 P2 P3 P4 ¿Equilibrado?

11 proPar Suma de números pipeline-11
Pipeline aplicado a muchas instancias del mismo problema ¡ Ojo con la relación cómputo/comunicación ! Procesos 1 2 4 MismoPC 12:271 6:492 4:334 Uno*PC 11:786 17:002 Dos*PC 9:208 cuentaPar: Números dentro de diez rangos de valores V[ ] en 200 subV[ ]

12 proPar Ordenación de números pipeline-12
2 3 i for i:=2 to n do x := A[i] insertar (x, A[1..i]) Xmin max min maestro P1 P2 Pn 3 ¿Programa paralelo? 2 3 5 2 3 1 2 5 3 4 1 2 3 5

13 proPar Ordenación de números pipeline-13
Xmin max min maestro P1 P2 Pn /* Ordenación básica */ nProcsDer = n-i; rec (Pi-1, &Xmin); for (j=0; j<nProcsDer; j++) { rec (Pi-1, &X); if (X < Xmin) { env (Pi+1, &Xmin); Xmin = X; } else env (Pi+1, &X); }

14 proPar Ordenación de números pipeline-14
Pn Anillo Array lineal bidireccional P1 M P2 P3 Pn OrdenacionBasica; env (Pi-1, &Xmin); for (j=0; j<nProcsDer; j++) { rec (Pi+1, &X); env (Pi-1, &X); } ¿Mejorable? ¿ Pipeline aplicado a muchas instancias del mismo problema ?

15 proPar Generación de números primos pipeline-15
Calcular los primeros números primos < N Criba de Eratóstenes i<N mejorable for (i=2; i<N; i++) primo[i] = TRUE; if (primo[i]) for (j=i+i;j<N;j+=i) primo[j] = FALSE; ¿ Programa paralelo ?

16 proPar Generación de números primos pipeline-16
Primera aproximación 0,N, … ,29,25,23,19,17,13,11,7,5 3 5 7 3 5 7,11,13,17,19,23,29, … ,N,0 7 11 ¿ Código paralelo ?

17 proPar Generación de números primos pipeline-17
Segunda aproximación: Dos fases y tablas de primos generadores FASE 1: Tabla de primos generadores N = 100 => => <10 ¿ Código paralelo ? 0,7,5 3 5 7 0,97, … ,29,25,23,19,17,13,11 FASE 2: Cálculo del resto de primos 3 5 7 7,0

18 proPar Generación de números primos pipeline-18
Calcular los N primeros números primos Criba de Eratóstenes rec (Pi-1, &primo); while (masNumeros) { rec (Pi-1, &n); if ((n%primo) != 0) env (Pi+1, &n); } Más eficiente en la práctica ,4,3,2 P1 M P2 Pn ,7,5,3 ...13,11,7,5 2 3

19 proPar Resolución de sistemas de ecuaciones lineales pipeline-19
an-1,0x0+an-1,1x1+an-1,2x an-1,n-1xn-1 = bn-1 . a2,0 x0+a2,1 x1+a2,2 x = b2 a1,0 x0+a1,1 x = b1 a0,0 x = b0 x0 x1 xi-1 b0 X0 = a0,0 b1-a1,0x0 X1 = a1,1 b2-a2,0x0-a2,1x1 X2 = a2,2 i-1 bi-ai,jxj j=0 Xi = ai,i ¿ Programa paralelo ?

20 proPar Resolución de sistemas de ecuaciones lineales pipeline-20
bi-ai,jxj j=0 Xi = ai,i x0 x1 xi-1 suma = 0; for (j=0; j<i; j++) { rec (Pi-1, &x[j]); env (Pi+1, &x[j]); suma+=a[i][j]*x[j]; } x[i]=(b[i]-suma)/a[i][i]; env (Pi+1, &x[i]); Pi P0 P1 P2 P3 P4 P5 FIN “Paso al siguiente antes de terminar anterior” Otro uso pipeline


Descargar ppt "proPar Curso 13/14 4 2, 3, 2 2, 2 5 Computadores Paralelos"

Presentaciones similares


Anuncios Google