Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Procesamiento Paralelo Curso 17/18
5 3 2, 3, 3 2+, 2 4 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 equilibrado-2
Equilibrado de carga y Terminación Equilibrado de carga (estática vs dinámica) Dinámico y centralizado Dinámico y distribuído Aplicado a arquitectura “pipeline” Terminación distribuída (condición) Mensajes de ACK Modo anillo Modo árbol Ejemplo “Camino más corto”
3
proPar Equilibrado de carga equilibrado-3
evitar P0 P1 P2 P3 P4 P5 ideal ¿Cómo se consigue? ¿A qué se debe? División imperfecta del trabajo Equilibrado estático Equilibrado dinámico P4 más rápido y P1 más lento
4
proPar Equilibrado estático equilibrado-4
Decisión “a priori” sin tener en cuenta ejecución real de los Pi Ejemplo 1 OK: cuentaPar1 mpirun –np N cuentaPar PC9 A B C D M0 E1 E2 E3 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,05 Nodos 1 2 3 4 5 6 7 8
5
proPar Equilibrado estático equilibrado-5
Ejemplo 2 MAL: mandelpar “trozos” 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 Difícil estimar tiempos de ejecución de las partes sin ejecutarlas
6
proPar Equilibrado estático equilibrado-6
Ejemplo 3 MAL: primopar3 ¿ Viable un reparto estático mejor ? primosec [ ]720 …. 5457, 5455, 5453, 5451 …. , 5477, 5471 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,75 0,63 0,89 Nodos 1 2 4 6 8 10 12 16 mpirun –np N primopar3 720 PC1..PC4 primopar3 [ ]720 …. 5475, 5467, 5459, 5451 …. 5477, 5469, 5461, 5453 …. 5479, 5471, 5463, 5455 …. 5481, 5473, 5465, 5457
7
proPar Equilibrado estático equilibrado-7
Ejemplo 4 MAL: mandelpar “filas fijas” Round Robin 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 Nodos 1 2 4 6 8 10 12 14 mpirun –np N mandelparFilas PC1..PC8 duales heterogéneos 8:908 0,43 15 Se usan PCs lentos E1 filas 0, 4, 8, 12, … E2 filas 1, 5, 9, 13, … E3 filas 2, 6, 10, 14, … E4 filas 3, 7, 11, 15, …
8
proPar Equilibrado estático equilibrado-8
9
proPar Equilibrado estático equilibrado-9
Ejemplo 5 MAL: primopar2 Ojo con redes directas Epiphany 16 ? 28:035 47:680 Mapeo, planificación, scheduling
10
proPar Equilibrado dinámico centralizado equilibrado-10
Idea: Maestro con tareas pendientes que reparte (en vivo) a los esclavos 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 Nodos 1 2 4 6 8 10 12 14 8:908 0,43 15 estático 1 2 3 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:617 0,69 dinámico maestro e1 e2 e3 e4 4 Se usan PCs lentos
11
proPar Equilibrado dinámico centralizado equilibrado-11
Idea: Maestro con tareas pendientes que reparte (en vivo) a los esclavos Ejemplo 7 MAL: caballoSec 3 3 Ti 602:355 304:164 216:458 160:797 157:207 131:073 105:461 88:776 Ei 0,99 0,93 0,94 0,77 0,82 0,85 Nodos 1 2 3 4 5 6 7 8 mpirun –np N caballoPar 3 3 PC1 ¿Código paralelo? 1..8 cores
12
proPar Equilibrado dinámico centralizado equilibrado-12
Idea: Maestro con tareas pendientes que reparte (en vivo) a los esclavos cola de tareas Pmaestro Pesclavo Granja de Procesadores: Fractal for (fila=0; fila<FILAS; f++) enviar(proceso[fila%N], fila); mandelpar ¿igual que estático? Dame tarea Toma tarea Tareas no homogéneas: Servir antes las grandes Creación dinámica de esclavos Creación dinámica de tareas DETALLES ¿Cuándo terminar?
13
proPar Equilibrado dinámico centralizado equilibrado-13
¿Cuándo terminar? cola de tareas Pmaestro Pesclavo No basta {tareas} = ¿Un esclavo detecta fin global? M e0 e1 ei en ¿Cada esclavo detecta su fin local? Cuello de botella en el maestro Sencillo y eficiente si: pocos esclavos y cálculo intensivo
14
proPar Equilibrado dinámico distribuido equilibrado-14
Idea: Distribuir la cola de tareas entre más procesos ? Jerarquía de maestros Pmaestro cola de tareas Pesclavo PsubM0 PsubMn
15
proPar Equilibrado dinámico distribuido equilibrado-15
Totalmente descentralizado Iniciada por receptor “relajado” Iniciada por emisor “axfisiado” Pi Pj Pk Pm Ri solicita a ¿Ej? si: {tareas} = o pocas Transferencia de tareas Sistema muy cargado Sistema poco cargado Ej envía a ¿Ri? si: {tareas} = demasiadas ¿De quién recibo? ¿A quién envío?
16
proPar Equilibrado dinámico distribuido equilibrado-16
¿De quién recibo? ¿A quién envío? Totalmente descentralizado Redes Directas (Pi recibe de ¿?) 75% Pi ¿Mejores candidatos los vecinos? ¿Cuándo y cuánto doy? Solución más generalista Pi RoundRobin Aleatorio Algoritmo local elige Pj
17
proPar Aplicado a arquitectura “pipeline” equilibrado-17
Maestro Esclavo 1 2 N tareas resultados env(ET1, &T); rec(ER1, &R); recibir(Eizq, &Tarea); if estoyLibre Resultado = computar(Tarea); enviar (Eizq, &Resultado); else enviar (Eder, &Tarea); ¿Alternativa? genera dibuja T R ET C ER T L R T : Tarea ET: Encamina T R : Resultado ER: Encamina R L: Libre
18
proPar Aplicado a arquitectura “pipeline” equilibrado-18
genera dibuja ET C ER T L R maestro E1 En ¡ Ojo ! ¿ Código ? recibir(-1, &msj); if (msj == Tarea) if Ci.Libre enviar (Ci, &msj); Ci.Ocupado; else enviar (ETder, &msj); Ci.Libre ETi ¡ Autocontención ! ? if soyUltimo recibir(Ci, &Libre); enviar (Ci, &msj); else enviar (ETder, &msj);
19
proPar Terminación distribuida (condición) equilibrado-19
Un Pi detecta fin global => fácil Pi Pj Pk Pm Cada Pi debe alcanzar fin local ? Esclavos envían msjFin a maestro Maestro No hay mensajes en tránsito + Transferencia de tareas ¡ Puede Fallar ! rec(-1, <, ); repeat eval (sacar(<), <); if muyGrande(LT) env (alguien, sacar(<), 0); if vacia(LT) rec (-1, <, 0); until vacia(LT); ¿Código?
20
proPar Terminación distribuida (condición) equilibrado-20
rec(-1, <, ); repeat eval (sacar(<), <); if muyGrande(LT) env (alguien, sacar(<), 0); if vacia(LT) rec (-1, <, 0); until vacia(LT); Pi Pj Pi Pj Pi Pj Pi Pj rec(-1, <, ); repeat eval (sacar(<), <); if muyGrande(LT) env (alguien, sacar(<), 0); if vacia(LT) rec (-1, <, 0); until vacia(LT); ?
21
proPar Terminación ... (mensaje de ACK) equilibrado-21
Pj T Mi padre es Pj Tack inactivo activo Pi No hay más tareas Envié todos mis Tack (salvo a mi Padre) Recibí todos los Tack FinLocal T Tack Otros Procesos T T Tack Tack ¿ Fin Global ?
22
proPar Terminación ... (mensaje de ACK) equilibrado-22
¡ Jerarquía Padres | Hijos ! mensajes 14 dos padres [4 y 15] 1 15586 2 18519 3 18575 4 15826 5 18203 6 17992 8 18456 9 17924 10 16598 11 16990 7 18272 12 18477 13 17002 14 17610 15 18210
23
proPar Terminación ... (modo Anillo) equilibrado-23
Pn-1 Idea: Propagarse (recircular) un msjFin and fin local ¿ Fin global ? ¡ No igual a modelo Primos ! ¿Código de P0? Falla si reactivación de Procesos ¿Código de Pi?
24
proPar Terminación ... (modo Anillo) equilibrado-24
Pi Pj Pn-1 ¡ Pi puede estar activo ! Solución: Dar dos o más vueltas al anillo => msjBlanco + msjNegro T P0 Pi Pj Pn-1 Pj Pj ¡ P0 lo recircula como blanco ! ¿ Fin Global ?
25
proPar Terminación ... (modo Árbol) equilibrado-25
Idea: La misma del anillo aplicada a una estructura en árbol and fin local Nodos Hoja y Raíz especiales
26
proPar Camino más corto equilibrado-26
Problema: Encontrar el mejor camino de un punto a otro Escalada Cima Campamento Base
27
proPar Camino más corto equilibrado-27
Representación: Grafo (nodos, arcos, pesos) Escalada Cima Campamento Base ¿Qué estructura de datos?: 10 51 24 8 14 9 17 13 Matriz de adyacencia 10 8 13 24 51 14 9 17 A B C D E F origen destino Lista de adyacencia B 10 • A C D E F 8 13 24 51 14 9 17 ¿ Mejor ?
28
proPar Camino más corto equilibrado-28
Método de búsqueda: (Moore, 1957), (Dijkstra, 1959), .... 10 8 13 24 51 14 9 17 A B C D E F origen destino Pila de Vértices Distancias mínimas A B C D E F A B B B B E D 10 B 18 23 34 61 C E D 51 32 49 • Vi Vj di wi,j dj Newdj = min(dj, di+wi,j) ¿Cómo se puede saber la ruta?
29
proPar Camino más corto equilibrado-29
radioC. ¿150? #Nodos Tiempo 1024 2048 4096 8192 1:371 12:796 42:528 357:343
30
proPar Camino más corto equilibrado-30
31
proPar Camino más corto equilibrado-31
Código paralelo: Modelo centralizado inic (matriz, PV, dist); bcast (esclavos, &matriz); repeat Ei = rec(-1, &msj); if (msj == dameVertice) env (Ei, {sacar(&PV), dist}); else //msj == tomaVertices actualizar (&PV, &dist, msj); until condicionFin(); bcast (esclavos, &msjFin); maestro pila de vértices Pmaestro Pesclavo ¿Mínimos actuales? ¿Matriz de adyacencia? ¿ Condición de finalización ? Difundir todos vs cambios ¿ Código de los esclavos ?
32
proPar Camino más corto equilibrado-32
Código paralelo: Modelo distribuido ¿Seguimiento? 10 8 13 24 51 14 9 17 A B C D E F
33
proPar Camino más corto equilibrado-33
Código paralelo: Modelo distribuido (Seguimiento) ¿ Código de los esclavos ? 10 ∞ B A 8 13 24 51 C D E F 14 D C 9 E 17 F M ¿ Cuándo terminar ? m1[0] ¿ Agrupar ? m2[10] m33[34] m7[49] 18 23 61 34 10 32 51 m31[18] m34[61] m5[32] m32[23] m6[51] m4[32] 49 ∞ ¿Resultados?
34
proPar Camino más corto equilibrado-34
#Nodos Tiempo 1024 2048 4096 8192 1:371 12:796 42:528 357:343 radioC. ¿150? paralelo4 Tiempo 0:923 1:619 29:732 129:603 secRápido Tiempo 0:005 0:022 0:088 0:347 ?
35
proPar Camino más corto equilibrado-35
36
proPar Camino más corto equilibrado-36
FIN
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.