desarrollo de un entorno mapreduce para la ejecución distribuida de algoritmos genéticos paralelos...

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

Upload: susana-palomares

Post on 11-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Desarrollo de un entorno Desarrollo de un entorno MapReduce para la ejecución MapReduce para la ejecución

distribuida de Algoritmos distribuida de Algoritmos Genéticos ParalelosGenéticos Paralelos

Autor: Alberto Luengo CabanillasAutor: Alberto Luengo Cabanillas

Directores: Xoán Carlos Pardo MartínezDirectores: Xoán Carlos Pardo Martínez Patricia González GómezPatricia González Gómez

Departamento de Electrónica e Departamento de Electrónica e SistemasSistemas

Facultad de InformáticaFacultad de InformáticaUniversidad de A CoruñaUniversidad de A Coruña

Page 2: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Índice generalÍndice general

IntroducciónIntroducción MapReduceMapReduce Algoritmos GenéticosAlgoritmos Genéticos Diseño e Implementación de la solución Diseño e Implementación de la solución Resultados experimentalesResultados experimentales Demostración de la aplicaciónDemostración de la aplicación Conclusiones y futuras líneas de Conclusiones y futuras líneas de

desarrollodesarrollo

Page 3: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Introducción (I)Introducción (I) ¿En qué escenario nos encontramos? ¿En qué escenario nos encontramos?

Grandes centros de computación donde se Grandes centros de computación donde se ejecutan muchos procesos de forma paralelaejecutan muchos procesos de forma paralela

¿Qué necesidades tenemos?¿Qué necesidades tenemos? Aprovechar de forma efectiva todos los recursos Aprovechar de forma efectiva todos los recursos

a nuestra disposición mediante herramientas a nuestra disposición mediante herramientas softwaresoftware

Ej: Lenguajes y modelos de programación distribuidaEj: Lenguajes y modelos de programación distribuida

¿Qué dificultades afrontamos?¿Qué dificultades afrontamos? Tiempos de computación demasiado grandesTiempos de computación demasiado grandes Recursos hardware limitadosRecursos hardware limitados Problemas cada vez más complejosProblemas cada vez más complejos

Page 4: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Introducción (II)Introducción (II)

Ejemplo de estos Ejemplo de estos problemas:problemas: Algoritmos Algoritmos

GenéticosGenéticos Problemas de Problemas de

búsqueda con búsqueda con enfoque iterativoenfoque iterativo

Necesidades Necesidades importantes de importantes de tiempo y recursostiempo y recursos

Page 5: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Introducción (III)Introducción (III) ¿Qué solución ¿Qué solución

aportamos?aportamos? MapReduceMapReduce

Modelo de programación Modelo de programación diseñado por Googlediseñado por Google

Altamente personalizableAltamente personalizable Permite operar a alto Permite operar a alto

nivelnivel

Page 6: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Introducción (IV)Introducción (IV) Sin embargo…Sin embargo…

No todos los problemas se pueden expresar de No todos los problemas se pueden expresar de forma directa con MapReduce…forma directa con MapReduce…

……porque no todos se adaptan a la metodología de dos porque no todos se adaptan a la metodología de dos fases de este modelofases de este modelo

……porque no presentan un enfoque orientado a datosporque no presentan un enfoque orientado a datos Por tanto…Por tanto…

Debemos buscar una forma de optimizar el uso Debemos buscar una forma de optimizar el uso de las máquinas a nuestra disposición, de las máquinas a nuestra disposición, aprovechando las características inherentes de aprovechando las características inherentes de fiabilidad y tolerancia a fallos ofrecidas por fiabilidad y tolerancia a fallos ofrecidas por MapReduceMapReduce

Debemos adaptar la orientación iterativa de los Debemos adaptar la orientación iterativa de los Algoritmos Genéticos al modelo de fases Algoritmos Genéticos al modelo de fases mapmap y y reducereduce

Page 7: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Introducción (y V). Introducción (y V). ObjetivosObjetivos

Objetivos de la propuestaObjetivos de la propuesta Construir un entorno lo más genérico Construir un entorno lo más genérico

posible para la ejecución distribuida de posible para la ejecución distribuida de Algoritmos Genéticos Paralelos.Algoritmos Genéticos Paralelos.

Dotarlo de la suficiente flexibilidad y Dotarlo de la suficiente flexibilidad y extensibilidad para que resolver problemas extensibilidad para que resolver problemas de Algoritmos Genéticos sea una tarea fácil de Algoritmos Genéticos sea una tarea fácil y rápida.y rápida.

Presentarlo con una estructura modular, de Presentarlo con una estructura modular, de forma que sea fácilmente mantenible y forma que sea fácilmente mantenible y ampliable en el futuro.ampliable en el futuro.

Page 8: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Índice generalÍndice general

IntroducciónIntroducción MapReduceMapReduce Algoritmos GenéticosAlgoritmos Genéticos Diseño e Implementación de la solución Diseño e Implementación de la solución Resultados experimentalesResultados experimentales Demostración de la aplicaciónDemostración de la aplicación Conclusiones y futuras líneas de Conclusiones y futuras líneas de

desarrollodesarrollo

Page 9: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

MapReduce (I)MapReduce (I) Modelo de programación diseñado por Google Modelo de programación diseñado por Google

Véase [DG08] en la memoriaVéase [DG08] en la memoria Facilita un Facilita un frameworkframework para procesar grandes para procesar grandes

conjuntos de datos de ciertos tipos de problemas conjuntos de datos de ciertos tipos de problemas distribuidos utilizando el mayor número de distribuidos utilizando el mayor número de ordenadores disponiblesordenadores disponibles Ej: Problemas de Algoritmos GenéticosEj: Problemas de Algoritmos Genéticos

MapReduce facilita:MapReduce facilita: Paralelismo y distribución de datos automatizadaParalelismo y distribución de datos automatizada Tolerancia a fallosTolerancia a fallos Planificación de Entrada/SalidaPlanificación de Entrada/Salida Interfaces web de monitorizaciónInterfaces web de monitorización

Ejemplos de usoEjemplos de uso PagerankPagerank, , Google MapsGoogle Maps……

Page 10: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

MapReduce (II)MapReduce (II)

Estructura en dos fasesEstructura en dos fases Fase Fase mapmap: El nodo maestro recoge los datos : El nodo maestro recoge los datos

de entrada, los divide en sub-problemas más de entrada, los divide en sub-problemas más pequeños y los distribuye a los nodos pequeños y los distribuye a los nodos trabajadores. Un nodo trabajador puede trabajadores. Un nodo trabajador puede repetir esta operación, construyéndose una repetir esta operación, construyéndose una estructura de árbol multi-nivelestructura de árbol multi-nivel

Fase Fase reducereduce: El nodo maestro recoge los : El nodo maestro recoge los resultados de todos los sub-problemas y los resultados de todos los sub-problemas y los combina para obtener el resultado del combina para obtener el resultado del problema originalproblema original

Page 11: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

MapReduce (III)MapReduce (III)

Flujo de datosFlujo de datos

Page 12: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

MapReduce (IV). HadoopMapReduce (IV). Hadoop

Proyecto de ApacheProyecto de Apache Implementación Java de MapReduceImplementación Java de MapReduce Proporciona un framework que planifica tareas, facilita la Proporciona un framework que planifica tareas, facilita la

monitorización y soporta la re-ejecución de trabajos fallidosmonitorización y soporta la re-ejecución de trabajos fallidos Consta de:Consta de:

Un único proceso maestro Un único proceso maestro JobtrackerJobtracker que distribuye la que distribuye la informacióninformación

Varios procesos esclavos Varios procesos esclavos TasktrackerTasktracker, uno por nodo, encargados , uno por nodo, encargados de procesar los sub-problemasde procesar los sub-problemas

Características principalesCaracterísticas principales EscalableEscalable

Puede manejar y almacenar petabytes de forma seguraPuede manejar y almacenar petabytes de forma segura EficienteEficiente

Distribuyendo la información, Hadoop puede procesarla en paralelo en Distribuyendo la información, Hadoop puede procesarla en paralelo en los nodos en los que se almacenalos nodos en los que se almacena

SeguroSeguro Mantiene de forma automática varias copias de los datos y replanifica Mantiene de forma automática varias copias de los datos y replanifica

los trabajos fallidoslos trabajos fallidos

Page 13: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

MapReduce (V). HadoopMapReduce (V). Hadoop Ecosistema de HadoopEcosistema de Hadoop

Page 14: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

MapReduce (y VI). PigMapReduce (y VI). Pig

Plataforma software de análisis de grandes conjuntos de datosPlataforma software de análisis de grandes conjuntos de datos Lenguaje de alto nivel + infraestructura (compilador)Lenguaje de alto nivel + infraestructura (compilador) Pig LatinPig Latin

Se aproxima más a un lenguaje de flujo de datos que a uno Se aproxima más a un lenguaje de flujo de datos que a uno procedural o declarativoprocedural o declarativo

Facilidad de programaciónFacilidad de programación Posibilidades de optimizaciónPosibilidades de optimización ExtensibilidadExtensibilidad

VentajasVentajas Aumenta la productividadAumenta la productividad

10 líneas de código 10 líneas de código PigPig Latin Latin equivalen a 200 líneas en Javaequivalen a 200 líneas en Java Abre el sistema para programadores no familiarizados con Java…Abre el sistema para programadores no familiarizados con Java…

……ya que presenta similitudes con SQL…ya que presenta similitudes con SQL… ……aunque su uso más habitual es embeberlo en código Javaaunque su uso más habitual es embeberlo en código Java

Incluye operaciones comunes tales como Incluye operaciones comunes tales como joinjoin, , groupgroup, , sortsort……

Page 15: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Índice generalÍndice general

IntroducciónIntroducción MapReduceMapReduce Algoritmos GenéticosAlgoritmos Genéticos Diseño e Implementación de la solución Diseño e Implementación de la solución Resultados experimentalesResultados experimentales Demostración de la aplicaciónDemostración de la aplicación Conclusiones y futuras líneas de Conclusiones y futuras líneas de

desarrollodesarrollo

Page 16: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Algoritmos Genéticos (I)Algoritmos Genéticos (I) Los Algoritmos Genéticos (AG´s) son Los Algoritmos Genéticos (AG´s) son

métodos de búsqueda basados en una métodos de búsqueda basados en una simulación parcial de los mecanismos de simulación parcial de los mecanismos de la evolución naturalla evolución natural

Fueron creados en la década de 1960 Fueron creados en la década de 1960 por John Holland, como un modelo para por John Holland, como un modelo para el estudio del fenómeno de adaptación el estudio del fenómeno de adaptación natural y para el desarrollo de natural y para el desarrollo de mecanismos que permitieran incorporar mecanismos que permitieran incorporar este fenómeno a los sistemas de este fenómeno a los sistemas de computación.computación.

Page 17: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Algoritmos Genéticos (II)Algoritmos Genéticos (II)

Codificación de un individuoCodificación de un individuo Generalmente mediante cadenas binarias o Generalmente mediante cadenas binarias o

alfanuméricasalfanuméricas

Page 18: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Algoritmos Genéticos Algoritmos Genéticos (III)(III)

Operaciones que se realizanOperaciones que se realizan Función de evaluación: Determina la calidad del Función de evaluación: Determina la calidad del

individuo (dependiente del problema a resolver)individuo (dependiente del problema a resolver) Selección: Determina qué individuos continuarán Selección: Determina qué individuos continuarán

existiendoexistiendo Cruce: Mecanismo para obtener nuevos individuos Cruce: Mecanismo para obtener nuevos individuos

a partir de otrosa partir de otros Mutación: Mecanismo para obtener un nuevo Mutación: Mecanismo para obtener un nuevo

individuo a partir de su propia informaciónindividuo a partir de su propia información En esta propuesta nos centraremos en las En esta propuesta nos centraremos en las

implementaciones paralelas de Algoritmos implementaciones paralelas de Algoritmos Genéticos Básicos Genéticos Básicos

Page 19: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Algoritmos Genéticos Algoritmos Genéticos (IV)(IV)

Funcionamiento de un AG básicoFuncionamiento de un AG básico1.1. Comenzamos con una población Comenzamos con una población PP de de nn cromosomas generados cromosomas generados

aleatoriamentealeatoriamente2.2. Calculamos el valor de la función de evaluación para cada Calculamos el valor de la función de evaluación para cada

cromosomacromosoma3.3. Repetimos los siguientes pasos hasta la condición de terminación:Repetimos los siguientes pasos hasta la condición de terminación:

1.1. Seleccionamos un par de cromosomas, basándonos en una Seleccionamos un par de cromosomas, basándonos en una probabilidadprobabilidad

2.2. Los cruzamos de acuerdo también a una probabilidadLos cruzamos de acuerdo también a una probabilidad3.3. Los mutamos para construir una nueva poblaciónLos mutamos para construir una nueva población

4.4. Reemplazamos la población actual Reemplazamos la población actual PP por la nueva población por la nueva población PP´́5.5. Evaluamos la condición de terminación del algoritmoEvaluamos la condición de terminación del algoritmo6.6. Volvemos al paso 2Volvemos al paso 2

Page 20: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Algoritmos Genéticos (V)Algoritmos Genéticos (V) Funcionamiento de un AG básicoFuncionamiento de un AG básico

1.1. Comenzamos con una población Comenzamos con una población PP de de nn cromosomas generados cromosomas generados aleatoriamentealeatoriamente

2.2. Calculamos el valor de la función de evaluación para cada Calculamos el valor de la función de evaluación para cada cromosomacromosoma

3.3. Repetimos los siguientes pasos hasta la condición de terminación:Repetimos los siguientes pasos hasta la condición de terminación:1.1. Seleccionamos un par de cromosomas, basándonos en una Seleccionamos un par de cromosomas, basándonos en una

probabilidadprobabilidad2.2. Los cruzamos de acuerdo también a una probabilidadLos cruzamos de acuerdo también a una probabilidad3.3. Los mutamos para construir una nueva poblaciónLos mutamos para construir una nueva población

4.4. Reemplazamos la población actual Reemplazamos la población actual PP por la nueva población por la nueva población PP´́5.5. Evaluamos la condición de terminación del algoritmoEvaluamos la condición de terminación del algoritmo6.6. Volvemos al paso 2Volvemos al paso 2

Page 21: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Algoritmos Genéticos Algoritmos Genéticos (VI)(VI)

La implementación paralela elegida La implementación paralela elegida del AG básico sigue la estructura del AG básico sigue la estructura master-slavemaster-slave

Page 22: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Algoritmos Genéticos (y Algoritmos Genéticos (y VII)VII)

Tenemos constancia de dos aportaciones previas Tenemos constancia de dos aportaciones previas para adaptar AGs a MapReduce:para adaptar AGs a MapReduce:

MRPGA: An extension of MapReduce for Parallelizing MRPGA: An extension of MapReduce for Parallelizing Genetic Algorithms Genetic Algorithms [JVB.08][JVB.08]

Propone una extensión a MapReduce por medio de una fase Propone una extensión a MapReduce por medio de una fase reducereduce jerárquica jerárquica

Utiliza AGPs maestro-esclavoUtiliza AGPs maestro-esclavo Introduce la figura del CoordinadorIntroduce la figura del Coordinador

Scaling Genetic Algorithms using MapReduceScaling Genetic Algorithms using MapReduce [VLG.09] [VLG.09] Proporciona una aproximación más cercana a la nuestraProporciona una aproximación más cercana a la nuestra Utiliza Hadoop, encapsulando cada iteración del AG como un Utiliza Hadoop, encapsulando cada iteración del AG como un

trabajo MapReduce aisladotrabajo MapReduce aislado

Page 23: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Índice generalÍndice general

IntroducciónIntroducción MapReduceMapReduce Algoritmos GenéticosAlgoritmos Genéticos Diseño e Implementación de la solución Diseño e Implementación de la solución Resultados experimentalesResultados experimentales Demostración de la aplicaciónDemostración de la aplicación Conclusiones y futuras líneas de Conclusiones y futuras líneas de

desarrollodesarrollo

Page 24: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Diseño e implementación Diseño e implementación de la solución (I)de la solución (I)

Objetivo: Construir un sistema lo más Objetivo: Construir un sistema lo más genérico posible que facilitase la ejecución de genérico posible que facilitase la ejecución de problemas de Algoritmos Genéticos sobre un problemas de Algoritmos Genéticos sobre un entorno distribuidoentorno distribuido

Principales metas:Principales metas: Estudiar como transformar AGs en primitivas Estudiar como transformar AGs en primitivas mapmap

y y reducereduce Implementar, mediante Hadoop y Pig, una batería Implementar, mediante Hadoop y Pig, una batería

de problemas de AGs, demostrando su de problemas de AGs, demostrando su escalabilidad y convergencia bajo distintas escalabilidad y convergencia bajo distintas condicionescondiciones

Page 25: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Diseño e implementación Diseño e implementación de la solución (II)de la solución (II)

Cómo se adaptaron los pasos del AG básico a Cómo se adaptaron los pasos del AG básico a MapReduce:MapReduce:

1.1. Inicialización de la población Inicialización de la población Figuras Cliente, ‘Chromosome’ y CoordinadorFiguras Cliente, ‘Chromosome’ y Coordinador

2.2. Evaluación del valor de un individuoEvaluación del valor de un individuo Fase Fase mapmap Patrón de diseño Patrón de diseño Template Method Template Method para construir una jerarquía para construir una jerarquía

de clasesde clases3.3. Selección de los mejores individuosSelección de los mejores individuos

Fase Fase reducereduce Redefinición de la clase Redefinición de la clase PartitionerPartitioner de MapReduce de MapReduce

4.4. Recombinación mediante cruce:Recombinación mediante cruce: Fase Fase reducereduce Patrón Patrón Template MethodTemplate Method

5.5. Evaluación del valor de la poblaciónEvaluación del valor de la población Fase Fase reducereduce

6.6. Repetición de los pasos 2 a 5 del algoritmoRepetición de los pasos 2 a 5 del algoritmo Figura CoordinadorFigura Coordinador

Page 26: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Diseño e implementación Diseño e implementación de la solución (III)de la solución (III)

Arquitectura general de la aplicaciónArquitectura general de la aplicaciónMapReduce

Fase map

Fase reduce

Cliente

Nodo Pig

Page 27: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Diseño e implementación Diseño e implementación de la solución (III)de la solución (III)

Arquitectura general de la aplicaciónArquitectura general de la aplicaciónMapReduce

Fase map

Fase reduce

Cliente

Nodo Pig

Page 28: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Diseño e implementación Diseño e implementación de la solución (IV)de la solución (IV)

Implementación realizada en JavaImplementación realizada en Java Principalmente porque las APIs de Hadoop y Pig soportan extensivamente Principalmente porque las APIs de Hadoop y Pig soportan extensivamente

este lenguajeeste lenguaje División en dos paquetesDivisión en dos paquetes

src (Contiene todo el código fuente de la aplicación)src (Contiene todo el código fuente de la aplicación) common (Núcleo central del sistema)common (Núcleo central del sistema) problems (Clases problems (Clases mapmap y y reducereduce específicas de cada problema) específicas de cada problema)

config (ficheros de configuración XML específicos de cada problema)config (ficheros de configuración XML específicos de cada problema)

Page 29: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Diseño e implementación Diseño e implementación de la solución (y V)de la solución (y V)

Principales aportaciones del trabajoPrincipales aportaciones del trabajo No se rompe en ningún momento el ciclo No se rompe en ningún momento el ciclo map-map-

reducereduce (a diferencia de la propuesta (a diferencia de la propuesta MRPGAMRPGA)) Construcción de un framework software que Construcción de un framework software que

permite implementar de forma sencilla AGPs, permite implementar de forma sencilla AGPs, explorando toda la funcionalidad del modelo explorando toda la funcionalidad del modelo MapReduce.MapReduce.

Alto grado de flexibilidad y configuración gracias Alto grado de flexibilidad y configuración gracias a los más de 15 parámetros que soporta el a los más de 15 parámetros que soporta el sistemasistema

Uso de Pig como herramienta de análisis y Uso de Pig como herramienta de análisis y tratamiento de grandes cantidades de datostratamiento de grandes cantidades de datos

Page 30: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Índice generalÍndice general

IntroducciónIntroducción MapReduceMapReduce Algoritmos GenéticosAlgoritmos Genéticos Diseño e Implementación de la solución Diseño e Implementación de la solución Resultados experimentalesResultados experimentales Demostración de la aplicaciónDemostración de la aplicación Conclusiones y futuras líneas de Conclusiones y futuras líneas de

desarrollodesarrollo

Page 31: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Resultados Resultados experimentales (I)experimentales (I)

Se ha implementado una batería de tres Se ha implementado una batería de tres problemas para demostrar la convergencia problemas para demostrar la convergencia y escalabilidad de la solución desarrolladay escalabilidad de la solución desarrollada TargetPhraseTargetPhrase

Parte de un conjunto de cadenas de texto Parte de un conjunto de cadenas de texto alfanuméricas aleatorias que evolucionan hasta alfanuméricas aleatorias que evolucionan hasta conseguir formar una “frase objetivo”conseguir formar una “frase objetivo”

OneMAXOneMAX Se busca el individuo binario que maximice el Se busca el individuo binario que maximice el

número de unos dentro de una poblaciónnúmero de unos dentro de una población P-PicosP-Picos

Dado un número de picos (cadenas de texto Dado un número de picos (cadenas de texto binarias), se intenta obtener aquel que esté más binarias), se intenta obtener aquel que esté más cerca de uno dado (sobre una probabilidad de 1)cerca de uno dado (sobre una probabilidad de 1)

Page 32: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Resultados Resultados experimentales (y II)experimentales (y II)

Estudio de convergencia sobre el entorno Estudio de convergencia sobre el entorno distribuidodistribuido Debido al grado de personalización del Debido al grado de personalización del

sistema y a la decisión de delegar la sistema y a la decisión de delegar la implementación de ciertos métodos (cruce, implementación de ciertos métodos (cruce, mutación, etc) al usuario, el grado de mutación, etc) al usuario, el grado de convergencia puede variar ampliamenteconvergencia puede variar ampliamente

Se han realizado varios escenarios con los tres Se han realizado varios escenarios con los tres problemas, modificando en cada uno de ellos problemas, modificando en cada uno de ellos ciertas condiciones iniciales de partida ciertas condiciones iniciales de partida (población, número de iteraciones, prob. de (población, número de iteraciones, prob. de cruce, etc.)cruce, etc.)

Estudio de escalabilidad Estudio de escalabilidad Se ha demostrado empíricamente que el Se ha demostrado empíricamente que el

sistema escala hasta los 10.000 individuossistema escala hasta los 10.000 individuos

Page 33: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Índice generalÍndice general

IntroducciónIntroducción MapReduceMapReduce Algoritmos GenéticosAlgoritmos Genéticos Diseño e Implementación de la solución Diseño e Implementación de la solución Resultados experimentalesResultados experimentales Demostración de la aplicaciónDemostración de la aplicación Conclusiones y futuras líneas de Conclusiones y futuras líneas de

desarrollodesarrollo

Page 34: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Demostración de la Demostración de la aplicaciónaplicación

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

Page 35: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Índice generalÍndice general

IntroducciónIntroducción MapReduceMapReduce Algoritmos GenéticosAlgoritmos Genéticos Diseño e Implementación de la solución Diseño e Implementación de la solución Resultados experimentalesResultados experimentales Demostración de la aplicaciónDemostración de la aplicación Conclusiones y futuras líneas de Conclusiones y futuras líneas de

desarrollodesarrollo

Page 36: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Conclusiones y Futuras Conclusiones y Futuras Líneas de Desarrollo (I)Líneas de Desarrollo (I)

ConclusionesConclusiones Se ha conseguido en gran medida el factor de Se ha conseguido en gran medida el factor de

extensibilidad buscado, abstrayendo los distintos extensibilidad buscado, abstrayendo los distintos elementos que conforman el sistema y facilitando el elementos que conforman el sistema y facilitando el prototipado de AGs.prototipado de AGs.

Todas las operaciones complejas computacionalmente Todas las operaciones complejas computacionalmente se desarrollan de forma se desarrollan de forma transparentetransparente en un entorno en un entorno tolerante a fallostolerante a fallos

PortabilidadPortabilidad: Mediante la encapsulación en un fichero : Mediante la encapsulación en un fichero JAR se consigue que la aplicación pueda ser ejecutada JAR se consigue que la aplicación pueda ser ejecutada en cualquier entorno que disponga de Java, Hadoop y en cualquier entorno que disponga de Java, Hadoop y Pig.Pig.

FacilidadFacilidad de usode uso: El usuario solo debe escribir un : El usuario solo debe escribir un fichero XML de configuración, una clase fichero XML de configuración, una clase mapmap con dos con dos métodos, una clase métodos, una clase reducereduce con tres métodos y con tres métodos y especificar los parámetros de configuración que desee especificar los parámetros de configuración que desee por línea de comandos.por línea de comandos.

Page 37: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Conclusiones y Futuras Conclusiones y Futuras Líneas de Desarrollo (y II)Líneas de Desarrollo (y II)

Futuras líneas de desarrollo:Futuras líneas de desarrollo: Definición de una clase personalizada Definición de una clase personalizada

InputFormatInputFormat para saltarnos la limitación que para saltarnos la limitación que establece el framework de Hadoop a partir de establece el framework de Hadoop a partir de su versión 0.20.1 y especificar el número de su versión 0.20.1 y especificar el número de tareas tareas map map a gusto del usuarioa gusto del usuario

Generación de la población inicial como un Generación de la población inicial como un trabajo trabajo MapReduceMapReduce en vez de una tarea en vez de una tarea secuencialsecuencial

Aplicación del sistema a AGs en entornos Aplicación del sistema a AGs en entornos realesreales

Por ejemplo: Diseño de velas y timones para barcosPor ejemplo: Diseño de velas y timones para barcos

Page 38: Desarrollo de un entorno MapReduce para la ejecución distribuida de Algoritmos Genéticos Paralelos Autor: Alberto Luengo Cabanillas Directores: Xoán Carlos

Preguntas y AclaracionesPreguntas y Aclaraciones