PROGRAMACIÓN PARALELA Tema 3: Rutinas básicas de comunicación

Slides:



Advertisements
Presentaciones similares
Dirección IP - Características
Advertisements

MEDIDAS DE TENDENCIA CENTRAL
Redes de computadoras Una red de cómputo está formada por un grupo de computadoras interconectadas a través de uno o varios medios de transmisión. Su.
Internet y tecnologías web
TEMA 2 MÚLTIPLOS Y DIVISORES
Funciones lógicas y su simplificación
DETERMINANTES.
Cuestiones y problemas
Cuestiones y problemas
Aritmética del Computador Introducción a la Tecnología de la Información.
Red de Anillo Topologías de red: Por: Paula Badilla Edgar Vargas
CLASE 1 SISTEMAS NUMÉRICOS Y CÓDIGOS
Apuntes 2º Bachillerato C.T.
Redes Informáticas.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
PROTOCOLOS Y ESTANDARES DE RED
TOPOLOGIA DE ANILLO Y TOPOLOGIA DE BUS
Redes y Comunicaciones
REDES DE INTERCONEXIÓN
Proyecto para Centros que trabajan una vez por semana.
INTRODUCCIÓN TOPOLOGIA EN ESTRELLA TOPOLOGIA BUS - LINEAL
TOPOLOGIAS PARA REDES La topología de red es la disposición física en la que se conectan los nodos de una red de ordenadores o servidores. Estos computadores.
Encaminamiento en redes hipercubo
DETERMINANTES DE UNA MATRIZ
Suma, resta multiplicación y división de polinomios Scherzer

DETERMINANTE DE UNA MATRIZ
¿Quién la hizo? Tienes que adivinar quién hizo cada obra de arte, basado en los apuntes que tomaste y las obras que vimos de los artistas.
Operaciones con fracciones
RESUMEN CASOS DE FACTORIZACION IDENTIFICACION DE POLINOMIOS Y PASOS A SEGUIR EN LA FACTORIZACION Normal Superior de Envigado Profesor: Pedro Orlando.
SATISFACCION DE RESTRICCIONES Sección 1-3
Introducción a la Teleinformatica
TCP/IP V4 Redes de Computadoras uclv.
LA RECTA Y SUS ECUACIONES
Tema 13 Teoría de Redes Topología de redes: Conceptos fundamentales
REDES DE COMPUTADORAS.
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
Presentación Elaborada Por LENID SUAREZ POSADA CAMILO RAMIREZ CARDONA Presentado A Ing. Carlos E. Molina En Su Materia REDES II.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Diseño y Mantenimiento de un cluster para la dinámica de fluidos
Topología de red La topología de red se define como la cadena de comunicación usada por los nodos que conforman una red para comunicarse.
TOPOLOGIA DE REDES La topología de red o forma lógica de red se define como la cadena de comunicación que los nodos que conforman una red usan para comunicarse.
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
Redes de Computadores I Agustín J. González
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
Arquitecturas Paralelas
Teo. 4: Operaciones básicas de comunicación
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Telecomunicaciones y Trabajo Distribuido. Sistema Distribuido Recursos Servidor Red Servidor Nodo ANodo C Nodo B.
Topologías Gabriel Savo. Red en Bus Todas las estaciones están conectadas a un único canal de comunicaciones por medio de unidades de interfaz y derivadores.
Que es una red Que es Una topología de red. Características Elección de una topología Tipos de topología de red Básica.
Redes de Area Local, LAN Una red de área local es una red de datos de alta velocidad que cubre un área geográfica relativamente pequeña. Típicamente conecta.
Escuela Normal “Profr. Darío Rodríguez Cruz”
Topologías de Red.
Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)
La topología de red Se define como el mapa físico o lógico de una red para intercambiar datos. En otras palabras, es la forma en que está diseñada la red,
 El término topología se refiere a la forma en que está diseñada la red, bien físicamente (rigiéndose de algunas características en su hardware) o bien.
Nerea Cano Vasickova 4ºA. 1. Conceptos básicos 1.1. Que es una red 1.2. Tipos de redes 2. Topologías de redes 3. Transmisión de datos en las redes 4.
Es un conjunto de equipos informáticos conectados entre sí por medio de dispositivos físicos que envían y reciben impulsos electrónicos, ondas electromagnéticas,
FIN ARCHIVO 2-3 Una Red es justamente un sistema de comunicación que se da entre distintos equipos para poder realizar una comunicación eficiente, rápida.
o Es un conjunto de operaciones distribuidas, con la finalidad de compartir hardware y software o Permite el intercambio de información ente ordenadores.
UD 1: “Introducción a los servicios de red e Internet” Las redes de ordenadores. Tipos. –Comunicación en la Red –Modelo OSI. Arquitectura TCP/IP. Gustavo.
Lab. 8: Métodos directos e iterativos para sistemas de Ec. lineares Algoritmos paralelos Glen Rodríguez.
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
JENNY ANDREA GRAJALES  La topología de red se define como una familia de comunicación usada por los computadores que conforman una red para intercambiar.
BUSES DE DATOS.
Modelos y topologías de red
#REDES.. ¿Qué es una red? Conjunto de computadores, equipos de comunicaciones y otros dispositivos que se pueden comunicar entre sí, a través de un medio.
 La topología de red o forma lógica de red se define como la cadena de comunicación que los nodos que conforman una red usan para comunicarse.  Un ejemplo.
Transcripción de la presentación:

PROGRAMACIÓN PARALELA Tema 3: Rutinas básicas de comunicación Kumar, Grama, Gupta, Karypis, cap 3 Programación Paralela Rutinas Básicas de Comunicación 1

Rutinas básicas Difusión simple: enviar el mismo dato de un procesador origen al resto de procesadores (MPI_Bcast) Acumulación simple: combinar datos de todos los procesadores en uno destino (MPI_Reduce) Difusión múltiple: enviar datos de cada procesador (el mismo desde cada procesador) a todos los demás (MPI_Alltoall) Acumulación múltiple: combinar datos de todos los procesadores en todos ellos (MPI_Reduce_scatter) Difusión personalizada: enviar datos diferentes de un procesador origen al resto de procesadores (MPI_Scatter) Difusión múltiple personalizada: enviar datos diferentes de cada procesador a todos los demás Reducción prefija: acumular en cada procesador i datos del 0 al i-1 MPI_Scan( ) Programación Paralela Rutinas Básicas de Comunicación 2

Rutinas básicas Muchas de ellas se encuentran en las librerías de comunicación. Pueden no estar implementadas de manera eficiente para el sistema donde nos encontramos. Otras pueden no encontrarse o ser necesario programarlas para intercalarlas con computación. Programación Paralela Rutinas Básicas de Comunicación 3

Modelo de comunicación Se considera topología lógica de procesos. Tiempo de inicio de comunicación, ts , (start-up time). Tiempo de transferencia de un dato, tw , (word-sending time). Coste de transferencia de n datos: ts+twn Normalmente ts >>> tw >>> tc En memoria compartida la diferencia es menor, en redes o sistemas distribuidos mayor. Programación Paralela Rutinas Básicas de Comunicación 4

Topologías más usuales Anillo unidireccional o bidireccional simple pipeline Malla o toro escalable trabajo por filas o columnas diámetro moderado Hipercubo diámetro mínimo Árbol de distintos grados Programación Paralela Rutinas Básicas de Comunicación 5

Difusión simple. Anillo unidireccional En paralelo para r=0,1,...,p-1 En Pr: si r=origen enviar datos a (r+1) mod p en otro caso si r<>(origen-1) mod p recibir datos de (r-1) mod p en otro caso Coste: (p-1)(ts+ntw) 1 2 ....... p-1 Programación Paralela Rutinas Básicas de Comunicación 6

Difusión simple. Anillo bidireccional En paralelo para r=0,1,...,p-1 En Pr: si r=origen enviar datos a (r+1) mod p enviar datos a (r-1) mod p en otro caso si r entre (origen+1) mod p y (origen+ ‪ (p-1)/2 ‫ -1) mod p recibir datos de (r-1) mod p en otro caso si r entre (origen+ ‪ (p-1)/2 ‫ -2) mod p (origen-1) mod p recibir datos de (r+1) mod p en otro caso si r=origen+ ‪ (p-1)/2 ‫ en otro caso ‫ Coste: ‪ (p-1)/2 ‫ (ts+ntw) En red hay colisiones: ‪ (p-1)/2 ‫ ts+(p-1)ntw Programación Paralela Rutinas Básicas de Comunicación 7

¿En los ejemplos anteriores? Comunicaciones Hay que comprobar si puede haber bloqueo: Puede depender el tipo de comunicación que se use. El coste de las comunicaciones. Puede depender del tipo de sistema en que estamos. Si permite solapar comunicación y computación. Depende del algoritmo donde se use la rutina. ¿En los ejemplos anteriores? Programación Paralela Rutinas Básicas de Comunicación 8

Acumulación simple. Anillo unidireccional En paralelo para r=0,1,...,p-1 En Pr: si r=(destino+1) mod p enviar datos a (r+1) mod p en otro caso si r<>destino recibir datos de (r-1) mod p combinar datos en otro caso ¿Posible reducir computación? Coste: (p-1)(ts+ntw+ntc) Programación Paralela Rutinas Básicas de Comunicación 9

Difusión múltiple. Anillo bidireccional En paralelo para r=0,1,...,p-1 En Pr: para i=1,2,...,p-1 si r es par recibir dato (r-i) mod p de (r-1) mod p enviar dato (r-i+1) mod p a (r+1) mod p en otro caso Coste: 2(p-1)(ts+ntw) ¿en red? Programación Paralela Rutinas Básicas de Comunicación 10

Difusión simple. Hipercubo 6 7 3 000 3 3 1 2 3 2 100 010 001 3 3 2 2 2 4 5 3 110 101 011 3 3 1 1 111 si r=0 para i=0,1,...,log p-1 enviar dato a 2i en otro caso recibir dato s=min { i / 2i >r} para i=s,s+1,...,log p-1 enviar dato r+ 2i Coste: 2 log p (ts+ntw) ¿en red? Programación Paralela Rutinas Básicas de Comunicación 11

Difusión simple. Hipercubo 6 7 3 101 3 3 1 2 2 3 2 2 001 111 100 3 3 2 4 5 3 1 011 000 110 3 3 1 010 Desde origen distinto de cero, hacer or exclusivo con el nuevo origen Programación Paralela Rutinas Básicas de Comunicación 12

Acumulación simple. Hipercubo si r=0 para i=log p-1,...,0 recibir dato de 2i combinar en otro caso s=min { i / 2i >r} para i=log p-1,...,s recibir dato de r+ 2i enviar dato a r - 2s-1 000 1 3 2 100 010 001 1 1 2 110 101 011 1 111 Coste: log p (ts+tw +ts) Programación Paralela Rutinas Básicas de Comunicación 13

Difusión múltiple. Hipercubo 1 6 7 3 3 tam=1 pos=r*b nodo=r para i=0,1,...,log p-1 bit=nodo mod 2 si bit=0 enviar datos pos a pos+tam*b-1 a nodo r+tam recibir datos pos+tam*b a pos+2*tam*b-1 de nodo r+tam en otro caso recibir datos pos-tam*b a pos-1 de nodo r-tam enviar datos pos a pos+tam*b-1 a nodo r-tam pos=pos-tam*b nodo=nodo div 2 tam=tam*2 2 3 2 1 2 2 2 4 5 3 3 1 1 1 Coste: 2 log p ts+2(p-1)ntw Programación Paralela Rutinas Básicas de Comunicación 14

Difusión simple. Malla Coste: En paralelo para i=0,1,...,r-1;j=0,1,...,r-1; con r*r=p; en cada Pij si i=0 y j=0 enviar datos a 0,1 enviar datos a 1,0 en otro caso si i=0 y j<>r-1 recibir datos de 0,j-1 enviar datos a 0,j+1 enviar datos a 1,j en otro caso si i=0 recibir datos de 0,r-2 enviar datos a 1,r-1 en otro caso si i<>r-1 recibir datos de i-1,j enviar datos a i+1,j en otro caso recibir datos de r-2,j Coste: 2 (√p-1) (ts+ntw ) Programación Paralela Rutinas Básicas de Comunicación 15

Difusión de procesadores en la diagonal principal a la fila y columna si i=0 y j=0 enviar a 0,1 enviar a 1,0 si i=r-1 y j<>r-1 enviar a r-1,r-2 enviar a r-2,r-1 si i=j y i<r/2 enviar a i,j+1 enviar a i-1,j enviar a i,j-1 enviar a i+1,j si i=j y i>=r/2 si i<r/2 y i<j y j=r-1 y i=0 recibir de i,j-1 recibir de i+1,j si i<r/2 y i<j y j=r-1 y i<>0 recibir de i,j-1 recibir de i+1,j enviar a i-1,j si i<r/2 y i<j y j<>r-1 y i=0 enviar a i,j+1 si i<r/2 y i<j y j<>r-1 y i<>0 si i<r/2 y i>=j y j=0 recibir de i-1,j enviar a i+1,j recibir de i,j+1 si i<r/2 y i>=j y j<>0 enviar a i,j-1 si i>=r/2 y i>j y j=0 y i=r-1 recibir de i,j+1 recibir de i-1,j si i>=r/2 y i>j y j=0 y i<>r-1 enviar a i+1,j si i>=r/2 y i>j y j<>0 y i=r-1 enviar a i,j-1 si i>=r/2 y i>j y j<>0 y i<>r-1 si i>=r/2 y i<j y j=r-1 recibir de i+1,j enviar a i-1,j recibir de i,j-1 si i>=r/2 y i<j y j<>r-1 enviar a i,j+1 Programación Paralela Rutinas Básicas de Comunicación 16