1 / 38

Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos

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.

Download Presentation

Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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… • 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 PigLatin 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: Anextension of MapReduceforParallelizingGeneticAlgorithms[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 • ScalingGeneticAlgorithmsusingMapReduce [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 TemplateMethod 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: • Fase reduce • Patrón TemplateMethod • Evaluación del valor de la población • Fase reduce • 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 10.000 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) • Conclusiones • 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. • Facilidadde 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) • Futuras líneas de desarrollo: • Definición de una clase personalizada InputFormat para saltarnos la limitación que establece el framework de Hadoop a partir de su versión 0.20.1 y especificar el número de tareas mapa 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

More Related