Download “Experimentación distribuida basada en el sistema Condor”
Document related concepts
no text concepts found
Transcript
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR “Experimentación distribuida basada en el sistema Condor” Alumno: Francisco José Romero Ramírez Directores: Prof. Dr. Sebastián Ventura Soto Prof. D. ª Amelia Zafra Gómez Petición de tema de proyecto Francisco José Romero Ramírez 1. DATOS PERSONALES Título del proyecto: “Experimentación distribuida basada en el sistema Condor” Autor: Francisco José Romero Ramírez Titulación: Ingeniería Técnica en Informática de Sistemas Directores: - Prof. Dr. Sebastián Ventura Soto - Prof. D.ª Amelia Zafra Gómez 2. INTRODUCCIÓN Los Algoritmos Evolutivos (AEs) trabajan con una población de individuos que mediante procesos de mutación y de recombinación tratan de resolver distintos problemas de optimización [1]. Estos algoritmos pueden ser modificados mediante el ajuste de una serie de parámetros tales como el tamaño de población, numero de generaciones, probabilidad de cruce, etc. Lógicamente, estos cambios influyen en el rendimiento del algoritmo. Por esta razón, uno de los pasos más importantes en la aplicación de AEs para la resolución de un problema es el ajuste de dichos parámetros [2,3]. Para ello, el procedimiento más usual es realizar una serie de pruebas, en cada una de las cuáles se utiliza una combinación de parámetros de configuración. Posteriormente, se estudian los resultados obtenidos y se elige la combinación que se considera más apropiada. Como puede suponerse, si aumentamos el número de combinaciones de parámetros tendremos un mayor conocimiento del comportamiento paramétrico del algoritmo y, por consiguiente, podremos elegir una combinación más apropiada para el problema planteado. Sin embargo, el consumo de recursos para el procesamiento se verá a su vez incrementado. Por esta razón, no es raro encontrar problemas que requieran semanas o meses de cálculo para la obtener una solución. En estas circunstancias, una eficaz gestión y explotación de los recursos informáticos disponibles es la clave para la solución de nuestro problema. Condor [4] es un software para la computación de Alto Rendimiento (HTC, High Throughput Computing). Está ideado para aprovechar al máximo la capacidad computacional de una red de ordenadores. Nos permite ejecutar una serie de trabajos de forma distribuida, repartiéndolos entre tantas máquinas como haya disponibles. Así, en el mejor de los casos, nuestro trabajo finalizará en el tiempo que tarda en ejecutarse el más lento de nuestros procesos. Dado que nuestro problema de búsqueda de la combinación óptima de parámetros consiste en ejecutar una serie de pruebas independientes, el uso de Condor para la realización de dichas pruebas parece una solución apropiada a nuestras necesidades. -1- Petición de tema de proyecto Francisco José Romero Ramírez 3. OBJETIVOS El objetivo principal de este proyecto es el desarrollo de una aplicación informática que permita automatizar la ejecución de una serie de algoritmos evolutivos, a fin de realizar fácilmente estudio de parámetros, de rendimiento del algoritmo, etc. La plataforma software sobre la que se van a desarrollar los algoritmos es la librería de clases para computación evolutiva JCLEC [5,6]. Este objetivo se puede desglosar en los siguientes objetivos secundarios: • • • • • • Implementar un lenguaje que nos permita especificar los parámetros que van a ser aplicados a un Algoritmo Evolutivo. Un algoritmo evolutivo, que estará implementado con el software JCLEC. Implementar un lenguaje para especificar las baterías de pruebas, que estarán formadas por los parámetros que hayan sido anteriormente definidos. A partir de las baterías de pruebas, se generarán automáticamente los ficheros de configuración, que serán enviados al sistema Condor. Condor aprovechará los recursos disponibles en la red, para aplicar de forma paralela y distribuida, los ficheros generados. En uno de los equipos de la red se instalará el servidor central de Condor (Condor Central Manager), el cuál actuará como intermediario entre los recursos y los trabajos que les sean enviados, buscando el mejor recurso disponible para un trabajo dado. Al resto de máquinas de la red, será instalado el cliente Condor, que les permitirá enviar trabajos a Condor central (que los pondrá en cola), así como ser recurso disponible para la ejecución de las pruebas. Para facilitar la definición de los parámetros que usará el algoritmo, será diseñada una interfaz gráfica, que permitirá al usuario introducir los datos. 4. ANTECEDENTES En la actualidad existen numeras investigaciones realizadas sobre “Hight Throughput Computing”. En este proyecto aprovecharemos este mecanismo para reducir el costo computacional que resulta de la ejecución de algoritmos evolutivos. En cuanto a la combinación de Condor y algoritmos evolutivos podemos decir que no existen estudios realizados al respecto, con lo cual, nos iniciaremos en este tema basándonos en las vertientes comentadas. 5. FASES DE DESARROLLO DEL PROYECTO La elaboración de este proyecto consta de aquellas tareas que nos llevan desde la comprensión y análisis del problema, a la posterior implementación y -2- Petición de tema de proyecto Francisco José Romero Ramírez documentación del mismo. A continuación mostramos un informe detallado de cada una de las etapas del proyecto: 5.1. FASE DE ANALISIS Y PREPARACIÓN En primer lugar, realizaremos un estudio en profundidad de las herramientas que vamos a emplear en la elaboración del proyecto: • Estudio de la librería JCLEC. Que nos ayude a comprender, implementar y dar soluciones a algoritmos evolutivos. JCLEC esta desarrollado en Java [7,8], por lo que debemos también, conocer este lenguaje de programación. • Estudio general sobre “High Thoughtput Computing” y Condor en particular. Condor será el sistema que podrá en práctica lo aprendido de “High Thoughtput Computing”, encargándose de gestionar y hacer un uso eficiente de los recursos que dispongamos en la red. Facilitar la tarea en la etapa de diseño es fundamental en esta fase, por lo que nos encargaremos una vez estudiados los temas anteriormente expuestos, de analizar todos los puntos del software a implementar. Para poder realizar y poner en práctica nuestro sistema, instalaremos el sistema Condor en diferentes equipos. Uno de los equipos actuará como máquina central que se encargará de recibir las tareas, comprobar los recursos de la red, y asignar trabajos a la red. El resto de equipos actuarán como clientes, se encargarán de enviar trabajos para que el servidor le asigne recursos, y se pondrán a la disposición de Condor para la ejecución de trabajos cuando la carga del sistema sea baja. 5.2. FASE DE DISEÑO En esta etapa atendremos a los requisitos del análisis, para proceder al diseño de los datos, de la interfaz y de los ficheros de ejecución finales. Se realizará un diseño de estructuras de datos que permitan representar los diferentes parámetros que serán utilizados por los algoritmos evolutivos. El diseño de la interfaz que facilitará la interacción del usuario con el sistema. Y como punto final del diseño, atenderemos a los requisitos de Condor, para poder definir y diseñar los scripts que serán enviados para poder ejecutar las pruebas. 5.3. FASE DE IMPLEMENTACIÓN Se codificaran las diferentes partes de la aplicación. En ella tendremos en cuenta los detalles del diseño para su implementación. -3- Petición de tema de proyecto Francisco José Romero Ramírez Finalizada esta etapa podremos decir que el sistema esta elaborado, ya solo resta someterlo a diferentes pruebas para refinarlo. 5.4. FASE DE PRUEBAS Se verificará el correcto funcionamiento del software implementado. A su vez se evaluará el rendimiento del sistema, así como la correcta explotación y administración de los recursos de la red. 5.5. FASE DE DOCUMENTACIÓN Esta fase se realizará de forma simultánea al resto de tareas anteriormente expuestas. Tiene como objetivo fundamental generar la documentación en formato de documento impreso, que será entregado para la lectura del mismo. 6. RECURSOS A continuación mostraremos los recursos que deberemos emplear, para que el desarrollo de nuestro proyecto pueda realizarse: 6.1. RECURSOS HUMANOS Este proyecto será realizado por Francisco José Romero Ramírez estudiante de Ingeniería Técnica en Informática de Sistemas, bajo la dirección y supervisión de los profesores D. Sebastián Ventura Soto y D. ª Amelia Zafra Gómez. 6.2. RECURSOS SOFTWARE • • • • S.O. Linux: distribuciones CentOS y Debian. S.O. Microsoft Windows XP. Condor. Sistema de gestión de recursos basado en colas. JCLEC. Biblioteca de clases, para el desarrollo de aplicaciones basadas en Computación Evolutiva. • Eclipse Plataform. Plataforma de desarrollo orientada a la programación en Java. • JDK. Conjunto de librerías de desarrollo del lenguaje de programación Java. • Open Office. Suite de ofimática. 6.3. RECURSOS HARDWARE • Ordenador portátil personal, Acer TravelMate 4060 con procesador Intel Pentium M a 1,73 GHz. Memoria RAM 1GB DDR2. Tarjeta gráfica 128 MB’s. HDD de 60GB. Sistemas operativos Windows XP y CentOS 5.0. -4- Petición de tema de proyecto Francisco José Romero Ramírez • Ordenador con procesador Intel Celeron a 2,66GHz. Memoria RAM 1GB DIMM. Tarjeta gráfica GeForce4 MX 4000. HDD de 122GB. Sistema operativo CentOS 5.0. • Ordenador con dos procesadores Intel Pentium 4 a 3,00GHz cada uno. Memoria RAM 512MB. Tarjeta gráfica GeForce4 MX 4000. HDD de 80GB. Sistema operativo CentOS 5.0. • Ordenador con procesador Intel Pentium 4 a 3,00GHz. Memoria RAM 512MB. Tarjeta gráfica GeForce4 MX 4000. HDD de 80GB. Sistema operativo debian Además de estos equipos que emplearé para realizar el proyecto, utilizaré los equipos del servicio de informática donde se instalará el cliente Condor para realizar las pruebas finales y verificar el correcto funcionamiento del sistema. 7. BIBLIOGRAFÍA [1] Michalewicz Z. Genetic Algoritms + Data Structures = Evolutionary Programs. Springer, 1994. [2] Lobo F., Lima C., Michalewicz Z. (eds) Parameter setting in evolutionary algorithms. Springer, 2007. [3] Asignación de Parámetros en los Algoritmos Genéticos. Giovanni A. Cantor Monroy. SEMINARIO DE INVESTIGACION 2007-01. [4] Condor Project homepage. “Hight Throughput Computing”. The University of Wisconsin. http://www.cs.wisc.edu/condor/ (marzo de 2008). [5] S. Ventura, C. Romero, A. Zafra, J.A. Delgado y C. Hervás. JCLEC: A Java Framework for Evolutionary Computation. Soft Computing, 12(4), 381-392, 2008. [6] JCLEC Project homepage. “Java Class Library for Evolutionary Computation”: http://jclec.sourceforge.net/ (marzo de 2008). [7] Java homepage: http://java.sun.com/ (marzo de 2008). [8] Eckel, B. “Piensa en Java”. 2ª edición. Madrid. Prentice-Hall. 2002. 956 pág. ISBN: 84-205-3192-8. -5- Petición de tema de proyecto Francisco José Romero Ramírez Alumno Fdo.: Francisco José Romero Ramírez Director Director Fdo.: Dr. Sebastián Ventura Soto Fdo.: D. ª Amelia Zafra Gómez Córdoba, 21 de Abril de 2008 -6-