Algoritmos en Árbol y Grafo Computación Pipeline

Documentos relacionados
Paralelismo Relajado Paralelismo Síncrono

Divide y Vencerás Programación Dinámica

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos

Paralelización de problemas de recorrido de árboles Trabajadores replicados y esquema maestro esclavo

Esquemas algorítmicos paralelos - Particionado y Paralelismo de Datos

ALGORITMOS Y PROGRAMACIÓN PARALELA. Esquemas de programación paralela

Diseño de algoritmos paralelos

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

Multiplicación de matrices dispersas

Paralelismo en la ordenación por mezcla

Procesamiento Paralelo

Modelado y autooptimización en esquemas paralelos de backtracking

Granularidad y latencia

Problema de las N Reinas. Resolución paralela

Diseño de Algoritmos Paralelos Prof. Gilberto Díaz

Algoritmos paralelos para la Multiplicación de Matrices

Relación de Ejercicios. Programación Paralela 4º de Grado en Ingeniería Informática.

W_ILU_GMRES. UNA ESTRATEGIA PARA SISTEMAS DE ECUACIONES LINEALES DENSOS

Teoría de grafos y optimización en redes

Paralelismo. MPI Paso de mensajes. Francisco García Sánchez Departamento de Informática y Sistemas

3. DISEÑO DE ALGORITMOS PARALELOS Y DISTRIBUIDOS

Conceptos básicos de paralelismo

Tema 2, 3 y 4 GRUPO 82 - INGENIERÍA INFORMÁTICA. Bernardo D Auria. 3 Diciembre Departamento de Estadística. Universidad Carlos III de Madrid

PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

Paralelismo _Arquitectura de Computadoras IS603

Teoría de redes y optimización en redes

Grupo de Computación Científica y Programación Paralela

COMPARACIÓN DE MODELOS DE SINCRONIZACIÓN EN PROGRAMACIÓN PARALELA SOBRE CLUSTER DE MULTICORES

1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN

Antonio Carrillo Ledesma Ismael Herrera Revilla

METODOLOGÍA DE LA PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

PARTE II: ALGORÍTMICA

Computación de Altas Prestaciones Sistemas computacionales

Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

Universidad Nacional Autónoma de México Instituto de Geofísica

Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas

Cómputo paralelo con openmp y C

Sistemas Operativos Distribuidos

Depto. Sistemas I.O. y Computación. informáticos y Computación Univ. La Laguna

José Matías Cutillas Lozano PROGRAMACIÓN PARALELA Y COMPUTACIÓN DE ALTAS PRESTACIONES

1 Primitivas básicas de OpenMP

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización:

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACION

Análisis de algoritmos

PRUEBAS DE CAJA BLANCA

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

Casos especiales de la P. L.

TEMA 11: INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA CON VARIABLES DISCRETAS

Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela

Conceptos. Generales ALGORITMOS

Tema 7: Problemas clásicos de Programación Lineal

Aplicaciones Web para prácticas de esquemas algorítmicos

Universidad Autónoma del Estado de México Facultad de Medicina

ÍNDICE INTRODUCCIÓN...13

Sesión 7. Cálculo Paralelo en Elmer

Backtracking: Esquema General

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA EN ELECTRICIDAD Y COMPUTACIÓN SYLLABUS DEL CURSO Análisis de Algoritmos

Programación: Sistemas unitriangulares inferiores

1. Diseñe algoritmos que permitan resolver eficientemente el problema de la mochila 0/1 para los siguientes casos:

Capítulo 6: EVALUACIÓN Y COMPARACIÓN DE MÉTODOS

Programa de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás

Algoritmos mas complejos. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A.

Introducción a la Algorítmica Transparencias correspondientes a las clases impartidas por los profesores: Lourdes Miró Amarante Ignacio García Vargas

La Máquina de Acceso Aleatorio (Random Access Machine)

C a l ses P P y y NP C a l se P C a l se N P N P [No N n o -De D te t rmin i i n s i ti t c i Polynomial-tim i e]

Análisis de Algoritmos CB-102

4. Procedimiento de solución

Primero se triangulariza la matriz: Multiplicando la primera fila por (-1/3) y sumando a la segunda fila: ( ) ( )=( ) ( ) ( )

Informática Nivel superior Prueba 1

Programación II. Mario Aldea Rivas Programación II 04/04/11 1. Mario Aldea Rivas Programación II 04/04/11 2

Análisis de algoritmos paralelos

OCW-V.Muto Eliminación Gaussiana y sustitución hacia atrás Cap. XIV CAPITULO XIV. ELIMINACION GAUSSIANA Y SUSTITUCION HACIA ATRAS

Tema 2. Fundamentos Teóricos de la. programación dinámica Teorema de Optimalidad de Mitten

Capitulo 3: EVALUACIÓN DEL PARALELISMO Y LONGITUD VECTORIAL

a) Para calcular los órdenes sólo es necesario contar el número de veces que se pasa por el bucle más interno. El coste sería n

TEMA 2: PROGRAMACIÓN PARALELA (I)

cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar

Nociones básicas de computación paralela

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Casos especiales de la P. L.

Casos especiales de la P. L.

COMPUTACIÓN DE ALTA PERFORMANCE 2013

Francisco J. Hernández López

Sesión 6. Cálculo Paralelo en Elmer

Modelos de Redes: Árbol. M. En C. Eduardo Bustos Farías

Capítulo 4: GRAPH TRAVERSE SCHEDULING, Paralelización de Recurrencias

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Búsqueda exhaustiva

Tema: Programación Dinámica.

Programación en Memoria Compartida: OpenMP

Modelos de computadores paralelos

Algoritmos sobre Listas

Auxiliar N 5 07 de Noviembre de 2007

TEMA 1. INTRODUCCIÓN A LA PROGR. DISTRIBUIDA Y PARALELA

Formulando con modelos lineales enteros

Entornos de programación paralela basados en modelos/paradigmas

Introducción a las RdP. Optimización basada en redes de Petri. Redes de Petri. Son objeto de estudio: RdP. Ejemplos:

Transcripción:

Metodología de la Programación Paralela 2015-2016 Facultad Informática, Universidad de Murcia Esquemas algorítmicos paralelos: Algoritmos en Árbol y Grafo Computación Pipeline Domingo Giménez (Universidad de Murcia) Curso 2015-2016 1 / 22

Sesión 3 Descomposición del trabajo: Paralelismo de datos. Particionado de datos. Algoritmos relajados. De paralelismo basado en dependencias de datos: Paralelismo síncrono. Dependencias en árbol o grafo. Pipeline. De paralelización de esquemas secuenciales: Divide y Vencerás. Programación Dinámica. Recorridos de árboles: Backtracking y Branch and Bound. De múltiples tareas o trabajadores: Bolsa de tareas. Granja de procesos. Maestro-Esclavo. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 2 / 22

Contenido 1 Grafos de dependencia 2 Paralelismo en Árbol o Grafo 3 Computación Pipeline 4 Otros ejemplos y trabajo adicional Domingo Giménez (Universidad de Murcia) Curso 2015-2016 3 / 22

Ideas generales Un Grafo de Dependencias es un grafo dirigido acíclico, donde los nodos representan tareas, y una arista de un origen a un destino representa que para poder realizarse la tarea destino tiene que haberse ejecutado la origen. Los nodos pueden etiquetarse con un valor que representa el coste de la tarea. Las aristas pueden etiquetarse con valor que representa el coste de la comunicación. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 4 / 22

Asignación de tareas Hay que asignar las tareas a los elementos de proceso. Distintas asignaciones pueden originar tiempos distintos. El problema de la asignación óptima es NP. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 5 / 22

Problemas de la asignación de tareas Dentro de un elemento de proceso hay que elegir el orden de ejecución de las tareas. Desbalanceo de la carga: balancear cálculo y comunicaciones. Tiempos de espera: por dependencias entre tareas. Si granularidad fina muchas tareas, lo que posibilita el balanceo pero genera más comunicaciones. Si granularidad gruesa menos comunicaciones pero más difícil el balanceo. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 6 / 22

Medidas de concurrencia Máximo grado de concurrencia: mayor número de tareas que se pueden ejecutar al mismo tiempo. Camino crítico: camino más largo desde un nodo de comienzo hasta un nodo final. Donde la longitud es la suma los costes de los nodos del camino. Grado medio de concurrencia: número medio de tareas que se podrían ejecutar en paralelo considerando todas las fases del algoritmo: n i=1 GMC = coste(nodo i) longitud camino critico En el grafo precedente: MGC = 4, LCC = 13, GMC = 2. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 7 / 22

Contenido 1 Grafos de dependencia 2 Paralelismo en Árbol o Grafo 3 Computación Pipeline 4 Otros ejemplos y trabajo adicional Domingo Giménez (Universidad de Murcia) Curso 2015-2016 8 / 22

Ejemplos en árbol Suma de n números: Suma prefija. Dada secuencia{x 0, x 1,...,x n 1 } calcular secuencia {s 0, s 1,...,s n 1 } con s i = i j=0 x j. Alguno de los vistos? Domingo Giménez (Universidad de Murcia) Curso 2015-2016 9 / 22

Ejemplo - suma prefija Con Paso de Mensajes. Para cada Pi, i=0,1,...,n-1 desp=1; for(j=0;j<log n;j++) { if(i<n-desp) enviar x a Pi+desp; if(i>=desp) { recibir en y de Pi-desp; x+=y; } desp*=2; } Cómo generalizar a n números y p elementos de proceso? Cómo sería en Memoria Compartida? Domingo Giménez (Universidad de Murcia) Curso 2015-2016 10 / 22

Ejemplos de suma - centralizada / distribuida Cuál produciría menos tiempo de ejecución? Y con la ordenación por mezcla? Cómo sería la ordenación quicksort? Domingo Giménez (Universidad de Murcia) Curso 2015-2016 11 / 22

Grafos con tareas de tipos distintos Por ejemplo la suma de n datos en p procesadores. Suma de todos los elementos de una matriz y obtención del máximo: Dada matriz A almacenar en vector x sumando los elementos de la fila, formar la matriz B ordenando las columnas de A y obtener la multiplicación Bx. Tenemos bloques de computación de los vistos antes (suma, ordenación, multiplicación...), cuál es una forma adecuada de llevarlas a cabo? Domingo Giménez (Universidad de Murcia) Curso 2015-2016 12 / 22

Ejemplo - clases de equivalencia En una representación de conjuntos por medio de árboles: se trata de encontrar el representante de la clase a la que pertenece cada nodo. Los arcos indican comunicaciones si están en distinto procesador. De cada nodo sale como mucho un arco y el patrón de comunicaciones es fijo. Funcionamiento: Para cada nodo se lee el valor del padre, si el valor leído es igual al que hay en el nodo ese nodo se envía un mensaje de fin al nodo con el que se comunica y acaba. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 13 / 22

Contenido 1 Grafos de dependencia 2 Paralelismo en Árbol o Grafo 3 Computación Pipeline 4 Otros ejemplos y trabajo adicional Domingo Giménez (Universidad de Murcia) Curso 2015-2016 14 / 22

Ideas generales Resolver un problema descomponiéndolo en una serie de tareas sucesivas: los datos fluyen por la estructura de los procesadores o hilos. El coste es mayor que el de la tarea más costosa. Interés cuando: no hay un único conjunto de datos a tratar, sino una serie de conjuntos de datos. no se necesite que una tarea esté completamente finalizada para empezar la siguiente. Cada tarea puede tener un peso diferente y ser preferible dedicar distinto número de procesadores a cada tarea: Domingo Giménez (Universidad de Murcia) Curso 2015-2016 15 / 22

Ejemplo - divisibilidad Dada una lista de números primos p 0, p 1,...,p m 1 y una secuencia de enteros a 0, a 1,..., se quiere obtener los enteros que son múltiplo de todos los primos. Para cada Pi, i=0,...,m-1: repeat if(i==0) leer(a); else recibir a de P(i-1); if(a<0) //condicion de fin fin=true; if(fin or (a mod pi==0)) { if(i!=m-1) enviar a a P(i+1); else salida de a; until fin; Domingo Giménez (Universidad de Murcia) Curso 2015-2016 16 / 22

Ejemplo - sistema triangular de ecuaciones Sistema triangular inferior de ecuaciones lineales: a 00 x 0 = b 0 a 10 x 0 + a 11 x 1 = b 1... a n 1,0 x 0 + a n 1,1 x 1 +... + a n 1,n 1 x n 1 = b n 1 Sustitución progresiva. Considerando un procesador por fila, p i calcula x i x i = b i i 1 j=0 a ijx j a jj Domingo Giménez (Universidad de Murcia) Curso 2015-2016 17 / 22

Ejemplo - sistema triangular de ecuaciones, Memoria Compartida #pragma omp parallel for private(i) for(i=0;i<n;i++) resolver(a,b,x,n,i) resolver(a,b,x,n,i): suma=0; for(j=0;j<i;j++) { P(valor[j]); V(valor[j]); suma+=a[i,j]*x[j]; } x[i]=(b[i]-suma)/a[i,i]; V(valor[i]); valor es un vector de semáforos inicializados a cero. En OpenMP se puede hacer con llaves. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 18 / 22

Ejemplo - sistema triangular de ecuaciones, Paso de Mensajes En cada Pi, i=0,1,...,n-1 if(i==0) { x=b/a[0]; //cada uno tiene un vector con su fila enviar x a P1; } else if(i!=n-1) { for(j=0;j<i;j++) { recibir x de P(i-1); enviar x a P(i+1); suma+=a[j]*x; } x=(b-suma)/a[i]; } else { for{j=0;j<n-1;j++) { recibir x de P(n-2); suma+=a[j]*x; } x=(b-suma)/a[n-1]; } Se han sustituido las llaves por comunicaciones. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 19 / 22

Ejemplo - sistema triangular de ecuaciones, costes Coste secuencial: n 1 i=0 (2+2i) = n2 + n Coste paralelo, aproximadamente 5n Speed-up: n/5 Eficiencia 20% Y en paso de mensajes hay que añadir coste de comunicaciones. Causa de las bajas prestaciones? Cómo generalizar a tamaño de problema y de sistema independientes? Domingo Giménez (Universidad de Murcia) Curso 2015-2016 20 / 22

Contenido 1 Grafos de dependencia 2 Paralelismo en Árbol o Grafo 3 Computación Pipeline 4 Otros ejemplos y trabajo adicional Domingo Giménez (Universidad de Murcia) Curso 2015-2016 21 / 22

Se pueden consultar las secciones correspondientes y sus ejemplos del capítulo 6 del libro de Introducción a la Programación Paralela y en el Concurso de Programación Paralela. Detalles del problema de encontrar las clases de equivalencia (libro IPP). En el CPP hay pocos ejemplos: Los que llevan ordenaciones se podrían considerar en árbol, pero también de Divide y Vencerás, que veremos la próxima sesión. Los A de 2013 y 2015 se pueden pensar como pipeline. Y pensar cómo podrían implementarse los ejemplos vistos en esta sesión. En la sesión de prácticas se propondrán uno o dos problemas para abordarlos con los paradigmas presentados. Domingo Giménez (Universidad de Murcia) Curso 2015-2016 22 / 22