La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Procesamiento ParaleloCurso 14/15 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva,

Presentaciones similares


Presentación del tema: "Procesamiento ParaleloCurso 14/15 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva,"— Transcripción de la presentación:

1 Procesamiento ParaleloCurso 14/15 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva, Divide y Vencerás, Pipeline, Síncrona, Equilibrado de carga y Terminación 4Programación basada en memoria común 5Algoritmos y aplicaciones Ordenación, … 4 4 2, 3, 2 2+, 2 4 3

2 proParTemarioequilibrado-2 6Equilibrado de carga y Terminación 1Equilibrado de carga (estática vs dinámica) Dinámico y centralizado Dinámico y distribuído Aplicado a arquitectura “pipeline” 2Terminación distribuída (condición) Mensajes de ACK Modo anillo Modo árbol 3Ejemplo “Camino más corto”

3 proParEquilibrado de cargaequilibrado-3 P0P0 P1P1 P2P2 P3P3 P4P4 P5P5 ideal P0P0 P1P1 P2P2 P3P3 P4P4 P5P5 evitar ¿A qué se debe? División imperfecta del trabajo P 4 más rápido y P 1 más lento Equilibrado estático Equilibrado dinámico ¿Cómo se consigue?

4 proParEquilibrado estáticoequilibrado-4 Decisión “a priori” sin tener en cuenta ejecución real de los Pi Ejemplo 1 OK: cuentaPar1 ABCD BCD M0M0 E1E1 E2E2 E3E3 Ti 31:802 14:679 10:548 7:913 6:322 5:275 4:321 3:784 Ei 1,08 1,00 1,01 1,00 1,05 Nodos 1 2 3 4 5 6 7 8 mpirun –np N cuentaPar1 1680000 PC9

5 proParEquilibrado estáticoequilibrado-5 Ejemplo 2 MAL: mandelpar “trozos” Difícil estimar tiempos de ejecución de las partes sin ejecutarlas Ti 30:125 17:552 20:612 17:158 12:600 12:534 11:342 9:214 Ei 0,88 0,49 0,44 0,48 0,40 0,38 0,41 Nodos 1 2 3 4 5 6 7 8 mpirun –np N mandelparTrozos PC9

6 proParEquilibrado estáticoequilibrado-6 Ejemplo 3 MAL: primopar3 primosec [3..5449] 720 …. 5457, 5455, 5453, 5451 …., 5477, 5471 primopar3 [3..5449] 720 primopar3 [3..5449] 720 primopar3 [3..5449] 720 primopar3 [3..5449] 720 …. 5475, 5467, 5459, 5451 …. 5477, 5469, 5461, 5453 …. 5479, 5471, 5463, 5455 …. 5481, 5473, 5465, 5457 Ti 16:724 8:452 4:278 4:283 2:123 2:216 2:214 1:170 Ei 0,99 0,98 0,65 0,98 0,75 0,63 0,89 Nodos 1 2 4 6 8 10 12 16 mpirun –np N primopar3 720 PC1..PC4 ¿ Viable un reparto estático mejor ?

7 proParEquilibrado estáticoequilibrado-7 Ejemplo 4 MAL: mandelpar “filas fijas”  Round Robin E 1  filas 0, 4, 8, 12, … E 2  filas 1, 5, 9, 13, … E 3  filas 2, 6, 10, 14, … E 4  filas 3, 7, 11, 15, … Ti 58:030 28:883 14:453 9:766 16:050 12:701 10:669 9:223 Ei 1,00 0,99 0,45 0,46 0,45 Nodos 1 2 4 6 8 10 12 14 mpirun –np N mandelparFilas PC1..PC8 duales heterogéneos 8:9080,4315 Se usan PCs lentos

8 proParEquilibrado estáticoequilibrado-8

9 proParEquilibrado estáticoequilibrado-9 Ejemplo 5 MAL: primopar2 28:03547:680 Ojo con redes directas Epiphany 16 ? Mapeo, planificación, scheduling

10 proParEquilibrado dinámico centralizadoequilibrado-10 Idea: Maestro con tareas pendientes que reparte (en vivo) a los esclavos maestro e1 e2 e3 e4 0 1 2 3 4 Ejemplo 6 OK: mandelpar “reparto dinámico de filas” PC1..PC8 duales heterogéneos Ti 58:030 28:883 14:453 9:766 16:050 12:701 10:669 9:223 Ei 1,00 0,99 0,45 0,46 0,45 Nodos 1 2 4 6 8 10 12 14 8:9080,4315 estático Ti 29:086 14:670 9:892 7:978 7:090 6:439 5:876 Ei 1,00 0,99 0,98 0,91 0,82 0,75 0,71 5:6170,69 dinámico Se usan PCs lentos

11 cola de tareas P maestro P esclavo Granja de Procesadores: Fractal proParEquilibrado dinámico centralizadoequilibrado-11 Idea: Maestro con tareas pendientes que reparte (en vivo) a los esclavos Dame tarea Toma tarea for (fila=0; fila<FILAS; f++) enviar(proceso[fila%N], fila); mandelpar ¿igual que estático? Tareas no homogéneas: Servir antes las grandes Creación dinámica de esclavos Creación dinámica de tareas DETALLES ¿Cuándo terminar?

12 proParEquilibrado dinámico centralizadoequilibrado-12 ¿Cuándo terminar? cola de tareas P maestro P esclavo No basta {tareas} =  ¿Un esclavo detecta fin global? M e0e0 e1e1 eiei enen ¿Cada esclavo detecta su fin local? Cuello de botella en el maestro Sencillo y eficiente si: pocos esclavos y cálculo intensivo

13 proParEquilibrado dinámico distribuidoequilibrado-13 Idea: Distribuir la cola de tareas entre más procesos A. Jerarquía de maestros P maestro cola de tareas P esclavo cola de tareas P subM0 P esclavo cola de tareas P subMn

14 proParEquilibrado dinámico distribuidoequilibrado-14 B. Totalmente descentralizado PiPi PjPj PkPk PmPm Transferencia de tareas Iniciada por receptor Iniciada por emisor Ri solicita a ¿Ej? si: {tareas} =  o pocas Ej envía a ¿Ri? si: {tareas} = demasiadas Sistema muy cargado Sistema poco cargado ¿De quién recibo? ¿A quién envío?

15 proParEquilibrado dinámico distribuidoequilibrado-15 B. Totalmente descentralizado ¿De quién recibo? ¿A quién envío? Redes Directas (Pi recibe de ¿?) Pi ¿Mejores candidatos los vecinos? Solución más generalista Pi RoundRobin Aleatorio....... Algoritmo local elige Pj 67% ¿Cuándo y cuánto doy?

16 proParAplicado a arquitectura “pipeline”equilibrado-16 Maestro Esclavo 0 Esclavo 1 Esclavo N tareas resultados ET C ER TT T L R R R T : Tarea ET: Encamina T R : Resultado ER: Encamina R L: Libre recibir(E izq, &Tarea); if estoyLibre Resultado = computar(Tarea); enviar (E izq, &Resultado); else enviar (E der, &Tarea); env(E 0, &T); rec(E 0, &R); genera dibuja T R

17 proParAplicado a arquitectura “pipeline”equilibrado-17 genera dibuja ET C ER T T L R R ET C ER T T L R R maestro E0E0 EnEn recibir(-1, &msj); if (msj == Tarea) if C.Libre enviar (C, &msj); C.Ocupado; else enviar (E der, &msj); else C.Libre ET ¿ Código ? ¡ Ojo ! if soyUltimo recibir(C, &Libre); enviar (C, &msj); else enviar (E der, &msj); ¡ Autocontención ! ?

18 proParTerminación distribuida (condición)equilibrado-18 PiPi PjPj PkPk PmPm Un Pi detecta fin global => fácil Cada Pi debe alcanzar fin local ? Esclavos envían msjFin a maestro Maestro ¡ Puede Fallar ! Transferencia de tareas ¿Código? rec(-1, &LT,  ); repeat eval (sacar(&LT), &LT); if muyGrande(LT) env (alguien, sacar(&LT), 0); if vacia(LT) rec (-1, &LT, 0); until vacia(LT); No hay mensajes en tránsito +

19 proParTerminación distribuida (condición)equilibrado-19 rec(-1, &LT,  ); repeat eval (sacar(&LT), &LT); if muyGrande(LT) env (alguien, sacar(&LT), 0); if vacia(LT) rec (-1, &LT, 0); until vacia(LT); PiPi PjPj PiPi PjPj PjPj PiPi PiPi PjPj rec(-1, &LT,  ); repeat eval (sacar(&LT), &LT); if muyGrande(LT) env (alguien, sacar(&LT), 0); if vacia(LT) rec (-1, &LT, 0); until vacia(LT); PjPj PiPi ?

20 proParTerminación... (mensaje de ACK)equilibrado-20 inactivo activo PiPi Mi padre es P j PjPj T T Tack T Otros Procesos FinLocal No hay más tareas Envié todos mis Tack (salvo a mi Padre) Recibí todos los Tack Tack T ¿ Fin Global ?

21 proParTerminación... (mensaje de ACK)equilibrado-21 4 15826 5 18203 6 17992 8 18456 9 17924 10 16598 11 16990 1 15586 0 7 18272 2 18519 3 18575 12 18477 13 17002 14 17610 15 18210

22 proParTerminación... (modo Anillo)equilibrado-22 P0P0 P1P1 P2P2 P n-1 Idea: Propagarse (recircular) un msjFin¿ Fin global ? ¡ No igual a modelo Primos ! and fin local ¿Código de P 0 ? Falla si reactivación de Procesos

23 proParTerminación... (modo Anillo)equilibrado-23 Solución: Dar dos o más vueltas al anillo => msjBlanco + msjNegro P0P0 PiPi PjPj P n-1 T ¡ Pi puede estar activo ! P0P0 PiPi PjPj P n-1 T PjPj PjPj ¡ P 0 lo recircula como blanco ! ¿ Fin Global ?

24 proParTerminación... (modo Árbol)equilibrado-24 Idea: La misma del anillo aplicada a una estructura en árbol and fin local and fin local and fin local Nodos Hoja y Raíz especiales

25 proParCamino más cortoequilibrado-25 Problema: Encontrar el mejor camino de un punto a otro Escalada Cima Campamento Base

26 proParCamino más cortoequilibrado-26 Representación: Grafo (nodos, arcos, pesos) Escalada Cima Campamento Base 10 51 24 8 14 9 17 13 ¿Qué estructura de datos?: A.Matriz de adyacencia  10   8132451  14   9   17  ABCDEF A B C D E F origen destino B.Lista de adyacencia B10 A B C D E F C8D13E24F51 D14 E9 F17 ¿ Mejor ?

27 proParCamino más cortoequilibrado-27 Método de búsqueda: (Moore, 1957), (Dijkstra, 1959),....  10   8132451  14   9   17  ABCDEF A B C D E F origen destino ViVi VjVj didi w i,j djdj Newd j = min(d j, d i +w i,j ) Pila de Vértices Distancias mínimas 0  ABCDEF A 010  B 0 18233461CED 01018233451CD 01018233251CE 01018233249C 01018233249 ¿Cómo se puede saber la ruta? A B B E D E

28 proParCamino más cortoequilibrado-28 #NodosTiempo 1024 2048 4096 8192 1:371 12:796 42:528 357:343 radioC. ¿150?

29 proParCamino más cortoequilibrado-29

30 proParCamino más cortoequilibrado-30 Código paralelo: Modelo centralizado pila de vértices P maestro P esclavo ¿Matriz de adyacencia? ¿Mínimos actuales? Difundir todos vs cambios inic (matriz, PV, dist); mcast (esclavos, &matriz); repeat Ei = rec(-1, &msj); if (msj == dameVertice) env (Ei, {sacar(&PV), dist}); else //msj == tomaVertices actualizar (&PV, &dist, msj); until condicionFin(); mcast (esclavos, &msjFin); maestro ¿ Condición de finalización ? ¿ Código de los esclavos ?

31 proParCamino más cortoequilibrado-31 Código paralelo: Modelo distribuido ¿Seguimiento?  10   8132451  14   9   17  0  ABCDEF

32 proParCamino más cortoequilibrado-32 Código paralelo: Modelo distribuido (Seguimiento) ∞ 10 ∞ B A 8132451 ∞ C D E F B 14 ∞ D C 9 ∞ E D 17 ∞ F E ∞ F M m1[0]m1[0] 0 m 2 [10] 10 m 3 1 [18] m 3 2 [23] m 3 4 [61] m 3 3 [34] 1823 61 34 m 4 [32] m 5 [32] m 6 [51] 32 51 m 7 [49] 49 ¿ Código de los esclavos ? ¿ Cuándo terminar ? ¿ Agrupar ? ¿Resultados?

33 proParCamino más cortoequilibrado-33 #NodosTiempo 1024 2048 4096 8192 1:371 12:796 42:528 357:343 radioC. ¿150? FIN paralelo4 Tiempo 0:923 1:619 29:732 129:603 secRápido Tiempo 0:005 0:022 0:088 0:347 ?


Descargar ppt "Procesamiento ParaleloCurso 14/15 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva,"

Presentaciones similares


Anuncios Google