Procesamiento Paralelo Curso 17/18

Slides:



Advertisements
Presentaciones similares
GRAFOS: ALGORITMOS FUNDAMENTALES
Advertisements

ProParCurso 13/14 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva, Divide y Vencerás,

PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
El algoritmo primal-dual
Problemes de Viatjants
1 Algoritmos Elementales de Grafos Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem
Técnicas de Calidad en el Software
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Sistemas Distribuidos
Trabajo presentado por: LUIS FERNANDO OBANDO ING
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Programación Paralela Esquemas de Programación Paralela 1 PROGRAMACIÓN PARALELA Esquemas de programación paralela REFERENCIAS Wilkinson, Allen Gibbons,
Diseño y análisis de algoritmos
Algoritmos de Búsqueda “Backtracking y Branch and Bound”
Procesamiento ParaleloCurso 14/15 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva,
Capa de Red4-1 Capítulo 4: Capa de Red  4. 1 Introducción  4.2 Circuitos virtuales y redes de datagramas  4.3 ¿Qué hay dentro de un router?  4.4 IP:
ProParCurso 14/15 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva, Divide y Vencerás,
Escuela Normal “Profr. Darío Rodríguez Cruz”
“Pastry” Francisco Gamboa Herrera Tanya Pérez Herrera Taller de Redes 2010.
Facultad de Ingeniería
1 Primer Semana del Posgrado del ITLP Efectos de los Parámetros Migratorios en Algoritmos Genéticos Distribuidos Marco Antonio Castro Liera
César Gómez Martín Supercomputación “El alma está en el cerebro”
BÚSQUEDA EN ESPACIOS DE ESTADOS Espacio de estados: modelo del mundo representado por un grafo Espacio de estados: modelo del mundo representado por un.
BÚSQUEDA DE SOLUCIONES Soluciones no Informadas (cont.) Dra. Myriam Hernández A.
ALGORITMO DE DIJKSTRA BANDA DÍAZ ANA KARINA SUAREZ BARON SINDY TATIANA.
Protocolos de enrutamiento de estado de enlace
PLANIFICACIÓN DE LAS RUTAS DE DISTRIBUCIÓN
ANALISIS Y DISEÑO DEL ALGORITMOS
Procesos Concurrentes
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Guía de Ejercicios 3: D&AA Universidad Viña del Mar 30/9/2002
Licenciatura en Contaduría Tema:
Asignación de procesadores Son necesarios algoritmos para decidir cuál proceso hay que ejecutar y en qué máquina. Para el modelo de estaciones de trabajo:
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
Definición de un Sistema Distribuido
Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González
LA REGLA DE LA ESQUINA NOROESTE
TEORÍA DE GRAFOS -Algoritmo de Dijkstra -Algoritmo de Primm -Algoritmo de Kruskal Integrantes:
Exclusión mutua Un Algoritmo Centralizado Algoritmo Descentralizado
PROCESOS COMENZAR.
Análisis de redes. 3.4 Problema de flujo máximo.
CONCEPTOS PRELIMINARES (Cont)
INTRODUCCION AL ENRUTAMIENTO “EL ROUTER”. Un router también conocido como enrutador, encaminador o rúter es un dispositivo que proporciona conectividad.
L.I. Gerardo Ortiz Rivera
INGENIERÍA INFORMÁTICA Y DE SISTEMAS Docente: Mg Ing. Jesús Ocaña Velásquez ARQUITECTURA DEL COMPUTADOR.
Agentes que planifican. 1. Introduccion En la actualidad todas la mayoría de actividades en un empresa o compañía, como en el hogar o el medio ambiente.
¿Cómo son nuestros clusters?
Inteligencia Artificial
Curso de Programación Estructurada
proPar Curso 18/ , 3, 2 2, 4 3 Computadores Paralelos
Programa de Prácticas Entorno Las prácticas Planificación
Ejercicios.
Procesamiento Paralelo Curso 18/19
proPar Curso 18/ , 3, 2 2, 4 3 Computadores Paralelos
proPar Curso 18/ , 3, 2 2, 2 4 Computadores Paralelos
Balance de Carga Adaptable bajo Cómputo Paralelo en Clusters
Algoritmos de caminos más cortos
Árboles Binarios Estructuras de Datos.
ALGORITMOS DE ELECCION
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
Luis Manuel Monroy García Matemáticas discretas Ingeniería de Sistemas Universidad Simón Bolívar.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Árboles Binarios Estructuras de Datos. Las estructuras dinámicas son las en la ejecución varia el número de elementos y uso de memoria a lo largo del.
1 TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño.
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU FACULTAD DE INGENIERIA DE MINAS HUANCAYO I MODELO DE REDES Ing. Eli Teobaldo Caro Meza CURSO: INVESTIGACION.
SISTEMAS OPERATIVOS En el mundo de la informática se denomina sistema operativo al programa, o conjunto de ellos, que gestiona los recursos físicos de.
Grafos. Concepto: Un Grafo no es más que un conjunto de nodos o vértices que se encuentran relacionados con unas aristas. Además, los vértices tienen.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Exclusión Mutua Repaso Tema relacionado a la sesión anterior: Sincronización del reloj.
Transcripción de la presentación:

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, …

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”

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

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 cuentaPar1 1680000 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

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

proPar Equilibrado estático equilibrado-6 Ejemplo 3 MAL: primopar3 ¿ Viable un reparto estático mejor ? primosec [3..5449]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 [3..5449]720 …. 5475, 5467, 5459, 5451 …. 5477, 5469, 5461, 5453 …. 5479, 5471, 5463, 5455 …. 5481, 5473, 5465, 5457

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, …

proPar Equilibrado estático equilibrado-8

proPar Equilibrado estático equilibrado-9 Ejemplo 5 MAL: primopar2 Ojo con redes directas Epiphany 16 ? 28:035 47:680 Mapeo, planificación, scheduling

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

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

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?

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

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

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?

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

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

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);

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, &LT, ); repeat eval (sacar(&LT), &LT); if muyGrande(LT) env (alguien, sacar(&LT), 0); if vacia(LT) rec (-1, &LT, 0); until vacia(LT); ¿Código?

proPar Terminación distribuida (condición) equilibrado-20 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); Pi Pj Pi Pj Pi Pj Pi Pj 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); ?

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 ?

proPar Terminación ... (mensaje de ACK) equilibrado-22 ¡ Jerarquía Padres | Hijos ! 264.240 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

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?

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 ?

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

proPar Camino más corto equilibrado-26 Problema: Encontrar el mejor camino de un punto a otro Escalada Cima Campamento Base

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 ?

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?

proPar Camino más corto equilibrado-29 radioC. ¿150? #Nodos Tiempo 1024 2048 4096 8192 1:371 12:796 42:528 357:343

proPar Camino más corto equilibrado-30

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 ?

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

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?

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 ?

proPar Camino más corto equilibrado-35

proPar Camino más corto equilibrado-36 FIN