La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

Presentaciones similares


Presentación del tema: "Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)"— Transcripción de la presentación:

1 Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)

2 Redución Dado un operador asociativo , Dado un operador asociativo , computar a 0  a 1  a 2  …  a n-1 computar a 0  a 1  a 2  …  a n-1 Ejemplos Ejemplos  suma  producto  And, Or  Máximo, Minimo

3 La Evolución de Reducción Paralela Sea λ el tiempo para enviar un valor de una tarea a otra. Sea χ el tiempo para sumar dos valores. El tiempo total para esta solución es (n-1)(λ + χ)

4 Evolución de Reducción Paralela 2 Tiempo total para esta solución: n/2(λ + χ) Tttitiempo iTttitiempo i

5 Tiempo total para esta solución: (n/4+1)(λ+χ)

6 Las comunicaciones para el caso de n=16 02108 13119 571513 461412 Un árbol binario con las hojas númeradas 0,1,…,n-1

7 Determinar la Suma Global 4207 -35-6-3 8123 -446

8 Determinar la Suma Global 17-64 4582

9 Determinar la Suma Global 8-2 910

10 Determinar la Suma Global 178

11 Determinar la Suma Global 25

12 Aglomeración y Asignar Tareas a Procesadores 02108 13119 571513 461412 Aglomerarar tareas para minimizar comunicaciones. Tiempo de computación: 3χ Tiempo para comunicaciones: 2(λ+χ). AgaAga A

13 Aglomeración y Asignar Tareas a Procesadores en General La cantidad de tareas es estática La cantidad de tareas es estática Cantidad de computaciones por tarea es constante Cantidad de computaciones por tarea es constante Patrones de comunicaciones regulares Patrones de comunicaciones regulares En un caso asi, aglomeramos para minimizar comunicaciones. Asignar n/p tareas a cada uno de los procesadores.

14 Analisis de Reducción En general, Tiempo para las computaciones: (  n/p  -1)χ y Tiempo para comunicaciones:  log p  (λ+χ), donde  x  es el entero menor que es mayor o igual a x.

15 Asignación(Ejericicio 3.7 del texto) Usando el patron de comunicaciones ilustrado anteriormente, escribir un programa en C que describe las comunicaciones que se hacen por una tarea que participa en una reducción. Dada la cantidad n de tareas y el número de identificación i, donde 0≤i<n, el programa deberia imprimir una lista de todos los mensajes enviados y/ o recibidos por la tarea i. La lista debe indicar la destinación de todos los mensajes enviados y la fuente de todos los Usando el patron de comunicaciones ilustrado anteriormente, escribir un programa en C que describe las comunicaciones que se hacen por una tarea que participa en una reducción. Dada la cantidad n de tareas y el número de identificación i, donde 0≤i<n, el programa deberia imprimir una lista de todos los mensajes enviados y/ o recibidos por la tarea i. La lista debe indicar la destinación de todos los mensajes enviados y la fuente de todos los mensajes recibidos. mensajes recibidos. Puede presumir que la cantidad de tareas es una potencia de 2.

16 Asignación (cont) Por ejemplo, si n=8 y i=1, la salida debe ser: Por ejemplo, si n=8 y i=1, la salida debe ser: mensaje recibido de la tarea 0 mensaje recibido de la tarea 0 mensaje enviado a la tarea 3 mensaje enviado a la tarea 3

17 El Problema de n Cuerpos (The n Body Problem) Es el problema de determinar, dado las posiciones, masas, y velocidades de n cuerpos, sus mociones subsecuentes de acuerdo con la mecánica clásica. Es el problema de determinar, dado las posiciones, masas, y velocidades de n cuerpos, sus mociones subsecuentes de acuerdo con la mecánica clásica.

18 El Problema de n Cuerpos

19 Particionar Partición de dominio Partición de dominio Asumir una tarea por partículo Asumir una tarea por partículo Cada tarea tiene la posición del partículo y su vector de velocidad Cada tarea tiene la posición del partículo y su vector de velocidad En cada iteración En cada iteración  se obtienen las posiciones de todos los otros partículos  Se computan la nueva posición y el nuevo vector de velocidad

20 La Operación Gather Pone los datos de un conjunto de tareas en una sola tarea.

21 La Operación All-gather Pone los datos de un conjunto de tareas en cada una de las tareas.

22 Grafo Completo para All-gather En cada paso de comunicaciones, cada tarea manda su posición a otra tarea. Al finalizar de n-1 pasos, cada tarea tendrá todas las posiciones.

23 623 La Hipercubo para All-gather En este ejemplo, hay dos pasos de comunicaciones. En el primer paso, los pares (0,1) y (2,3)intercambian información y en el segundo paso, los pares (0,2) y (1,3) intercambian información.

24 Hipercubos Un hipercubo de dimensión d es un grafo con n=2 d nodos númerados 0,1,…,n-1 en binario tal que hay una arísta entre dos nodos i y j si y solo si i y j difieren en exactamente un bit. Un hipercubo de dimensión d es un grafo con n=2 d nodos númerados 0,1,…,n-1 en binario tal que hay una arísta entre dos nodos i y j si y solo si i y j difieren en exactamente un bit.

25 Subcubos de Hipercubos Númeramos los bits de un número binario, empezando desde la derecha hacia la izquierda, 0,1,…,d-1. Númeramos los bits de un número binario, empezando desde la derecha hacia la izquierda, 0,1,…,d-1. Un subcubo de dimensión e de un hipercubo de dimensión d es un subgrafo cuyos nodos tienen representaciones binarias que son constante en d-e posiciones de bit especificas. Un subcubo de dimensión e de un hipercubo de dimensión d es un subgrafo cuyos nodos tienen representaciones binarias que son constante en d-e posiciones de bit especificas.

26 All-gather en un hipercubo Una comunicación en un hipercubo consiste de un intercambio de mensajes entre todos los pares de nodos cuyas representaciones binarias difieren en exactamente un bit. Una comunicación en un hipercubo consiste de un intercambio de mensajes entre todos los pares de nodos cuyas representaciones binarias difieren en exactamente un bit. All-gather se puede llevar a cabo en un hipercubo de dimensión d en d pasos de comunicación. All-gather se puede llevar a cabo en un hipercubo de dimensión d en d pasos de comunicación.

27 Aglomerar y Asignar Tareas a Procesadores 671415 451213 231011 0189 Aglomerar tareas en subcubos para minimizar comunicaciones. Asignar n/p tareas a cada uno de p procesadores. Hay log p pasos de comunicaciones. AgaAga A

28 Analisis de Tiempo Hay log p pasos de comunicaciones. Hay log p pasos de comunicaciones. En paso#1, los mensajes son de largo n/p En paso#1, los mensajes son de largo n/p En paso#2, los mensajes son de largo 2n/p. En paso#2, los mensajes son de largo 2n/p. En paso#3, los mensajes son de largo 4n/p. En paso#3, los mensajes son de largo 4n/p....... En paso#i, los mensajes son de largo 2 i n/p En paso#i, los mensajes son de largo 2 i n/p

29 Analisis de Tiempo Sean λ el tiempo para iniciar un mensaje Sean λ el tiempo para iniciar un mensaje β la cantidad de datos que se pueden β la cantidad de datos que se pueden enviar en una unidad de tiempo. enviar en una unidad de tiempo. Luego λ + n/β es el tiempo que se necesita para mandar n datos. Luego λ + n/β es el tiempo que se necesita para mandar n datos.

30 Tiempo de Comunicación Hipercubo

31 Tiempo de Comunicaciones Grafo Completo

32 Añadir Entradas/Salidas

33 Scatter

34 Scatter p elementos en log p pasos 1. Mandar la mitad a una tarea y la otra mitad a otra tarea 2. Cada tarea que recibio en el paso previo manda la mitad de sus elementos a una tarea inactiva y la otra mitad a otra tarea inactiva …. …. Después despues de log p pasos cada tarea tendrá un element distinto de la entrada. Después despues de log p pasos cada tarea tendrá un element distinto de la entrada.

35 Resumen: Modelo Tarea/canal Computación Paralela Computación Paralela  Conjunto de tareas  Interacciones por canales Buen Diseños Buen Diseños  Maximizar computaciones locales  Minimizar comunicaciones  Escabilidad

36 Resumen: Pasos de Diseño Particionar la computación Particionar la computación Aglomerar tareas Aglomerar tareas Mapear tareas a procesadores Mapear tareas a procesadores Metas Metas  Maximizar la utilización de procesadores  Minimizar las comunicaciones entre procesos

37 Resumen: Algoritmos Fundamentales Reduction Reduction Gather y scatter Gather y scatter All-gather All-gather


Descargar ppt "Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)"

Presentaciones similares


Anuncios Google