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

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

Diseño y análisis de algoritmos
Multiprocesadores 3.1 Dominios de aplicación
Secuencia finita, ordenada y lógica de instrucciones (ó pasos), los cuales permiten realizar una ó varias tareas.
Razonamiento algorítmico
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
NUMERO DE CONTROL: NOMBRE DEL TRABAJO: MAPA CONCEPTUAL
El Diseño de Algoritmos Paralelos
Investigación de Operaciones II
HISTORIA Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
ESTRUCTURAS DE DATOS AVANZADAS
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Unidad aritmético-lógica
Algoritmos de ordenación
Answering Queries Using Views (Levy, Mendelzon, Sagiv, Srivastava) Javier López C.
Complejidad Problemas NP-Completos
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
READ (*, *) WRITE(*; *) Formato libre Format → se utiliza para especificar la forma en que las variables son impresas o leídas en un programa. WRITE(*,
Profesor: Julio Canales
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Sistemas de Numeración
Tres Algoritmos Paralelos para Multiplicación Matriz Vector
Diseño de diagramación Diagrama: es una representación gráfica del flujo información de y el proceso de ejecución del programa. Plateo del problema en.
Programación en Matlab
Árboles, montículos y grafos Cola de prioridades, montículos
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Universidad de los Andes-CODENSA
Árbol recubridor mínimo Distancias
I n s t i t u t o T e c n o l ó g i c o d e T e c n o l ó g i c o d e V i l l a h e r m o s a ING. EN SISTEMAS CATEDRATICO: I.I. Zinath Javier Gerónimo.
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
Matemáticas Discretas
Códigos IRA Máster en Multimedia y Comunicaciones
DISEÑO DE SOFTWARE 1ª. Parte
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
ALGORITMOS APROXIMADOS
ESTRUCTURA DE DATOS ESD-243
Parte II. Algorítmica. 3. Algoritmos voraces.
Tae Programación WEB Ventajas de los ordenadores ( compus pa los cuates ) Que es la Programación? Que es un lenguaje de programación? Algoritmo Que es.
Divide y vencerás 1. Método general.
Unidad 3 Instrucciones secuenciales
INSTITUTO TECNOLÓGICO DE VILLAHERMOSA. CATEDRATICO:
© 2014 Cisco Systems, Inc. Todos los derechos reservados.Información confidencial de Cisco Presentation_ID 1 Capítulo 11: Traducción de direcciones de.
Unidad aritmético-lógica
Análisis y Diseño de Algoritmos
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Mejora de la localidad en operaciones de E/S colectivas no contiguas XVIII Jornadas de Paralelismo, JP’2007 Rosa Filgueira, David E. Singh, Florin Isaila,
TEMA 5: El problema del flujo con costo mínimo
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
Minitérminos, maxitérminos
Elaboración de algoritmos usando lógica de programación
Ingeniería Mecánica Estática
Operaciones Algebraicas
ANALISIS DE REDES Problema de Transporte Método de la esquina Noroeste
Capítulo 8: Árboles Autor: José Alfredo Jiménez Murillo.

Matemáticas Discretas MISTI
DETECCION DE SEÑALES BINARIAS EN RUIDO GAUSSIANO El criterio de toma de decisión fue descrito por la ecuación Un criterio muy usado para escoger el nivel.
Conalep 150 Tehuacán inmi 309 soma
Circuitos Combinacionales I
Presentación De UML Lenguaje estándar para escribir planos de software Se usa para visualizar, especificar, construir y documentar los artefactos de un.
Programación SISTEMAS NUMERICOS PROGRAMACION I INFO 012.
Algoritmos voraces Códigos de Huffman. Descripción del problema Tenemos un archivo de entrada. Asumiremos que el archivo está compuesto de bytes (enteros.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Gestión de tiempos del proyecto
Sistema Numérico Binario Prof. Carlos Ortiz Muñoz.
Transcripción de la presentación:

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

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

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)(λ + χ)

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

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

Las comunicaciones para el caso de n= Un árbol binario con las hojas númeradas 0,1,…,n-1

Determinar la Suma Global

Determinar la Suma Global

Determinar la Suma Global

Determinar la Suma Global 178

Determinar la Suma Global 25

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

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.

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.

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.

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

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.

El Problema de n Cuerpos

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

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

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

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.

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.

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.

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.

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.

Aglomerar y Asignar Tareas a Procesadores 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

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

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.

Tiempo de Comunicación Hipercubo

Tiempo de Comunicaciones Grafo Completo

Añadir Entradas/Salidas

Scatter

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.

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

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

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