Modelo de computación BSP

Documentos relacionados
Escalabilidad: El desempeño del software y hardware debe ser eficiente desde un grupo pequeño de procesadores a un grupo muy grande de procesadores.

Entornos de programación paralela basados en modelos/paradigmas

Paralelismo _Arquitectura de Computadoras IS603

Modelo de programación MapReduce

PROCESAMIENTO DISTRIBUIDO

Modelos de Computación no Convencionales y Aplicaciones Big Data

Ejemplos de Aplicabilidad de Giraph y Hadoop para el Procesamiento de Grandes Grafos

CURSO: DESARROLLADOR PARA APACHE HADOOP

Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso Presentación e introducción

Resolución 3523 de 2012

Hora 1 1. Introducción 2. Web semántica 2.1 Ontologías 2.2 Lenguajes 2.3 Ejemplos 2.4 Estado actual Microformatos 2.4.

Ingeniería en Computación

Bases de Datos Distribuidas. Carlos A. Olarte BDII

COMPUTACIÓN DE ALTA PERFORMANCE 2013

Computación distribuida e inteligencia computacional aplicadas a ciudades inteligentes

Teoría de Grafos. Herramientas de programación para procesamiento de señales

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

Algebra Matricial y Teoría de Grafos

Granularidad y latencia

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

1. Escalabilidad de transacciones de un motor de búsqueda Web.

Storm: Procesamiento distribuido de datos.

Programación Concurrente y Paralela. Unidad 1 Introducción

MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML

Algoritmos en Árbol y Grafo Computación Pipeline

Francisco J. Hernández López

Arquitecturas: Clusters. Edgar Valderrama Lucio Mederos

Módulo: Modelos de programación para Big Data

CURSO DE APACHE SPARK_

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Servicios Telemáticos Avanzados 4º Grado en Ingeniería en Tecnologías de Telecomunicación Especialidad de Telemática

Terminología y conceptos prácticos de encaminamiento

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

Procesamiento Paralelo

Ejercicios. Enunciados

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

Sistemas Operativos Distribuidos

BIG DATA: Una mirada tecnológica

Dirección General de Educación Superior Tecnológica INSTITUTO TECNOLÓGICO DE SALINA CRUZ

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

Clústeres y procesamiento en paralelo XE1GNZ J O R G E F BARBOSA J ACOBO F E B R E R O DE 20 17

Redes (9359). Curso Ingeniería Técnica en Informática de Sistemas (plan 2001)

Developer Training for Spark and Hadoop

ASIGNATURA: SISTEMAS OPERATIVOS II

Control de Concurrencia sobre índices invertidos

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

MPP. MIMD Computador Masivamente Paralelo

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

MapReduce. Modelo de programación MapReduce. MapReduce. Sistemas Distribuidos. Tecnologías procesado masivo de datos. Vamos a contar palabras

Taxonomía de las arquitecturas

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.

Paralelismo Relajado Paralelismo Síncrono

Doctorado en Ciencias en Computación Maestría en Ciencias en Ciencias de la Computación. Problemario de Programación

Universidad Autónoma de San Luis Potosí Facultad de Ingeniería Programas Analíticos del Área Mecánica y Eléctrica 5727 PROGRAMACION EN PARALELO

Sistemas Distribuidos Sincronización, Concurrencia y Transacciones

REDES DE DATOS CAPITULO II

Programación Lineal. Modelo de Redes. Alcance de las aplicaciones. Curso: Investigación de Operaciones Ing. Javier Villatoro

Sistemas Distribuidos. Prog. Distribuida bajo Internet

Arquitectura de enrutamiento en redes IP

Conceptos básicos de paralelismo

Tema: Recorrido de Grafos. Ruta más corta

Bases de Datos Paralelas. Carlos A. Olarte BDII

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

ESTRUCTURA DE INTERCONEXIÓN DE UN COMPUTADOR

Clase de ruteo. Capa de red. Guido Chari. 19 de Septiembre de DC - FCEyN - UBA

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Tema: Algoritmos para la ruta más corta en un Grafo.

Protocolos de enrutamiento

UNIVERSIDAD DE GUADALAJARA

Sistemas Distribuidos.

Práctica 3 Multidifusión con ordenación total

Repetidores o Hubs. Puentes

Implementación de un Digesto Digital Paralelo *

BASES DE DATOS DISTRIBUIDAS

dit Planificación de tareas de tiempo real Juan Antonio de la Puente DIT/UPM UPM Copyright 2007, Juan Antonio de la Puente

Sintonización Dinámica de Aplicaciones MPI

Redes de Computadoras. Obligatorio

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

ARQUITECTURAS. Carlos Reveco D. IN73J Arquitectura, Diseño y Construcción de un Negocio con Apoyo TI.

Desarrollo de una aplicación para el análisis social en Twitter mediante tecnologías Big Data. Caso de

Programación Paralela y Distribuida

TEMA 2.1 TIPOS DE PRUEBAS DEL SOFTWARE

Internetworking e IP. Clase 6. Tema 3.- Interconexión de redes IP

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

Introducción a la arquitectura de computadores

Computación en Internet: Librería MALLBA para problemas de optimización

OSPF: CONCEPTO Y MIGRACIÓN DE UNA RED BRIDGE A RED RUTEADA

OSPF (Open Shortest Path First) Ing. Agustín Eijo

CARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA. Autor ERIKA VIVIANA RIAÑO BEJAR

ANALÍTICA DE BIG DATA (BDA)

CURSOS BIGDATA. Para más información y costos: Lic. Nayana Guerrero

REDES TOPOLOGICAS PRESENTADO POR : JUAN SEBASTIAN PLAZAS MANCHOLA

Implementación y Evaluación del algoritmo de sincronización RBS para redes inalámbricas de sensores

SISTEMAS DE REDES TOPOLOGÍA JUAN SEBASTIÁN FERNÁNDEZ TAMAYO

Grandes de Bases de Datos. Alta disponibilidad Clústers

Introducción a la conmutación LAN.

REDES DE DATOS Modelo OSI. Angélica Flórez Abril, MSc.

Transcripción:

Modelo de computación BSP Programación paralela y distribuida Fernando Pérez Costoya Noviembre de 2014

Bulk Synchronous Parallel (Valiant1990) Modelo de computación planteado como la Arquitectura von Neumann para sistemas paralelos Puente entre diseñadores HW y SW HW diseñado para que dé soporte al modelo Adecuado para sistemas con memoria compartida y distribuida SW diseñado para que ejecute sobre el modelo Impacto limitado;retomado actual. (Apache Hama) Elementos del modelo: Componentes con capacidad de procesamiento Componente de comunicación (router) Componente de sincronización (tipo barrera)

Modelo de ejecución de BSP Síncrono organizado como secuencia supersteps En superstep un componente de procesamiento: Recibe mensajes de otros componentes Realiza procesamiento local Puede enviar mensajes a otros componentes proces. Sincronización tipo barrera al final del superstep

Ciclo ejecución BSP (wikipedia)

Modelos programación para grafos Pregel Programación paralela y distribuida Fernando Pérez Costoya Noviembre de 2014

Procesamiento de grafos Necesidad de procesar grafos de gran escala Internet, redes sociales, rutas, etc. Aplicación de algoritmos clásicos de grafos Requieren sistemas paralelos/distribuidos Modelo programación/framework/implementación que oculte sincro,comun,planificación,tolerancia..? MapReduce? Programación no intuitiva Ineficiencia: grafo viaja continuamente entre los nodos Propuesta de Google: Pregel (2010) Basado en BSP; Apache Giraph: versión de libre distribución

Pregel: modelo de programación Grafo dirigido tal que cada vértice tiene: ID único; Valor asociado modificable Conjunto de aristas salientes Cada arista: valor asociado + vértice destino Una función asociada (la misma para todos) Ejecución de un trabajo Pregel Entrada Grafo; Salida Grafo (con la solución) Secuencia de supersteps Inicialmente todos los vértices activos Fin de computación cuanto todos los vértices inactivos Recepción de mensaje reactiva vértice

Evolución del estado de un vértice

Ejecución de un superstep Ejecuta en paralelo la función sobre cada vértice Esa función implementa la lógica del algoritmo La ejecución de la función en un vértice V puede: Recibir mensajes enviados a V en superstep previo Modificar valor del vértice y de las aristas salientes Enviar mensajes a otros vértices Conectados a V o a cualquiera si conoce su ID Los mensajes se recibirán en siguiente superstep Modificar la topología del grafo Añadir/eliminar vértices y aristas

Ejemplo de cálculo del máximo

API en C++ Compute: función de vértices GetValue MutableValue:obtiene/cambia valor vértice GetOutEdgeIterator:inspecciona/cambia aristas sal. SendMessageTo:envío fiable pero no garantía orden VoteToHalt: nodo se hace inactivo Componentes adicionales: Combiners: combinan mensajes destinados a mismo V Aggregators: cada vértice puede provee valor a aggreg. Sistema agrega valores y los deja disponibles en sig. superstep Mutaciones pueden causar conflictos E/S: formatos y soportes configurables

Clase Vértice

Implementación Maestro-Trabajadores; Pasos ejecución trabajo: M determina particiones en grafo y las asigna a T Por defecto, hash(id vértice); puede redefinirlo la aplicación M determina particiones en entrada y asigna a T T lee partición; se queda con sus vértices y reenvía otros Fin de la entrada todos los vértices activos M indica a todo T inicio superstep T ejecuta función para cada uno de sus vértices Entregando a cada vértice mensajes recibidos en superstep previo Recoge mensajes enviados y transmite empaquetados asíncronamente T señala a M fin de superstep especificando nº vértices activos M espera respuesta de todos los T (barrera) Si nº total activos=0 Fin: M solicita a T volcado de resultados

Tolerancia a fallos Checkpoint (CHK) en almacenamiento persistente Valores de vértices, aristas y mensajes entrantes Al inicio de un superstep M solicita CHK a los T Caída de T Reasigna particiones de T a otros trabajadores M solicita a todos los T que recuperen último CHK Y vuelvan a ejecutar desde ese superstep Trabajo repetido por parte de trabajadores que no se han caído Recuperación confinada bajo desarrollo (en 2010) CHK de mensajes salientes Reduce gasto innecesario recursos: sólo nodos caídos

Aplicaciones: PageRank

Aplicaciones: Shortest Path

Combiner para Shortest Path