Despliegue auto-adaptativo e inteligente de aplicaciones grid basado en la Búsqueda de Entorno Variable Marı́a Botón-Fernández1 , Miguel A. Vega-Rodrı́guez2 , Francisco Prieto Castrillo1 Resumen— El paradigma de la computación grid está siendo cada vez más utilizado por la comunidad cientı́fica para realizar operaciones de cómputo intensivo. Sin embargo, este tipo de infraestructuras tiene problemas en cuanto a la selección de recursos, debido a las caracterı́sticas cambiantes del entorno y la heterogeneidad de los recursos. Es por ello, que esta investigación pretende proporcionar a los usuarios una alternativa que minimice el impacto de esos problemas en la ejecución de sus aplicaciones. Se ha diseñado, para ello, un modelo de selección eficiente de recursos que dota de una capacidad auto-adaptativa a las aplicaciones. La forma de lograrlo es aplicando algoritmos propios del campo de la Inteligencia Artificial durante el proceso de selección. Además, observando los resultados obtenidos en las pruebas del modelo, se puede deducir que, no sólo se consigue una reducción en los tiempos de ejecución de las aplicaciones sino también un incremento en el número de tareas finalizadas correctamente. Podemos concluir por tanto, que el modelo mejora la productividad de la infraestructura para las aplicaciones, reduciendo el tiempo de ejecución e incrementando la tasa de tareas finalizadas. Palabras clave— Auto-adaptativo, Búsqueda de entorno variable, Selección de recursos, aprendizaje, computación grid I. Introducción Desde la última década, un nuevo paradigma de computación distribuida conocido como Computación grid [1] [2] está siendo utilizado en un amplio número de proyectos [3] [4] [5] [6]. Una grid es una gran colección de recursos computacionales y de almacenamiento que forma una infraestructura dinámica, organizada mediante Organizaciones Virtuales (VO). Varios aspectos de este tipo de entornos distribuidos han sido investigados durante los 90, proporcionando sólidas soluciones para implementaciones y problemas de programación. Sin embargo, esta iniciativa tecnológica tiene nuevas cuestiones y problemas que requieren nuevas aproximaciones para resolverlos. En concreto, la selección de recursos es un problema complicado en los entornos grid debido a que sus planificadores manejan recursos en una infraestructura dinámica, es decir, en una infraestructura con diversas capacidades y elementos con caracterı́sticas 1) Dept. Ciencia y Tecnologı́a, Ceta-Ciemat. Trujillo. Email: {maria.boton, francisco.prieto}@ciemat.es 2) Dept. Tecnologı́a de los Computadores y las Comunicaciones, Universidad de Extremadura. Cáceres E-mail: [email protected] cambiantes. Se debe tener en cuenta que el rendimiento, la eficiencia y la disponibilidad de los recursos grid varı́a a lo largo del tiempo en estos entornos estocásticos. Asimismo, estos planificadores buscan nodos de cómputo entre una gran cantidad de sites, seleccionando uno de ellos en base a ciertos requisitos de las tareas. Por todo esto, las aplicaciones en una infraestructura grid necesitan adaptarse a las caracterı́sticas dinámicas de la misma. El presente trabajo asume este hecho como un problema de selección de recursos. Sin embargo, desarrollar una estrategia de planificación capaz de alcanzar un óptimo rendimiento en este tipo de entornos es un objetivo difı́cil. Es necesario considerar las necesidades de la aplicación, el estado dinámico de la infraestructura y las restricciones de usuario para operar en este tipo de entornos. El objetivo de esta investigación es solucionar estas cuestiones aplicando una estrategia eficiente para seleccionar un grupo de recursos en los que ejecutar el correspondiente conjunto de tareas. Se pretenden alcanzar también los siguientes objetivos: una reducción del tiempo de ejecución y un incremento del número de tareas finalizadas con éxito. Igualmente, el modelo permite a las aplicaciones, desde el nivel de usuario, ser auto-adaptativas en un entorno grid evolutivo y cambiante. En este estudio se presenta una versión de dicho modelo, en el que se ha aplicado la metaheurı́stica conocida como Búsqueda de Entorno Variable [7] [8] [9] para la parte de selección de recursos. Dicha metodologı́a, perteneciente al campo de la Inteligencia Artificial (IA), se utiliza para resolver problemas de optimización, cuya idea básica es el cambio sistemático de entorno en una búsqueda local. El resto del artı́culo está estructurado de la siguiente manera. Una sı́ntesis del trabajo relacionado se expone en la sección 2. Por su parte, en la sección 3 se describe el modelo propuesto para una selección inteligente de recursos. Esta sección incluye tanto la definición, como la formulación e implementación del algoritmo aplicado. Los experimentos para comparar la selección tradicional de recursos en este tipo de entornos y la propuesta, incluyendo los resultados de dichos experimentos, se describen en la cuarta sección. Para finalizar, en la quinta sección se presentan las conclusiones de esta investigación y el trabajo futuro. II. Trabajo relacionado El problema de selección de recursos en los entornos grid ha sido objeto de estudio en los últimos años. En la literatura se pueden encontrar tanto algoritmos, como polı́ticas de planificación ası́ como el diseño de nuevos sistemas para solventar este problema. Varios de estos trabajos investigan la posibilidad de dotar de una capacidad auto-adaptativa a las aplicaciones grid [10] [11] [12] [13]. En [10] se presenta un método de gestión autónoma de las aplicaciones grid, de manera que las decisiones que este modelo toma vienen determinadas por estados internos de la aplicación o por información externa que se va adquiriendo. Por su parte, en [11] la idea principal es recoger información durante la ejecución de la aplicación. Dicha información se obtiene en intervalos periódicos de tiempo y se emplea para estimar las necesidades de la aplicación durante toda su ejecución. Puede decirse que se han centrado, sobre todo, en resolver problemas de cuello de botella y sobrecarga de la infraestructura, todo ello en pro de mejorar el rendimiento de esta última. Un ajuste dinámico del sistema al paralelismo de la aplicación es lo que se propone en [12]. Para conseguirlo se tienen en cuenta las caracterı́sticas de los recursos. Describen especı́ficamente dos polı́ticas: una para la suspensión y otra para la migración de las aplicaciones. Por último, en cuanto a algoritmos y polı́ticas auto-adaptativas, se tiene el trabajo [13] que desarrolla un framework basado en Globus que permite a los usuarios enviar sus trabajos de manera más eficiente. Como se ha indicado anteriormente, hay investigaciones que se han centrado más en diseñar nuevos sistemas grids auto-adaptativos. Un reflejo del trabajo realizado hasta el momento en esta lı́nea queda recogido en [14], donde se analizan y comparan propuestas existentes de este campo. Para finalizar esta sı́ntesis sobre la literatura relacionada, decir que también se está trabajando en enlazar el paradigma de la computación autónoma con la computación grid, a fin de mejorar el servicio de información de este tipo de entornos [15]. Esto ayudarı́a a mejorar los procesos de descubrimiento y monitorización de los recursos. III. Modelo de despliegue inteligente en entornos grid El presente modelo ha sido definido para seleccionar de manera eficiente los recursos que mejor se ajustan a los requisitos de la aplicación. Por otra parte, puede ser considerado como una herramienta de apoyo para que los usuarios puedan ejecutar sus aplicaciones en un entorno grid. La estrategia de optimización propuesta se ha definido desde el punto de vista del usuario, es decir, la metodologı́a para elegir los correspondientes elementos grid aplica tanto conceptos como operaciones básicas de los usuarios grid para alcanzar este objetivo. En una infraestructura grid, los usuarios interaccionan con los elementos correspondientes a través de la Interfaz de usuario (UI), utilizando un conjunto concreto de comandos. Esta UI suele ser una máquina donde los usuarios tienen instalados sus certificados grid. Con dichos comandos pueden, incluso, obtener cierta información sobre los elementos consultando el sistema de información del entorno grid conocido como BDII (Berkeley Database Information Index). Sin embargo, ante situaciones de bajo rendimiento de la infraestructura o, simplemente, para evitar una ejecución ineficiente de las aplicaciones, son muy pocas las alternativas que los usuarios puedan llevar a cabo. Como se muestra en la Figura 1, cuando los usuarios envı́an sus tareas a la grid, lo hacen a través de la UI. Entonces, las tareas son manejadas por un metaplanificador conocido como Resource Broker (RB), que se encarga de enviarlas a un RC (Resource Center, Centro de recursos) especı́fico. En el RC, las tareas son gestionadas por el correspondiente CE (Computing Element). Este planificador selecciona el conjunto de nodos de trabajo WN (Worker Node) para dichas tareas. En el presente estudio, los recursos que se van a seleccionar de forma eficiente son los CE, ya que la grid permite a los usuarios especificar a cual de estos planificadores quiere enviar sus tareas. Fig. 1 Esquema básico de una infraestructura grid tı́pica, donde puede verse una posible división de sus elementos en los dos grandes grupos: Centro de Recursos y Centro de Operación de Recursos. Es por ello que el modelo propuesto presenta restricciones en cuanto a las métricas de eficiencia de los CEs. Esto significa que, en cada ciclo de ejecución de la aplicación, los recursos más eficientes serán seleccionados. En este trabajo, esa selección de recursos está basada en la metaheurı́stica conocida como Búsqueda de Entorno Variable (VNS) [7]. De este modo, el modelo realiza una asignación del tipo tareas-recursos en cada ciclo de ejecución. Realmente, esta asignación relaciona un determinado conjunto de tareas Pα con un conjunto concreto de recursos RPα , los cuales se encargarán del cómputo de las mismas. Los elementos que forman ese RPα son clasificados en base a su fitness. El fitness de un recurso es calculado en el modelo en base a una serie de parámetros, como puede observarse en la ecuación Ec.1, donde los principales son: el porcentaje de tareas finalizadas con éxito ǫi y el tiempo de ejecución Ti del CE i dado. Fi = (a.ǫi + b∆ti )/(a + b) (1) donde ∆ti (Ec.2) es la mejora en el tiempo de procesamiento del recurso i, y es calculado haciendo uso de los tiempos máximo y mı́nimo del RPα correspondiente. Los parámetros a y b son considerados dos parámetros de ponderación, especificados por el usuario, que indican la relevancia de los parámetros principales (ǫi y Ti ). ∆ti = (Tmax − Ti )/(Tmax − Tmin ) (2) Una vez se ha realizado la asignación de una Pα a un RPα , las tareas que componen esa partición especı́fica son ejecutadas (tercer paso: ejecutar Pα ). En el cuarto paso: actualizar la información de eficiencia de RPα , se calculan las métricas correspondientes para los elementos de RPα haciendo uso de los datos obtenidos en ese ciclo, es decir, cuando la ejecución de la unidad de proceso Pα termina, por cada CE que compone RPα los valores de fitness y eficiencia son actualizados. Esta información de rendimiento permite al modelo clasificar los recursos y seleccionar, en cada ciclo de ejecución de la aplicación, aquellos CEs que mejor se adaptan a los requisitos de la aplicación. El quinto paso: seleccionar un RPα eficiente consiste, por tanto, en elegir de acuerdo con el algoritmo inteligente utilizado (en este caso en base al VNS) los recursos que formarán parte del siguiente RPα . Después de esto, el modelo repite el tercer paso creando un bucle (como puede verse en la Figura 2) hasta que todas las tareas pertenecientes a J son ejecutadas. El sexto paso: generar el fichero de datos de salida es responsable de generar un fichero de salida donde queden registradas todas las métricas calculadas por el modelo durante la ejecución de la aplicación. donde el parámetro Ti se obtiene aplicando la fórmula expuesta en Ec.3 en la que N Ti es el número de tareas asignadas al CE i, Tcommi es el tiempo de comunicación del CEi y Tcompj,i es el tiempo de proceso de la tarea j en el CEi : Ti = Tcommi + X Tcompj,i (3) jεN Ti A. Estrategia general para la selección eficiente de recursos grid Como se ha mencionado, el modelo propuesto es una alternativa para la selección eficiente de recursos en entornos grid. Esto conlleva que sea necesario trabajar con dos espacios: un espacio de tareas J, compuesto por n tareas independientes, y un espacio de recursos heterogéneos R con m elementos (m es la cantidad de recursos de la infraestructura). El esquema general que el modelo sigue consta de 6 pasos, los cuales son descritos a continuación: El primer paso: particionar el espacio J (Figura 2) consiste en dividir el espacio de tareas J en α unidades de proceso denotadas como Pα , todas ellas del mismo tamaño (mismo número de tareas). De esta forma, en cada ciclo de ejecución de la aplicación una Pα es enviada a la infraestructura grid. Entonces en el segundo paso: seleccionar el RPα inicial, para la Pα inicial el conjunto de recursos RPα perteneciente a R es elegido. Normalmente, esta primera selección se hace de manera aleatoria, porque en ese momento el modelo no tiene información sobre la eficiencia de los recursos. Sin embargo, esta selección para el resto de Pα depende del algoritmo empleado en esa instancia del modelo. Fig. 2 Esquema con los principales pasos del modelo de selección eficiente, donde puede apreciarse la interacción entre los dos espacios con los que se trabaja (recursos y tareas). B. Modelo de selección de recursos eficiente basado en la Búsqueda de Entorno Variable Para la selección eficiente de recursos grid se hace uso de una metaheurı́stica, empleada en la resolución de problemas de optimización, conocida como B úsqueda de Entorno Variable [7] [8] [9]. Este tipo de búsqueda se basa en el cambio sistemático de estructura de entorno. Estos cambios de entorno pueden ser tanto deterministas como aleatorios (Figura 3). un determinado entorno (proceso de búsqueda local de la Figura 3). Es decir, determina el número de candidatos posibles entre los que buscar aquellos que compongan la solución x′′ . INICIALIZACIÓN Seleccionar el conjunto de estructuras de vecindad Nk para k=1....kmax que va a ser utilizado en la búsqueda. Encontrar la solución inicial x. Especificar una condición de parada del bucle. ITERACIONES Repetir hasta que se cumpla la condición de parada del bucle. Poner k=1 p3 Repetir hasta k=kmax Generar un punto x' aleatoriamente perteneciente a la vecindad k de x. q3 Avanzar o no: si x'' es mejor que x: x=x' y k=1 En otro caso k=k+a Fig. 3 La figura muestra los diferentes pasos que comprenden el algoritmo de búsqueda de entorno variable. Son muchas las versiones formuladas para esta metodologı́a, la que se presenta en este estudio es la versión básica. A continuación, se va a exponer la formulación del modelo inteligente aplicando esta metodologı́a. Además, en la siguiente subsección se presenta la implementación del mismo. A esta versión concreta del modelo se la ha denotado como Efficient Resources Selection based on the VNS (ERS-VNS). Entonces, considerando las reglas del algoritmo VNS, en esta versión del modelo se debe especificar una función a optimizar. El presente estudio pretende optimizar el fitness de cada RPα , ya que esto implica una reducción en el tiempo global de ejecución de la aplicación, ası́ como un incremento en el número de tareas finalizadas con éxito. Como se está trabajando con valores normalizados, esto significa que se pretende que este valor sea lo más próximo a 1. La ecuación para calcular el fitness de un determinado RPα es la siguiente: m X F (RPα ) = ( Fi )/m (4) i=1 donde F (RPα ) es el valor medio del fitness para el conjunto RPα , Fi (Ec. 1) es el valor de fitness para cada uno de los recursos que componen ese RPα y m es la cardinalidad de RPα . Continuando con la adaptación del algoritmo a nuestro modelo, denotamos como Nk (k = 1...kmax ) al conjunto finito de estructuras de vecindad. Cada uno de esos entornos o vecindades tiene asociados dos parámetros (Figura 4): pk : especifica el porcentaje de variación de una solución x′ , para un entorno concreto, respecto de la solución inicial x cuando se realiza el proceso de mutación (primer paso del bucle en la Figura 3). qk : especifica el porcentaje de amplitud para la selección de candidatos durante el proceso de búsqueda y obtención de la correspondiente solución x′′ , para Fig. 4 Diagrama de estructuras de vecindad para el caso concreto ERS-VNS que se está tratando. Se puede apreciar que cada vecindad tiene asociados dos parámetros pk y qk . De aquı́ puede deducirse que, en este estudio, se está considerando que una solución dentro de este particular espacio de búsqueda es un conjunto RPα . Por lo que, en un determinado ciclo de ejecución de la aplicación tenemos que el RPα en cuestión es una solución local. En particular, en el modelo se realizan las siguientes equivalencias: x: se trata del primer conjunto RPα , también conocido como solución inicial. Los elementos que lo componen son elegidos de manera aleatoria como se especifica en las reglas del algoritmo. x′ : se trata del conjunto RPα resultante de aplicar el proceso de mutación a x. x′′ : es el nuevo conjunto RPα que se obtiene tras realizar el proceso de búsqueda local a x′ . Es más, se trata del conjunto a asociar a la siguiente Pα . Finalmente, para ayudar a que el algoritmo sea más voraz en la búsqueda del conjunto de recursos óptimo, se ha establecido un umbral de bondad para el fitness, por lo que, aquellos recursos cuyo valor de fitness obtenido no superen dicho umbral serán aquellos con posibilidad de mutar (no son considerados suficientemente eficientes). B.1 Detalles de implementación de la versión ERSVNS Una vez se realiza la formulación del modelo de selección inteligente aplicando el algoritmo VNS, las decisiones y detalles más especı́ficos en cuanto a su implementación se comentan a continuación. Como se indica al principio de la sección, para la búsqueda de una solución óptima se está trabajando con un conjunto de estructuras de vecindades cuyo tamaño debe ser especificado. En el presente caso, se va a trabajar con un total de 5 estructuras de vecindad. Para fijar este valor se ha tenido en cuenta la cantidad de recursos que se va a tener en la infraestructura de pruebas, el tamaño de los experimentos, el número máximo de iteraciones del modelo para esos experimentos y el tiempo que conllevan dichas ejecuciones. Los parámetros p y q asociados a cada entorno son utilizados tanto en la mutación como en la búsqueda local para llegar a obtener la solución x′′ . Como ya se ha indicado, en la versión ERS-VNS x′′ es el nuevo RPα . Se debe hacer constar que el valor de cada pk debe variar de manera ascendente de un entorno a otro, ya que pk representa la variación que existe entre la solución inicial x y la solución del correspondiente entorno. Por ejemplo, las soluciones pertenecientes a la última vecindad varı́an mucho más con respecto a x que aquellas que pertenecen a las vecindades más cercanas o iniciales. Como el objetivo del algoritmo, en este caso, es encontrar en el menor tiempo posible la solución óptima, el valor de pk varı́a desde 50 % hasta 90 %. Por otro lado, el parámetro q es utilizado para especificar en cada entorno el tamaño del conjunto de candidatos en el proceso de búsqueda local. La forma de hacer esto es considerar el tamaño del conjunto de candidatos s , para una estructura de vecindad concreta, como el qk % de m (donde m es el número de recursos disponibles). Es decir, todos los recursos son ordenados en base a su eficiencia, de manera que, el modelo elige los s primeros recursos como candidatos. Tras este proceso, a partir de dicho conjunto de recursos, se escogen de forma aleatoria aquellos que formarán parte de la nueva solución x′′ . Estas consideraciones relativas al parámetro q aseguran que no sólo los recursos más eficientes serán escogidos, en un determinado momento, sino que igualmente se les concederá una oportunidad a los no explorados. Los valores de q varı́an desde 20 % hasta 100 %. Se está procurando, asimismo, que el algoritmo sea lo más voraz posible en la búsqueda del óptimo global, por lo que estas consideraciones potencian dicha condición. Es por ello que, además, durante el proceso de mutación las reglas se han definido teniendo en cuenta estos dos criterios: En cada iteración se debe trabajar con los mejores recursos. Se debe dar una oportunidad a todos los recursos para participar en la ejecución de una Pα , ya que no sabemos cuál es el CE o CEs más eficientes. Finalmente, al término de cada ciclo de ejecución, el modelo evalúa si la solución x′′ utilizada en ese momento es más eficiente que la solución x. Una solución x′′ será considerada más eficiente que la inicial si su RPα tiene un fitness más alto que el RPα inicial, es decir, nos quedamos con el conjunto de recursos cuyo fitness esté más próximo a 1. IV. Experimentación y resultados Una vez ha sido definido e implementado el modelo ERS-VNS, se procede a definir y realizar la fase de pruebas. Para ello, fue necesario buscar una infraestructura con una cantidad de CE suficientes como para que el modelo pueda ser aplicado. A su vez, era necesario definir unos escenarios en los que se pudiera apreciar la capacidad de selección inteligente del ERS-VNS. En las siguientes subsecciones se exponen tanto la infraestructura de prueba como los escenarios desarrollados, en los que se ha comparado el modelo con la selección tı́pica de la grid (la cual se ha denominado como Traditional Resources Selection TRS). En la selección TRS los recursos grid (CEs) son elegidos mediante un proceso conocido como match-making. Según este proceso, los CEs elegidos para ejecutar las tareas se seleccionan, de entre todos los disponibles, en base a su cercanı́a con respecto a los ficheros de entrada de los jobs, reduciendo ası́ la latencia de comunicación, y en base a los criterios que el usuario haya podido especificar en los ficheros de descripción de los trabajos. A. Infraestructura de pruebas Para verificar que el modelo propuesto consigue realizar una selección inteligente y un uso eficiente de los recursos grid se debe encontrar una infraestructura de test apropiada. Para el caso que nos ocupa, se ha hecho uso de una de las infraestructuras perteneciente al proyecto conocido como Iniciativa Grid Nacional 1 2 (NGI). Esta iniciativa proporciona un marco que permite la colaboración conjunta tanto de usuarios como expertos en diferentes aplicaciones (biocomputación, imágenes médicas, quı́mica computacional, fusión, meteorologı́a, etc.), investigadores en el campo de las TIC ası́ como centros proveedores de recursos. La infraestructura NGI española gestiona actualmente las siguientes Organizaciones Virtuales (VO) genéricas: vo.operaciones.es-ngi.eu vo.general.es-ngi.eu vo.formacion.es-ngi.eu La primera está dedicada a gestionar operaciones de la infraestructura y no tiene efectos desde el punto de vista del usuario. La segunda tiene como objetivo proporcionar un soporte general a los usuarios de la infraestructura. Finalmente, la tercera está dedicada a eventos de entrenamiento y formación de los usuarios. Existen VOs por proyectos que están relacionadas con esta iniciativa (desarrollan aplicaciones haciendo uso de esta infraestructura) como es el caso del proyecto IBERGRID 3 , iniciativa de colaboración entre la NGI de Portugal y la NGI de España. En concreto, para el desarrollo de nuestros experimentos y evaluación del modelo, nos afiliamos a una de las VO (Organización Virtual) genéricas de dicho proyecto conocida como iber.vo.ibergrid.eu. Esta VO tiene asociados unos 30 CE (cantidad que, por la 1 National Network of e-Science Web Page, http://www.eciencia.es/grid.jsp. 2 Iniciativa Grid Nacional, http://www.es-ngi.es/. 3 Página Web principal del proyecto IBERGRID, http://www.ibergrid.eu/ naturaleza de la grid, puede variar en el tiempo). Esta cantidad de recursos es lo suficientemente grande como para permitir el testeo del modelo. B. Primer escenario de pruebas: Evaluando efectos de las iteraciones del modelo Este escenario fue definido para lograr determinar los efectos que el número de iteraciones del modelo tiene sobre la ejecución de la aplicación o, lo que es lo mismo, determinar el número de iteraciones necesarias para que el modelo alcance una buena reducción de los tiempos de ejecución. Para el desarrollo de este escenario, se define una baterı́a de pruebas que nos de suficiente información sobre el comportamiento del modelo. Se va a trabajar con 5 pruebas teniendo en cuenta que en ellas existe un factor común: el tamaño del espacio J se fija a 200 tareas. El número de iteraciones será distinto en cada una de las 5 pruebas; esto se consigue variando el tamaño de las Pα . Es decir, se pretende que el número de iteraciones aumente en cada prueba, con lo cual se tiene que, como puede observarse en la Tabla 1, a medida que el tamaño de las Pα disminuye, se incrementa el número de iteraciones. Esto es ası́ porque el tamaño de las Pα es inversamente proporcional a las iteraciones del modelo (a medida que los subconjuntos de tareas son más pequeños mayor cantidad de los mismos hay que lanzar). Por otro lado, una disminución del número de iteraciones puede dar como resultado una peor especialización de los recursos. Test 1 2 3 4 5 Tam. de Pα 40 20 13 10 5 Iteraciones 5 10 15 20 40 Tam. de J 200 200 200 200 200 algoritmo de búsqueda del óptimo global, de manera que al incrementar el número de iteraciones estamos implı́citamente permitiendo una búsqueda más profunda y exhaustiva. Fig. 5 Gráfica con los tiempos de ejecución resultantes tras realizar las 5 pruebas para las dos versiones de selección en este primer escenario Por otra parte, comentar que también se ha conseguido una mejora en el número de tareas finalizadas con éxito (ver figura 6), donde se ha pasado de un 73 % de éxito a un 95,6 %. Esto implica que la tasa de fallo se reduce de un 26,5 % a un 4 %. Como conclusión, se puede determinar que es muy beneficioso hacer uso de estrategias inteligentes en lo que a la selección de recursos se refiere en los entornos grid. TABLA I Valores de Pα para cada test de este escenario, ası́ como el número de iteraciones que se va a realizar en cada uno de ellos. Finalmente, se debe indicar los valores de los parámetros a y b porque, como se ha explicado anteriormente, son especificados por el usuario. Se ha decidido dar una relevancia levemente mayor al porcentaje de tareas finalizadas con éxito ǫi ya que hemos considerado que para el usuario final es importante finalizar la mayor cantidad de tareas posible. Si observamos los resultados obtenidos (Figura 5), puede apreciarse que la versión propuesta en este estudio obtiene mejores resultados, es decir, ha conseguido una reducción en los tiempos de ejecución de la aplicación en las 5 pruebas en comparación con el TRS. Igualmente, se debe notar que a medida que el número de iteraciones aumenta el modelo responde mejor. No se debe olvidar que se está aplicando un Fig. 6 Gráfica que ilustra el porcentaje de tareas finalizadas con éxito a lo largo de las pruebas del escenario para las dos versiones de selección. C. Segundo escenario de pruebas: Evaluando efectos del tamaño del espacio J En este segundo escenario el objetivo es evaluar los efectos del tamaño del espacio de tareas en el rendimiento del modelo. Para este propósito, se ha fijado el tamaño de las Pα a 10 (Tabla 2). Se fija a 10 porque, del primer escenario, se deduce que es el valor mı́nimo con el que el modelo responde bien. Como puede verse, se definen otras 6 pruebas para este escenario. El tamaño del espacio J variará en cada una de ellas para poder lograr nuestro objetivo. Test 1 2 3 4 5 6 Tam. de J 50 100 200 300 400 500 Tam. de Pα 10 10 10 10 10 10 llevado a cabo en este escenario. Iteraciones 5 10 20 30 40 50 TABLA II Valores de J del modelo para el nuevo escenario de pruebas. Se espera que a medida que el tamaño de J aumente, se pueda apreciar una mejor reducción de los tiempos de ejecución y un incremento del número de tareas finalizadas con éxito. Los resultados obtenidos se muestran en la Figura 7 y, nuevamente, la versión ERS-VNS mejora con mucho los tiempos de ejecución. Fig. 7 Gráfica con los tiempos de ejecución para este segundo escenario. Puede apreciarse nuevamente que la versión ERS-VNS obtiene mejores resultados. Se aprecia, en los resultados obtenidos, que la versión ERS-VNS para las pruebas de 50 y 100 tareas en el espacio J tiene resultados próximos a los que obtiene la selección tradicional TRS. Sin embargo, a medida que el espacio de tareas/jobs a ejecutar aumenta lo hace igualmente la distancia entre los resultados de ambas versiones, siendo cada vez mejores los resultados de nuestra propuesta (ERS-VNS). Entonces, puede intuirse además, que para aplicaciones de producción masiva el modelo obtendrá mejores resultados. Para asegurarnos, se ha obtenido también el tiempo de ejecución medio de cada tarea (Figura 8) para cada uno de los tests que se han Fig. 8 Gráfica que representa el tiempo de ejecución medio por tarea para cada uno de los seis test del escenario 2. En la figura observamos que para el caso de selección tradicional el tiempo de ejecución medio de las tareas es relativamente constante, próximo a la apariencia de una lı́nea recta. Por su parte, el ERS-VNS muestra una tendencia descendente a medida que se incrementa el espacio de tareas J. Queda evidenciado que el algoritmo no sólo realiza una selección eficiente de los recursos, sino que incluso es capaz de reducir el tiempo de ejecución medio de las tareas. Cuanto mayor es el espacio de tareas mayor es esta reducción. Se puede concluir por tanto, que el modelo cumple con los objetivos marcados en la fase de definición y que las hipótesis hechas, en base al comportamiento de éste y de la metodologı́a aplicada para la selección de los recursos, han sido asimismo demostradas. Hacer uso del modelo propuesto redunda en mejoras significativas para los usuarios grid. V. Conclusiones y trabajo futuro La selección de recursos y la naturaleza dinámica de las infraestructuras grid, son temas que cada vez están siendo más estudiados. A partir de muchas de estas investigaciones un nuevo concepto ha sido definido: aplicaciones auto-adaptativas capaces de afrontar esas condiciones cambiantes del entorno. Como se aprecia en este estudio, hemos centrado nuestra investigación en resolver el problema de selección de recursos trabajando, además, en la adaptación de las aplicaciones a estos entornos distribuidos. Este artı́culo propone una aproximación que proporciona esa capacidad auto-adaptativa a las aplicaciones aumentando su productividad. Se trata de un modelo para seleccionar de manera eficiente los recursos, considerando eficientes a aquellos que mejor se adecuan a los requisitos de la aplicación. Para conseguir esa selección inteligente se mide el fitness de todos los recursos implicados en la ejecu- ción. Hemos considerado que éste debe venir especificado por el porcentaje de tareas finalizadas con éxito y el tiempo que les lleva a los recursos completarlas. En este sentido, nos diferenciamos de otros estudios por centrarnos en resolver este problema mejorando la productividad de las infraestructuras grid para las aplicaciones. Se ha evaluado la metodologı́a propuesta mediante la implementación de una versión que utiliza un algoritmo propio del campo de la IA. Dicha versión ha sido comparada con la selección tradicional de los entornos grid. Para ello, han sido definidos dos escenarios de prueba de manera que se puedan evaluar diferentes aspectos del modelo y verificar que las intenciones especificadas en la fase de definición del mismo se han conseguido. De los resultados obtenidos se puede deducir que el utilizar nuestra estrategia inteligente para computar aplicaciones cientı́ficas proporciona, incluso, una reducción del tiempo de ejecución mientras que incrementa el número de tareas finalizadas con éxito. Otra conclusión es que el modelo puede ser asimismo utilizado como un indicador del estado de una infraestructura grid concreta. Es decir, los ficheros con las estadı́sticas que el modelo genera pueden emplearse como informes de estado. Los trabajos futuros implican una mejora del modelo mediante el estudio y aplicación de otros algoritmos o metodologı́as en busca de aquella que mejor se adapte al comportamiento de la grid. Se pretende pasar, por otra parte, de un modelo sı́ncrono a uno ası́ncrono en lo que a la gestión de las Pα se refiere. Asimismo, se debe realizar una investigación más profunda para poder considerar en el modelo otras circunstancias o elementos que puedan afectar en el rendimiento de las aplicaciones. Se tiene como objetivo añadido hacer uso de nuevos servicios y facilidades grid que redunden en una capacidad de auto-adaptación más completa y potente. Agradecimientos La investigación de Marı́a Botón-Fernández está subvencionada mediante una beca de doctorado otorgada por el Ministerio de Ciencia e Innovación a través del Centro de Investigaciones Energéticas, Medio Ambientales y Tecnológicas (CIEMAT). Los autores quieren agradecer también el soporte de los Fondos Europeos para el Desarrollo Regional (FEDER). Referencias [1] I. Foster, What is the Grid? A three Point Checklist, GRIDtoday, Vol. 1, No. 6, pp. 22-25, Julio 2002. [2] I. Foster, C. Kesselman, S. Tuecke, The anatomy of the GRID. Enabling scalable Virtual Organizations, Lecture Notes in Computer Science, Euro-Par 2001, Volume 2150/2001, pp. 1-4. [3] S. Orlando, P. Palmerini, R. Perogo, F. Silvestri, Scheduling High Performance Data Mining tasks on a data grid Environment, Lecture Notes in Computer Science, Euro-Par 2002, Volume 2400/2002, pp. 121-137. [4] C. Germain, V. Breton, P. Clarysse, Y. Gaudeau, T. Glatard, E. Jeannot, Y. Legre, C. Loomis, I. E. Magnin, J. Montagnat, J.-M. Moureaux, A. Osorio, X. Pennec, R. Texier. Grid-Enabling Medical Image Analysis, Journal of Clinical Monitoring and Computing, 19(4-5):339-349, Octubre 2005. [5] L. Robertson, LHC Computing Grid Project, https://www.gridpp.ac.uk/gridpp10/gridpp10 LCG.ppt. [6] A. YarKhan, J. J. Dongarra, Biological sequence alignment on the computational grid using the GrADS framework, Future Generation Computer Systems 2005, Volume 21, pp. 980-986. [7] N. Mladenovic and P. Hansen, Variable neighborhood search, Computers & Operations Research 1997, Volume 24, Issue 11, pp. 1097-1100. [8] P. Hansen and N. Mladenovic Variable neigborhood search: Principles and applications, European Journal of Operational Research 2001, Volume 130, Issue 3, pp. 449-467. [9] P. Hansen and N. Mladenovic, An introduction to variable neighborhood search, In S. Voss et al., editor, Metaheuristics:Advances and Trends in Local Search Paradigms for Optimization, pages 433-458. Kluwer, 1999. [10] D. Groen, S. Harftst and S.P. Zwart, On the Origin of Grid Species: The Living Application, Proceedings of the 9th International Conference on Computational Science: Part I, Springer-Verlag. pp. 205-212, 2009. [11] G. Wrzesinska, J. Maasen and H.E. Bal, Self-adaptive applications on the grid, Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 121-129, San Jose, California (USA), 2007. [12] S.S. Vadhiyar and J.J. Dongarra, Self adaptivity in Grid computing, Concurrency and Computation: Practice and Experience, 17(2-4):235-257, 2005. [13] E. Huedo, R.S. Montero and I.M Llorente, A framework for adaptive execution in grids, Software, Practice and Experience, 34(7):631-651, 2004. [14] D.M. Batista and L.S. da Fonseca, A survey of selfadaptive grids, IEEE Communications Magazine Vol. 48, Issue 7, pp. 94-100, 2010. [15] H.N. Lim Choi Keung, J.R.D. Dyson, S.A. Jarvis and G.R. Nudd, Self-adaptive and Self-Optimising Resource Monitoring for Dynamic Grid Environments, DEXA’04 Proceedings of the Database and expert Systems Applications, 15th International Workshop, pp. 689-693, Washington DC (USA), 2004.