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-