La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Autor: Alberto Luengo Cabanillas

Presentaciones similares


Presentación del tema: "Autor: Alberto Luengo Cabanillas"— Transcripción de la presentación:

1 Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos
Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos Pardo Martínez Patricia González Gómez Departamento de Electrónica e Sistemas Facultad de Informática Universidad de A Coruña

2 Índice general Introducción MapReduce Algoritmos Genéticos
Diseño e Implementación de la solución Resultados experimentales Demostración de la aplicación Conclusiones y futuras líneas de desarrollo

3 Introducción (I) ¿En qué escenario nos encontramos?
Grandes centros de computación donde se ejecutan muchos procesos de forma paralela ¿Qué necesidades tenemos? Aprovechar de forma efectiva todos los recursos a nuestra disposición mediante herramientas software Ej: Lenguajes y modelos de programación distribuida ¿Qué dificultades afrontamos? Tiempos de computación demasiado grandes Recursos hardware limitados Problemas cada vez más complejos

4 Introducción (II) Ejemplo de estos problemas: Algoritmos Genéticos
Problemas de búsqueda con enfoque iterativo Necesidades importantes de tiempo y recursos

5 Introducción (III) ¿Qué solución aportamos? MapReduce
Modelo de programación diseñado por Google Altamente personalizable Permite operar a alto nivel

6 Introducción (IV) Sin embargo… Por tanto…
No todos los problemas se pueden expresar de forma directa con MapReduce… …porque no todos se adaptan a la metodología de dos fases de este modelo …porque no presentan un enfoque orientado a datos Por tanto… Debemos buscar una forma de optimizar el uso de las máquinas a nuestra disposición, aprovechando las características inherentes de fiabilidad y tolerancia a fallos ofrecidas por MapReduce Debemos adaptar la orientación iterativa de los Algoritmos Genéticos al modelo de fases map y reduce

7 Introducción (y V). Objetivos
Objetivos de la propuesta Construir un entorno lo más genérico posible para la ejecución distribuida de Algoritmos Genéticos Paralelos. Dotarlo de la suficiente flexibilidad y extensibilidad para que resolver problemas de Algoritmos Genéticos sea una tarea fácil y rápida. Presentarlo con una estructura modular, de forma que sea fácilmente mantenible y ampliable en el futuro.

8 Índice general Introducción MapReduce Algoritmos Genéticos
Diseño e Implementación de la solución Resultados experimentales Demostración de la aplicación Conclusiones y futuras líneas de desarrollo

9 MapReduce (I) Modelo de programación diseñado por Google
Véase [DG08] en la memoria Facilita un framework para procesar grandes conjuntos de datos de ciertos tipos de problemas distribuidos utilizando el mayor número de ordenadores disponibles Ej: Problemas de Algoritmos Genéticos MapReduce facilita: Paralelismo y distribución de datos automatizada Tolerancia a fallos Planificación de Entrada/Salida Interfaces web de monitorización Ejemplos de uso Pagerank, Google Maps…

10 MapReduce (II) Estructura en dos fases
Fase map: El nodo maestro recoge los datos de entrada, los divide en sub-problemas más pequeños y los distribuye a los nodos trabajadores. Un nodo trabajador puede repetir esta operación, construyéndose una estructura de árbol multi-nivel Fase reduce: El nodo maestro recoge los resultados de todos los sub-problemas y los combina para obtener el resultado del problema original

11 MapReduce (III) Flujo de datos

12 MapReduce (IV). Hadoop Proyecto de Apache
Implementación Java de MapReduce Proporciona un framework que planifica tareas, facilita la monitorización y soporta la re-ejecución de trabajos fallidos Consta de: Un único proceso maestro Jobtracker que distribuye la información Varios procesos esclavos Tasktracker, uno por nodo, encargados de procesar los sub-problemas Características principales Escalable Puede manejar y almacenar petabytes de forma segura Eficiente Distribuyendo la información, Hadoop puede procesarla en paralelo en los nodos en los que se almacena Seguro Mantiene de forma automática varias copias de los datos y replanifica los trabajos fallidos

13 MapReduce (V). Hadoop Ecosistema de Hadoop

14 MapReduce (y VI). Pig Plataforma software de análisis de grandes conjuntos de datos Lenguaje de alto nivel + infraestructura (compilador) Pig Latin Se aproxima más a un lenguaje de flujo de datos que a uno procedural o declarativo Facilidad de programación Posibilidades de optimización Extensibilidad Ventajas Aumenta la productividad 10 líneas de código Pig Latin equivalen a 200 líneas en Java Abre el sistema para programadores no familiarizados con Java… …ya que presenta similitudes con SQL… …aunque su uso más habitual es embeberlo en código Java Incluye operaciones comunes tales como join, group, sort…

15 Índice general Introducción MapReduce Algoritmos Genéticos
Diseño e Implementación de la solución Resultados experimentales Demostración de la aplicación Conclusiones y futuras líneas de desarrollo

16 Algoritmos Genéticos (I)
Los Algoritmos Genéticos (AG´s) son métodos de búsqueda basados en una simulación parcial de los mecanismos de la evolución natural Fueron creados en la década de 1960 por John Holland, como un modelo para el estudio del fenómeno de adaptación natural y para el desarrollo de mecanismos que permitieran incorporar este fenómeno a los sistemas de computación.

17 Algoritmos Genéticos (II)
Codificación de un individuo Generalmente mediante cadenas binarias o alfanuméricas

18 Algoritmos Genéticos (III)
Operaciones que se realizan Función de evaluación: Determina la calidad del individuo (dependiente del problema a resolver) Selección: Determina qué individuos continuarán existiendo Cruce: Mecanismo para obtener nuevos individuos a partir de otros Mutación: Mecanismo para obtener un nuevo individuo a partir de su propia información En esta propuesta nos centraremos en las implementaciones paralelas de Algoritmos Genéticos Básicos

19 Algoritmos Genéticos (IV)
Funcionamiento de un AG básico Comenzamos con una población P de n cromosomas generados aleatoriamente Calculamos el valor de la función de evaluación para cada cromosoma Repetimos los siguientes pasos hasta la condición de terminación: Seleccionamos un par de cromosomas, basándonos en una probabilidad Los cruzamos de acuerdo también a una probabilidad Los mutamos para construir una nueva población Reemplazamos la población actual P por la nueva población P´ Evaluamos la condición de terminación del algoritmo Volvemos al paso 2

20 Algoritmos Genéticos (V)
Funcionamiento de un AG básico Comenzamos con una población P de n cromosomas generados aleatoriamente Calculamos el valor de la función de evaluación para cada cromosoma Repetimos los siguientes pasos hasta la condición de terminación: Seleccionamos un par de cromosomas, basándonos en una probabilidad Los cruzamos de acuerdo también a una probabilidad Los mutamos para construir una nueva población Reemplazamos la población actual P por la nueva población P´ Evaluamos la condición de terminación del algoritmo Volvemos al paso 2

21 Algoritmos Genéticos (VI)
La implementación paralela elegida del AG básico sigue la estructura master-slave

22 Algoritmos Genéticos (y VII)
Tenemos constancia de dos aportaciones previas para adaptar AGs a MapReduce: MRPGA: An extension of MapReduce for Parallelizing Genetic Algorithms [JVB.08] Propone una extensión a MapReduce por medio de una fase reduce jerárquica Utiliza AGPs maestro-esclavo Introduce la figura del Coordinador Scaling Genetic Algorithms using MapReduce [VLG.09] Proporciona una aproximación más cercana a la nuestra Utiliza Hadoop, encapsulando cada iteración del AG como un trabajo MapReduce aislado

23 Índice general Introducción MapReduce Algoritmos Genéticos
Diseño e Implementación de la solución Resultados experimentales Demostración de la aplicación Conclusiones y futuras líneas de desarrollo

24 Diseño e implementación de la solución (I)
Objetivo: Construir un sistema lo más genérico posible que facilitase la ejecución de problemas de Algoritmos Genéticos sobre un entorno distribuido Principales metas: Estudiar como transformar AGs en primitivas map y reduce Implementar, mediante Hadoop y Pig, una batería de problemas de AGs, demostrando su escalabilidad y convergencia bajo distintas condiciones

25 Diseño e implementación de la solución (II)
Cómo se adaptaron los pasos del AG básico a MapReduce: Inicialización de la población Figuras Cliente, ‘Chromosome’ y Coordinador Evaluación del valor de un individuo Fase map Patrón de diseño Template Method para construir una jerarquía de clases Selección de los mejores individuos Fase reduce Redefinición de la clase Partitioner de MapReduce Recombinación mediante cruce: Patrón Template Method Evaluación del valor de la población Repetición de los pasos 2 a 5 del algoritmo Figura Coordinador

26 Diseño e implementación de la solución (III)
Arquitectura general de la aplicación MapReduce Cliente Nodo Pig Fase map Fase reduce

27 Diseño e implementación de la solución (III)
Arquitectura general de la aplicación MapReduce Cliente Nodo Pig Fase map Fase reduce

28 Diseño e implementación de la solución (IV)
Implementación realizada en Java Principalmente porque las APIs de Hadoop y Pig soportan extensivamente este lenguaje División en dos paquetes src (Contiene todo el código fuente de la aplicación) common (Núcleo central del sistema) problems (Clases map y reduce específicas de cada problema) config (ficheros de configuración XML específicos de cada problema)

29 Diseño e implementación de la solución (y V)
Principales aportaciones del trabajo No se rompe en ningún momento el ciclo map-reduce (a diferencia de la propuesta MRPGA) Construcción de un framework software que permite implementar de forma sencilla AGPs, explorando toda la funcionalidad del modelo MapReduce. Alto grado de flexibilidad y configuración gracias a los más de 15 parámetros que soporta el sistema Uso de Pig como herramienta de análisis y tratamiento de grandes cantidades de datos

30 Índice general Introducción MapReduce Algoritmos Genéticos
Diseño e Implementación de la solución Resultados experimentales Demostración de la aplicación Conclusiones y futuras líneas de desarrollo

31 Resultados experimentales (I)
Se ha implementado una batería de tres problemas para demostrar la convergencia y escalabilidad de la solución desarrollada TargetPhrase Parte de un conjunto de cadenas de texto alfanuméricas aleatorias que evolucionan hasta conseguir formar una “frase objetivo” OneMAX Se busca el individuo binario que maximice el número de unos dentro de una población P-Picos Dado un número de picos (cadenas de texto binarias), se intenta obtener aquel que esté más cerca de uno dado (sobre una probabilidad de 1)

32 Resultados experimentales (y II)
Estudio de convergencia sobre el entorno distribuido Debido al grado de personalización del sistema y a la decisión de delegar la implementación de ciertos métodos (cruce, mutación, etc) al usuario, el grado de convergencia puede variar ampliamente Se han realizado varios escenarios con los tres problemas, modificando en cada uno de ellos ciertas condiciones iniciales de partida (población, número de iteraciones, prob. de cruce, etc.) Estudio de escalabilidad Se ha demostrado empíricamente que el sistema escala hasta los individuos

33 Índice general Introducción MapReduce Algoritmos Genéticos
Diseño e Implementación de la solución Resultados experimentales Demostración de la aplicación Conclusiones y futuras líneas de desarrollo

34 Demostración de la aplicación
En el siguiente vídeo se mostrará la construcción y ejecución del sistema distribuido como fichero JAR contra el clúster “nm” del Departamento de Electrónica y Sistemas

35 Índice general Introducción MapReduce Algoritmos Genéticos
Diseño e Implementación de la solución Resultados experimentales Demostración de la aplicación Conclusiones y futuras líneas de desarrollo

36 Conclusiones y Futuras Líneas de Desarrollo (I)
Se ha conseguido en gran medida el factor de extensibilidad buscado, abstrayendo los distintos elementos que conforman el sistema y facilitando el prototipado de AGs. Todas las operaciones complejas computacionalmente se desarrollan de forma transparente en un entorno tolerante a fallos Portabilidad: Mediante la encapsulación en un fichero JAR se consigue que la aplicación pueda ser ejecutada en cualquier entorno que disponga de Java, Hadoop y Pig. Facilidad de uso: El usuario solo debe escribir un fichero XML de configuración, una clase map con dos métodos, una clase reduce con tres métodos y especificar los parámetros de configuración que desee por línea de comandos.

37 Conclusiones y Futuras Líneas de Desarrollo (y II)
Definición de una clase personalizada InputFormat para saltarnos la limitación que establece el framework de Hadoop a partir de su versión y especificar el número de tareas map a gusto del usuario Generación de la población inicial como un trabajo MapReduce en vez de una tarea secuencial Aplicación del sistema a AGs en entornos reales Por ejemplo: Diseño de velas y timones para barcos

38 Preguntas y Aclaraciones


Descargar ppt "Autor: Alberto Luengo Cabanillas"

Presentaciones similares


Anuncios Google