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

Slides:



Advertisements
Presentaciones similares
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
Advertisements

Planificación de Monoprocesadores
PROGRAMACIÓN PARALELA Tema 3: Rutinas básicas de comunicación
GRAFOS: ALGORITMOS FUNDAMENTALES
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
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,
Sistemas Operativos Distribuidos
ESTRUCTURAS DE DATOS AVANZADAS

REDES. Origen de las redes Fines de la década del 70 Originalmente necesidad de compartir periféricos como impresoras entre varios ordenadores.
Solución de problemas por búsqueda inteligente
Scheduling and Mapping Introducción Marco de referencia Módulos independientes Tareas con precedencia sin costo Precedencia de tareas y retardos en la.
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
PROCESAMIENTO PARALELO
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Problemes de Viatjants
HILOS Y COMUNICACIÓN ENTRE PROCESOS
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
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
Ejemplos de Grafos: Red de tráfico con caminos y cruces.
Sistemas Distribuidos
Tema 10: Gestión de Memoria
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
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,
Single-Source Shortest Paths “Camino más corto desde/hacia una fuente”
Problemas de Decisión y Optimización


Diseño y análisis de algoritmos
Parte II. Algorítmica. 3. Algoritmos voraces.
SDC y P2P Según Kurose.
Algoritmos de Búsqueda “Backtracking y Branch and Bound”
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,
Árboles Binarios Estructuras de Datos.
Capítulo 7 Gestión de memoria.
Arquitecturas Paralelas
Diseño de Redes de Comunicaciones Ópticas Introducción.
Dr. Pedro Mejía Alvarez Sistemas de Tiempo Real Transparencia 1 Planificación Cíclica Dr. Pedro Mejía Alvarez CINVESTAV-IPN, Departamento de Computación.
Escalabilidad en los Algoritmos de Aprendizaje de Redes Bayesianas ISL – Dpto de Informática – UCLM - Albacete.
- 1 - Sistema Embebidos: Propiedades de los Lenguajes y SDL Agustín J. González 1s06 Se ha tomado como base el material generado por Peter Marwedel de.
Búsqueda P2P: Comunidades Semánticas
1 Single-Source Shortest Paths “Camino más corto desde/hacia una fuente” Agustín J. González ELO320: Estructura de Datos y Algoritmos 1.er. Sem
Sistemas Distribuidos
Capa de Red4-1 Capítulo 4: Capa Red - III ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
Capa de Red4-1 Capítulo 4: Capa Red - III ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
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:
Algoritmos de Ruteo - Introducción Comunicación de Datos II – Aldo Rubiales Facultad de Ciencias Exactas - UNCPBA  La función principal de la capa de.
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”
Francisco Gamboa Herrera Tanya Pérez Herrera 26 Noviembre 2010.
Estructura de Datos 4 Grafos Dirigidos
Unidad 2 – Gestión de Procesos
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
“Pastry” Francisco Gamboa Herrera Tanya Pérez Herrera Taller de Redes 2010.
 Edsger Wybe Dijkstra Nació en Rotterdam, (Holanda) en Sus padres eran ambos intelectuales y él recibió una excelente educación. su facilidad para.
Facultad de Ingeniería
Capa de Red4-1 Capítulo 4: Capa Red - III ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
TEMA: PROCESOS y PLANIFICACIÓN
Protocolos de Enrutamiento Multicast
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
Docente: Ing LUIS A. SOTA ORELLANA. Integrantes: Shirley Peña Carlos Oliver Santiago Mendoza Quispe PROGRAMA ACADÉMICO PROFESIONAL INGENIERÍA DE SISTEMAS.
ALGORITMO FLOYD WARSHALL
Procesamiento Paralelo Curso 17/18
Transcripción de la presentación:

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

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”

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?

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 mpirun –np N cuentaPar PC9

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 mpirun –np N mandelparTrozos PC9

proParEquilibrado estáticoequilibrado-6 Ejemplo 3 MAL: primopar3 primosec [ ] 720 …. 5457, 5455, 5453, 5451 …., 5477, 5471 primopar3 [ ] 720 primopar3 [ ] 720 primopar3 [ ] 720 primopar3 [ ] 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 mpirun –np N primopar3 720 PC1..PC4 ¿ Viable un reparto estático mejor ?

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 mpirun –np N mandelparFilas PC1..PC8 duales heterogéneos 8:9080,4315 Se usan PCs lentos

proParEquilibrado estáticoequilibrado-8

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

proParEquilibrado dinámico centralizadoequilibrado-10 Idea: Maestro con tareas pendientes que reparte (en vivo) a los esclavos maestro e1 e2 e3 e 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 :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

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?

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

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

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?

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?

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

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 ! ?

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 +

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 ?

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 ?

proParTerminación... (mensaje de ACK)equilibrado

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

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 ?

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

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

proParCamino más cortoequilibrado-26 Representación: Grafo (nodos, arcos, pesos) Escalada Cima Campamento Base ¿Qué estructura de datos?: A.Matriz de adyacencia  10    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 ?

proParCamino más cortoequilibrado-27 Método de búsqueda: (Moore, 1957), (Dijkstra, 1959),....  10    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 CED CD CE C ¿Cómo se puede saber la ruta? A B B E D E

proParCamino más cortoequilibrado-28 #NodosTiempo :371 12:796 42: :343 radioC. ¿150?

proParCamino más cortoequilibrado-29

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 ?

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

proParCamino más cortoequilibrado-32 Código paralelo: Modelo distribuido (Seguimiento) ∞ 10 ∞ B A ∞ 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] m 4 [32] m 5 [32] m 6 [51] m 7 [49] 49 ¿ Código de los esclavos ? ¿ Cuándo terminar ? ¿ Agrupar ? ¿Resultados?

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