Despliegue auto-adaptativo e inteligente de aplicaciones grid

Anuncio
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.
Descargar