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



Documentos relacionados
4. Programación Paralela

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

Mineria de Grafos en Redes Sociales usando MapReduce

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK.

Conclusiones. Particionado Consciente de los Datos

comunidades de práctica

Resolución de problemas en paralelo

CLUSTER FING: ARQUITECTURA Y APLICACIONES

Plataformas paralelas

Perspectivas de la Computación Científica. Clusters, Grids y Clouds. Desarrollos y retos Raúl Ramos Pollán Universidad Nacional de Colombia

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA

Desarrollo de un cluster computacional para la compilación de. algoritmos en paralelo en el Observatorio Astronómico.

Yersinio Jiménez Campos Analista de datos Banco Nacional de Costa Rica

Modelo de aplicaciones CUDA

PROGRAMACION VECTORIAL RAFAEL VALDÉS VALDAZO UO ÁNGEL MARÍA VILABOA PÉREZ UO BLOQUE PARALELAS 4º INFORMÁTICA UNIVERSIDAD DE OVIEDO

Heterogénea y Jerárquica

Arquitectura de sistema de alta disponibilidad

Diplomado en Big Data

Unidad didáctica: Funcionamiento de un parking. Actividad: Funcionamiento de un parking de vehículos con entrada y salida automática con:

Administración de proyectos. Organizar, planificar y programar los proyectos de software

Capítulo 5. Cliente-Servidor.

:Arquitecturas Paralela basada en clusters.

M.T.I. Arturo López Saldiña

Seminario II: Introducción a la Computación GPU

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Mª Luisa Gutiérrez Acebrón División de Informática y Tecnologías de la Información Ministerio de Justicia

Conectores Pentaho Big Data Community VS Enterprise

Cuándo y qué virtualizar? Cuándo y qué virtualizar? 1

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Arquitecturas GPU v. 2013

soluciones más allá de las infraestructuras

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Nombre del Trabajo: Control ActiveX que garantiza la seguridad de las aplicaciones desarrolladas para windows.

Arquitecturas de computadoras

Descripción del sistema

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

SÍNTESIS Y PERSPECTIVAS

Big Data y BAM con WSO2

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web

Prácticas ITIL para un mejor flujo de trabajo en el helpdesk

Gestión de Empresas Visual e Interactiva E.R.P.

CLOUD & BIG DATA. Trabajando el CLOUD, explotando BIG DATA. Cómo pueden ayudarnos estas tecnologías?. Convivimos con ellas?.

Hacer Realidad BPM en su Organización ADOPTAR BPM A PARTIR DE UN PROYECTO O NECESIDAD DE AUTOMATIZACIÓN

Solución GeoSAS. Otros módulos

Introducción. Departamento TICS

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Grupo de Computación de Altas Prestaciones GCAPULL, Univers. GCAPULL, Universidad de La Laguna, Tenerife

Proceso de desarrollo del software modelo en cascada

Diseño orientado al flujo de datos

Práctica del paso de generación de Leads

GANETEC SOLUTIONS HPC Farmacéuticas

NUEVAS TECNOLOGÍAS EN COMUNICACIÓN ORGANIZACIONAL

FUENTES SECUNDARIAS INTERNAS

CAPÍTULO VI CONCLUSIONES Y RECOMENDACIONES

GUÍA DOCENTE. Computación Paralela y Arquitecturas Específicas y de Altas Prestaciones

Crear un Software que sea adaptable a las necesidades de cualquier tipo de Institución de Educación Superior.

Soluciones de virtualización de datos

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

Control del Stock, aprovisionamiento y distribución a tiendas.

Introducción. Metadatos

CASO PRÁCTICO. EMPRESA: Doka España Encofrados S.A. INDUSTRIA: Encofrados, construcción.

La Solución informática para su sistema de gestión

1.1 EL ESTUDIO TÉCNICO

SOFTWARE & SYSTEMS PROCESS ENGINEERING METAMODEL SPECIFICATION V.20 SPEM 2.0

Palabras Clave. Estrategias y Optimización para Distintos Presupuestos. Davir Bonilla Usuario Destacado de la

Metodologías de diseño de hardware

CCPM critical chain project management Gestion de proyectos CON cadena critica

Capítulo 11. Conclusiones y trabajo futuro

General Parallel File System

Elementos requeridos para crearlos (ejemplo: el compilador)

Objetos educativos y estandarización en e-learning: Experiencias en el sistema <e-aula>

Visual Studio 2008 es el conjunto de herramientas de

GESTIÓN Y PRÁCTICA COMERCIAL

IBM Power Systems con Saytel. El motor para obtener información de valor de la forma más rápida

APACHE HADOOP. Daniel Portela Paz Javier Villarreal García Luis Barroso Vázquez Álvaro Guzmán López

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo

Software de Simulación aplicado a entornos de e-learning

Capítulo 12: Indexación y asociación

Gestión de Configuración del Software

Programación Distribuida

Alessandro Chacón Ernesto Level Ricardo Santana

Diseño orientado a los objetos

1 Informe de Referencia de la FIP sobre Prácticas de Colaboración (2009),

Área Planificación y Gestión de Proyectos ACTIVIDAD 3 Y AHORA QUÉ HAGO? Competencia: Desarrollar y gestionar proyectos. Aprendizajes esperados

Transcripción:

Program. paralela/distribuida Módulo: Modelos de programación para Big Data (título original: Entornos de programación paralela basados en modelos/paradigmas) Fernando Pérez Costoya

Introducción Big Data Término de moda: Necesidad de procesar enormes repositorios de datos Inadecuadas herramientas tradicionales programación, almacenamiento.. Nada nuevo: algunas apps. científicas grandes requisitos E/S Por ejemplo, repositorios de experimentos complejos Se han ido desarrollado técnicas paralelas para la E/S En módulos previos no se ha tratado E/S en aplicaciones paralelas Sí en módulo: E/S de alto rendimiento (MPI-IO,SFP ) Con Internet, necesidad en ámbito empresarial: surge Big Data Procesado de logs, info. redes sociales ; oportunidades de negocio Programación de E/S alto rendimiento es compleja Modelos alternativos más sencillos de programar p.e. MapReduce Nota: nos centramos en aspectos de programación (ya hay otra asignatura que trata Big Data de forma integral) Sobre la programación paralela 2 Fernando Pérez Costoya

Introducción entornos progr. paralela Valoración OpenMP y MPI Programación de bajo nivel Baja productividad Programador debe centrarse en numerosos aspectos complejos (planificación, sincronización, comunicación ) ajenos al problema Destinados a programadores expertos Herramientas de programación más productivas, para programadores de propósito general? Entornos de programación paralela basados en modelos (paradigmas, patrones) que resuelvan, y oculten al programador, los aspectos de bajo nivel y le permitan centrarse en el problema p.e. MapReduce Sobre la programación paralela 3 Fernando Pérez Costoya

Índice del módulo Reflexiones sobre la programación paralela MapReduce Propuesta original de Google Introducción a la programación Mapreduce en Hadoop Diseño de algoritmos con MapReduce Otros modelos de programación paralela BSP Basados en grafos (Pregel) Sobre la programación paralela 4 Fernando Pérez Costoya

Program. paralela/distribuida Reflexiones sobre la programación de sistemas paralelos Fernando Pérez Costoya

Paralelismo para las masas Actualmente sistemas paralelos por doquier Multi-cores, GPUs, Many-cores, Plataformas cloud paralelas Empujado por tecnología no por demanda desarrolladores SW Límites constructivos en mejoras del rendimiento de un procesador ILP wall; Power wall; Memory wall Qué hacer con el creciente nº transistores que nos da ley de Moore? Múltiples procesadores en un chip Además de ILP (Instruction-Level Parallelism) Proporcionan TLP (Thread-Level Parallelism) ILP paralelismo implícito transparente a la aplicación TLP paralelismo explícito Cómo desarrollar programas que aprovechen paralelismo? Herramientas de extracción automática? Nuevos lenguajes? Sobre la programación paralela 6 Fernando Pérez Costoya

Buenas noticias: 30 años de paralelismo Sistemas paralelos tienen ya una larga tradición Supercomputadores vectoriales (SIMD) SMP/UMA (MIMD con memoria compartida) NUMA (MIMD con memoria compartida) MPP (MIMD con memoria distribuida) Clusters (MIMD con memoria distribuida) Grids (MIMD con memoria distribuida) Sobre la programación paralela 7 Fernando Pérez Costoya

Malas noticias: 30 años de software Experiencia después de 30 años Extracción automática de paralelismo: Aplicación muy limitada Lenguajes específicos para paralelismo: Enorme fragmentación OpenMP (m. compartida).y MPI (m. distribuida) más usados Alta complejidad Poca productividad Uso restringido a expertos No adecuados (ni pensados) para programadores de propósito general Pero paralelismo se ha extendido a todos los ámbitos: Se requiere herramientas adecuadas para todo tipo programadores Solución: Nuevos lenguajes? No: Mejor nuevo enfoque Sobre la programación paralela 8 Fernando Pérez Costoya

Entornos programación paralela en los 90 Mattson y Keutzer (UCB EES): Patterns for Parallel Programming Sobre la programación paralela 9 Fernando Pérez Costoya

Lista de deseos Herramientas de desarrollo de apps. paralelas deberían: Ser productivas Facilitar la programación de aplicaciones paralelas Posibilitar el desarrollo de aplicaciones Correctas Eficientes Escalables Portables Para programadores de propósito general: Más importante productividad y facilidad de desarrollo que eficiencia Para expertos puede ser más prioritaria la eficiencia Sobre la programación paralela 10 Fernando Pérez Costoya

Dificultades de la programación paralela Para empezar las de la programación concurrente Why Threads Are A Bad Idea (for most purposes) de J. Ousterhout El programador debe enfrentarse (entre otros) a: Encontrar la concurrencia de la aplicación: identificación de tareas Minimizar partes no paralelizables (recordatorio Amdahl y Gustafson) Buscar granularidad adecuada: +fina + paralelismo pero + sobrecarga Asignación de tareas a procesadores y planificación de las mismas Dificultad para un reparto de carga adecuado Una aplicación no se completa hasta final de la última tarea Establecer esquemas de sincronización y comunicación entre tareas Controlar sobrecarga evitando interbloqueos y condiciones de carrera Tolerancia a fallos Ejecución involucra múltiples nodos: alta probabilidad de que uno falle Qué hemos estudiado al respecto en OpenMP y MPI? E/S: Aplicaciones Big Data requieren E/S masiva Cómo distribuir entradas y salidas de la aplicación? Sobre la programación paralela 11 Fernando Pérez Costoya

Recordatorio: Amdahl y Gustafson Escalabilidad Fuerte: tamaño problema fijo; aumenta nº de procesadores Débil: tamaño problema/procesador fijo; aumenta nº de procesadores Ley Amdhal: parte no paralelizable limita paralelismo máx Speedup limitado por la duración de la parte no paralelizable Speedup = 1 / (%_secuencial + (1 - %_secuencial)/nprocesadores) Nprocesadores : Speedup = 1 / (%_secuencial) Optimista: cota superior; menor eficiencia real por sobrecarga de planificación, comunicación, sincronización y desequilibrio de carga Ley de Gustafson (matiza ley de Amdahl; escalabilidad débil) Si tamaño parte no paralelizable no crece con tamaño del problema Sistema escalable con nº de procesadores Speedup = Nprocesadores - k * (Nprocesadores - 1) k (t. ej. parte no paralelizable/ t. ej. total en sistema paralelo) Sobre la programación paralela 12 Fernando Pérez Costoya

Modelos de programación paralela Modelo abstracto de la máquina paralela Facilita el desarrollo de programas paralelos Independiente de la arquitectura subyacente p.e. MPI sobre sistema de m. compartida p.e. OpenMP sobre cluster con DSM Distintas alternativas en el diseño de un modelo tales como: Memoria compartida (OpenMP) vs. paso de mensajes (MPI) M. compartida + fácil de programar pero + difícil de poner a punto SPMD (Single Program Multiple Data) vs. MPMD SPMD basado en SIMD SPMD basado en multithread (OpenMP) SPMD una copia del programa en cada nodo (MPI) Paralelismo datos (omp for) vs. paralelismo de tareas (omp sections) Sobre la programación paralela 13 Fernando Pérez Costoya

Patrones de programación paralela Patrones exitosos en diseño de software Investigadores en Intel y Berkeley proponen usar Parallel Programming Patterns: Proyecto OPL Plantea 5 categorías jerárquicas de patrones (4 niveles): Patrones estructurales (nivel más alto; más abstracto): Describen la organización global de la aplicación Patrones computacionales (nivel más alto; más abstracto): Describen los tipos de computaciones que realiza la aplicación Patrones de estrategia de algoritmos paralelos (2º nivel): Describen estrategias de alto nivel para explotar la concurrencia Patrones de estrategia de implementación (3º nivel): Elementos incluidos en código del programa para expresar paralelismo Patrones de ejecución paralela (nivel más bajo): Mecanismos que dan soporte a la ejecución de aplicaciones paralelas Sobre la programación paralela 14 Fernando Pérez Costoya

Estructura de OPL versión 2 Sobre la programación paralela 15 Fernando Pérez Costoya

Frameworks de programación paralela Modelo/patrón especifica pauta de construcción/programación Pero además puede posibilitar desarrollo de framework con funcionalidad que dé soporte al modelo facilitando programación Aunque - flexible y eficiente si problema no encaja en modelo P.e. modelo/patrón fork-join: Programador con pthreads puede usarlo pero tiene que programarlo OpenMP lo implementa: programación más sencilla Propuesta: Capa eficiente: programadores expertos implementan soporte de un modelo ocultando aspectos bajo nivel (planificación, sincronización, comunicación, tolerancia a fallos...) Capa productiva: programadores de propósito general desarrollan como en un sistema no paralelo centrándose en el problema MapReduce encaja en esa idea: es un modelo y un framework Sobre la programación paralela 16 Fernando Pérez Costoya