Logo Studenta

Algoritmo de distribuição de réplicas em Grid de Dados

¡Este material tiene más páginas!

Vista previa del material en texto

UN ALGORITMO BASADO EN INTELIGENCIA 
COMPUTACIONAL PARA DISTRIBUCIÓN DE RÉPLICAS EN 
UN GRID DE DATOS 
 
 
 
 
 
 
 
 
 
 
 
 ING. LEONARDO FERNEY BUSTAMANTE ARCHICUE 
 
 
 
 
 
 
 
 
 
 
 
 
ESCUELA DE INGENIERIA DE SISTEMAS Y COMPUTACION 
UNIVERSIDAD DEL VALLE 
2016 
 
 
 
 
UN ALGORITMO BASADO EN INTELIGENCIA 
COMPUTACIONAL PARA DISTRIBUCIÓN DE RÉPLICAS EN 
UN GRID DE DATOS 
 
 
 
 
 ING. LEONARDO FERNEY BUSTAMANTE ARCHICUE 
 
 
 
Proyecto de grado para optar al título de MAGISTER EN 
INGENIERIA con énfasis en INGENIERIA DE SISTEMAS Y 
COMPUTACION 
 
 
 
 
 
Dirigido por: 
PH.D. JOHN ALEXANDER SANABRIA ORDOÑES 
 
 
 
 
 
 
ESCUELA DE INGENIERIA DE SISTEMAS Y COMPUTACION 
UNIVERSIDAD DEL VALLE 
2016 
 
 
 
Nota de Aceptación 
 
 
 
 
 
 
PhD. Cesar Diaz 
Jurado 
 
 
 
 
MSc. Jairo Enrique Serrano 
Jurado 
 
 
 
 
 
 
 
 
 
 
Santiago de Cali, 19 de Octubre de 2016 
 
 
 
Agradecimientos 
 
 
Quiero realmente manifestar mis más sinceros agradecimientos a muchas personas que con 
su compañía, comprensión, paciencia y conocimiento hicieron posible la culminación de este 
trabajo. 
A mi familia paterna, mi padre Fabio y mi madre María Mercedes, que me apoyaron en la 
realización de mis estudios sin pedir nada a cambio. Por su amor, comprensión y paciencia. 
Mis hermanos y sobrinos, pues ellos estaban ahí cuando necesitaba cambiar de aire y 
divertirme un poco. 
A mi familia, mi esposa Nathalia, por su amor, compañía, conocimiento y comprensión, 
también por impulsarme a seguir estudiando, pues era un proyecto que mantenía postergando. 
Mi hija Verónica, por su amor, su ternura y comprensión, por sacrificar y compartir mi 
tiempo de juegos y locuras con la realización de este proyecto, es una deuda que tengo 
contigo. Juliana has sido como una hija para mí y me has permitido ensayar mi tarea como 
padre, espero que haya sido positivo el resultado. 
A mi director, John Sanabria, gracias por sus consejos, apoyo incondicional y paciencia. Su 
experiencia y conocimiento han sido un aporte importante en la consecución de los objetivos 
propuestos en este trabajo. 
A mis compañeros de trabajo en Calipso, quienes muchas veces se leyeron y corrigieron el 
presente documento, gracias por sus consejos. A mis jefes que me dieron el espacio y tiempo 
para realización de este trabajo. 
A Talento Digital, este programa permite que nuestra mente esté ocupada en estudiar y 
aportar al país desde las TIC’s y no se encuentre ocupada pensando en endeudarse para pagar 
el semestre. Muchas gracias por su financiación y aportes. 
 
 
 
Leonardo Ferney Bustamante Archicué 
 
Resumen 
 
La replicación aporta tres importantes características en los Data Grids: disponibilidad, 
rápido acceso a los datos y bajo consumo del ancho de banda. La copia de los datos en 
múltiples ubicaciones, permite la disponibilidad, dado que la información es accesible, a 
pesar de la pérdida, el daño o faltade acceso en una de las ubicaciones. Transferir un 
archivo múltiples veces de un servidor central a un cliente puede requerir de canales de 
comunicación con un alta capacidad en su ancho de banda. En un Data Grid, el rápido 
acceso a los datos y ahorro en consumo de ancho de banda es proporcionado por las copias 
cercanas a los clientes. 
En el presente trabajo se diseñan dos algoritmos que utilizan computación inteligente para 
ubicar réplicas en un grid de datos. Por último, se implementan estos algoritmos usando un 
software para la simulación de ambientes grid como Optorsim para la evaluación de 
réplicas, revisamos su desempeño y finalmente los comparamos con otros algoritmos 
disponibles en el simulador. 
 
Keywords: Optorsim, Data Grid, simuladores, inteligencia computacional, sistemas de 
archivos distribuidos, Swarm Intelligence 
 
 
1 TABLA DE CONTENIDO 
3 Introducción .................................................................................................................. 13 
4 Motivación ..................................................................................................................... 14 
5 Objetivos ....................................................................................................................... 16 
5.1 Objetivo General .................................................................................................... 16 
5.2 Objetivos Específicos ............................................................................................. 16 
6 Bibliografía .................................................................................................................... 16 
7 Grid Computing............................................................................................................. 19 
7.1 Introducción............................................................................................................ 19 
7.2 Arquitectura del Grid .............................................................................................. 20 
7.2.1 Infraestructura................................................................................................. 21 
7.2.2 Conectividad: Comunicación fácil y segura ................................................... 21 
7.2.3 Recurso........................................................................................................... 22 
7.2.4 Recursos, La capa colectiva coordinando múltiples recursos ....................... 22 
7.2.5 Aplicaciones .................................................................................................... 23 
7.3 Computational Grid ................................................................................................ 23 
7.4 Data Grid ................................................................................................................ 24 
7.4.1 XtreemFS ........................................................................................................ 26 
7.4.2 dCache............................................................................................................ 26 
7.4.3 Gfarm .............................................................................................................. 27 
7.5 Bibliografia ............................................................................................................. 28 
8 Simuladores de Ambientes Grid .................................................................................. 30 
8.1 Introducción............................................................................................................ 30 
8.2 Microgrid ................................................................................................................ 31 
8.3 Gridsim ................................................................................................................... 31 
8.4 Simgrid ................................................................................................................... 32 
8.5 Optorsim ................................................................................................................. 33 
8.6 Gangsim ................................................................................................................. 33 
8.7 MONARC ............................................................................................................... 34 
8.8 Resumen ................................................................................................................ 35 
8.9 Bibliografia ............................................................................................................. 35 
9 Inteligencia Computacional .......................................................................................... 38 
9.1 Introducción............................................................................................................ 38 
9.2 Aprendizaje ............................................................................................................38 
9.3 Técnicas de inteligencia computacional ................................................................ 39 
9.4 Inteligencia de Enjambres ..................................................................................... 40 
9.4.1 Ant Colony Optimization (ACO) ..................................................................... 42 
9.4.2 Particle Swarm Optimization (PSO) ............................................................... 43 
9.5 Resumen ................................................................................................................ 45 
9.6 Bibliografía ............................................................................................................. 45 
10 Estado del arte.............................................................................................................. 48 
10.1 Introducción ........................................................................................................ 48 
10.2 Ubicación de Réplicas ........................................................................................ 48 
10.3 Reemplazo de Réplicas ..................................................................................... 51 
10.4 Selección de Réplicas ........................................................................................ 52 
10.5 Globus Toolkit .................................................................................................... 53 
10.5.1 Movimiento de los datos ................................................................................. 54 
10.5.2 Réplica de Datos ............................................................................................ 54 
10.6 Resumen ............................................................................................................ 56 
10.7 Bibliografía.......................................................................................................... 57 
11 Modelo Propuesto ........................................................................................................ 61 
11.1 Introducción ........................................................................................................ 61 
11.2 Análisis del problema ......................................................................................... 62 
11.3 Características de la solución ............................................................................ 62 
11.4 Modelo propuesto............................................................................................... 64 
11.5 Resumen ............................................................................................................ 66 
11.6 Bibliografía.......................................................................................................... 66 
12 Estrategia de localización de réplicas basado en algoritmo de colonia de hormigas . 68 
12.1 Introducción ........................................................................................................ 68 
12.2 ACO para localización de réplicas en ambientes grid ....................................... 69 
12.3 Algoritmo basado en ACO ................................................................................. 70 
12.4 Resumen ............................................................................................................ 72 
12.5 Bibliografía.......................................................................................................... 72 
13 Estrategia de localización de réplicas basado en la técnica de optimización por 
enjambre de partículas ......................................................................................................... 73 
13.1 Introducción ........................................................................................................ 73 
13.2 PSO para localización de réplicas en ambientes grid ....................................... 74 
13.3 Algoritmo basado en PSO ................................................................................. 77 
13.4 Resumen ............................................................................................................ 79 
13.5 Bibliografía.......................................................................................................... 80 
14 Implementación y evaluación de los algoritmos para la distribución de réplicas 
propuestos ............................................................................................................................ 81 
14.1 Introducción ........................................................................................................ 81 
14.2 Simulador ........................................................................................................... 81 
14.3 Ambiente de simulación ..................................................................................... 84 
14.4 Métricas de evaluación ...................................................................................... 85 
14.5 Equipo de pruebas ............................................................................................. 86 
14.5.1 Hardware ........................................................................................................ 86 
14.5.2 Software .......................................................................................................... 87 
14.6 Resultados de la simulación .............................................................................. 88 
14.6.1 Last Frequently Used (LFU) ........................................................................... 88 
14.6.2 Estrategias basadas en economía ................................................................. 88 
14.6.3 Patrón de acceso secuencial ......................................................................... 89 
14.6.4 Patrón de acceso Gaussiano ......................................................................... 91 
14.6.5 Patrón de acceso Zipf..................................................................................... 92 
14.7 Conclusiones ...................................................................................................... 93 
14.8 Bibliografía.......................................................................................................... 95 
15 Apéndice A: Taxonomía de herramientas de simulación de ambientes grid. ............. 97 
15.1 Introducción ........................................................................................................ 97 
15.2 Trabajos relacionados ........................................................................................ 98 
15.3 Taxonomía........................................................................................................ 100 
15.4 Tipo de Herramienta ........................................................................................ 100 
15.4.1 Interfaz De usuario ....................................................................................... 101 
15.4.2 Tipo de GRID ................................................................................................ 101 
15.4.3 Parametrización ............................................................................................ 102 
15.4.4 Implementación ............................................................................................ 102 
15.5 Herramientas de investigación......................................................................... 102 
15.5.1 Microgrid ....................................................................................................... 102 
15.5.2 Simgrid .......................................................................................................... 103 
15.5.3 Gridsim .......................................................................................................... 104 
15.5.4 Optorsim .......................................................................................................104 
15.5.5 Gangsim........................................................................................................ 105 
15.6 Clasificación de las herramientas de simulación usando la taxonomía propuesta
 105 
15.7 Conclusiones .................................................................................................... 107 
15.8 Bibliografía........................................................................................................ 107 
 
 
2 LISTA DE FIGURAS 
 
Figura 1 Arquitectura Grid(I Foster et al., 2001) .................................................................. 20 
Figura 2 Planificación de tareas de una aplicación grid (Berstis, 2002). ............................ 24 
Figura 3 Arquitectura de Microgrid (Xia et al., 2004) ........................................................... 31 
Figura 4 Arquitectura de GridSim (Buyya & Murshed, 2002) .............................................. 32 
Figura 5 Arquitectura de componentes Simgrid (URL, n.d.) ............................................... 33 
Figura 6 Arquitectura de OptorSim (D. Cameron & Millar, 2004) ........................................ 34 
Figura 7 Usando Feromonas para la selección de la mejor ruta (Sehrawat 2013) ............ 43 
Figura 8 Globus Toolkit (R) Versión 5 (GT5) ) (URL8 2015) ............................................... 55 
Figura 9 Asociación entre el Logical File Name y réplicas en 3 diferentes sitios (Chervenak 
n.d.) ....................................................................................................................................... 55 
Figura 10 Arquitectura de OptorSim (Cameron et al. 2004) ................................................ 83 
Figura 11 Topología de red CMS - European Data Grid (Bell & Cameron 2003; Vashisht et 
al. 2014) ................................................................................................................................ 84 
Figura 12 Especificaciones técnicas plataforma de pruebas. ............................................. 87 
Figura 13 Software instalado en la plataforma de pruebas ................................................. 87 
Figura 14 Comparación el uso efectivo de la red en las estrategias variando el número de 
tareas utilizando un patrón de acceso secuencial ............................................................... 90 
Figura 15 Comparación del promedio de ejecución de tarea en las estrategias variando el 
número de tareas utilizando un patrón de acceso secuencial ............................................ 90 
Figura 16 Comparación del uso efectivo de la red en las estrategias variando el número de 
tareas y utilizando un patrón de acceso Gaussiano ............................................................ 91 
Figura 17 Comparación del tiempo promedio de la ejecución de las tareas en las estrategias 
variando el número de tareas y utilizando un patrón de acceso Gaussiano ...................... 92 
Figura 18 Comparación del uso efectivo de la red en las estrategias variando el número de 
tareas y utilizando un patrón de acceso Zipf ....................................................................... 93 
Figura 19 Comparación del tiempo promedio de ejecución de las tareas en las estrategias 
variando el número de tareas y utilizando un patrón de acceso Zipf .................................. 93 
Figura 20 Taxonomía de herramientas de investigación en ambientes grid .................... 100 
Figura 21 Arquitectura de Microgrid [11] ............................................................................ 103 
Figura 22 Arquitectura de componentes Simgrid [20] ....................................................... 103 
Figura 23 Arquitectura de GridSim [10] ............................................................................. 104 
Figura 24 Arquitectura de OptorSim [15] ........................................................................... 105 
 
 
INTRODUCCIÓN 
3 INTRODUCCIÓN 
 
Grid Computing se ha convertido en un paradigma de computación ampliamente adoptado 
en la comunidad científica debido a que provee acceso a elementos de cómputo 
geográficamente distribuidos y conectados a través de Internet. Grid computing propicia la 
consolidación de organizaciones virtuales bajo las cuales los investigadores de diferentes 
áreas del conocimiento pueden ejecutar modelos y simulaciones que generan o necesitan 
de una gran cantidad de datos; estos datos deben ser almacenados y posteriormente 
procesarse (Sato & Matsuoka 2007). Algunas áreas de investigación como bioinformática, 
física y astronomía generan estos altos volúmenes de datos (del orden de los petabytes) 
en poco tiempo y requieren ser procesados de forma inmediata. Se necesita, entonces, un 
servicio de administración de almacenamiento para esta cantidad de datos. Este servicio 
es proporcionado por una arquitectura especial de Grid Computing llamada Data Grid. 
Un Data Grid es una arquitectura enfocada en proporcionar servicios especializados para 
manejar clústeres de datos distribuidos y heterogéneos (Brezany et al. 2006). Una 
arquitectura Data Grid es desarrollada para permitir el intercambio de datos entre 
organizaciones virtuales ubicadas en lugares geográficamente dispersos. Este intercambio 
puede ser complejo sin el uso de componentes que permitan el acceso fácil y rápido a los 
datos, la replicación es uno de los componentes que facilita el acceso de los usuarios o 
aplicaciones a los datos, localizando copias cercanas (Rahman et al. 2007). Uno de los 
retos importantes de investigación en Data Grids es la administración de la réplica de los 
datos. 
La replicación es la creación y administración de copias de archivos en un sistema de 
almacenamiento determinado (Brezany et al. 2006). La replicación aporta tres importantes 
características en los Data Grids: disponibilidad, rápido acceso a los datos y bajo consumo 
del ancho de banda. La copia de los datos en múltiples ubicaciones, permite la 
disponibilidad, dado que la información es accesible, a pesar de la pérdida, el daño o falta 
de acceso en una de las ubicaciones. Transferir un archivo múltiples veces de un servidor 
central a un cliente puede requerir de canales de comunicación con un alta capacidad en 
su ancho de banda. En un Data Grid, el rápido acceso a los datos y ahorro en consumo de 
ancho de banda es proporcionado por las copias cercanas a los clientes. 
Los nodos tienen un espacio limitado de almacenamiento, y por esto no es posible hacer 
réplicas de todos los archivos que se encuentran en el Data grid. Además, el ancho de 
banda limita la capacidad para transferirlos. Un Data grid debe tener un sistema de 
administración de réplicas, que administre los archivos de datos en un ambiente grid con el 
objetivo de optimizar su desempeño. La presente propuesta tiene como objeto diseñar un 
algoritmo que utilice computación inteligente para ubicar réplicas en una malla de datos. 
Por último, se pretende implementar este algoritmo y, usando un software para la 
simulación de ambientes grid, como Optorsim, para la evaluación de réplicas (Bell & 
Cameron 2003), revisar su desempeño. 
4 MOTIVACIÓN 
Un Grid es un conjunto de computadores heterogéneos dispersos geográficamente pero 
interconectados a través de redes heterogéneas de datos que orquestados ofrecen 
servicios no triviales de computación (Foster et al. 2001). Grid Computing permite el acceso 
fácil y a bajo costo, a sistemas de computación de última tecnología a investigadores. 
Frecuentemente, los investigadores en diversas áreas como bioinformática, astronomía, 
genética, entre otras, necesitan ejecutar sus aplicaciones en ambientes 
computacionalmente complejo y con altos niveles de almacenamiento y procesamiento. 
Estas áreas generan gran cantidad de información debido a la avanzada precisión de sus 
sensores. 
La información es clave en el mundo moderno,donde encontramos términos acuñados y 
bastante populares como Big Data. Actualmente la información es producida en cada tarea 
que realizamos a diario, tales como, procesamiento digital, intercambios en las redes 
sociales, recopilados por miles de sistemas, sensores y dispositivos móviles (Bajaber et al. 
2016). Los datos obtenidos crecen a gran velocidad, volumen y variedad. Según IBM 
estamos produciendo 2.5 quintillones de bytes de datos a diario (IBM 2016; Zikopoulos et 
al. 2015). Por ejemplo, un carro eléctrico genera 25GB de información en una hora mientras 
está cargando (Zikopoulos et al. 2015). Otro ejemplo es el juego popular de Zynga “Farm 
Ville”, Zynga obtiene aproximadamente 25TB de datos diariamente, y la compañía diseña 
iteraciones de juego, basadas en esas interacciones. Desde hace unos cuantos años se 
crea un usuario cada 3 segundos en Facebook, ahora estos usuarios más de 3.5 billones 
de posts y cerca de 155 millones de reacciones diariamente, los que representan varios 
terabytes de datos. Uno de los proyectos que genera más cantidad de datos sobre la tierra 
es el acelerador de partículas LHC (Large Hadron Collider) operado por la Organización 
Europea para la investigación nuclear (CERN), entre las muchas hipótesis que los físicos 
de partículas investigan es el origen del universo y replicar las condiciones de la teoría del 
Big Bang. Cuando el acelerador de partículas está en operación genera un volumen alto de 
datos, del orden de los PetaBytes. 
De esta manera se hace necesario encontrar herramientas para el almacenamiento de 
datos que no solamente brinden las opciones de guardar y recuperar la información, si no 
que también proporciona un medio confiable, manejable, escalable y almacenamiento 
distribuido de alto rendimiento. Al utilizar un sistema de almacenamiento distribuido se 
cumple el requerimiento de escalabilidad, agregando un sistema de réplicas a este sistema, 
podemos obtener un sistema confiable. Cuando optimizamos la gestión de réplicas 
obtenemos un sistema de almacenamiento distribuido de alto rendimiento, en esta trabajo 
nos enfocaremos en eje y de alguna manera optimizar los tiempos de acceso a los archivos 
que se encuentran en el grid. La manejabilidad depende de la semántica pero este punto 
no se abordará en el presente trabajo. 
Estos datos necesitan ser accedidos desde los nodos de cómputo que se encuentran 
lugares dispersos conectados por una red de área amplia. Un sistema de archivos 
distribuido de área amplia permite el acceso en este tipo de ambientes. Estos sistemas de 
archivos deben considerar la semántica, seguridad, tolerancia a fallos y velocidad de 
acceso a estos archivos. 
Un Data Grid es una arquitectura que provee estos sistemas de archivos, proporciona el 
servicio de acceso a datos y a metadatos. Existen múltiples componentes en los niveles 
altos de una arquitectura de un Data Grid, tales como la administración de réplicas. La 
administración de réplicas es uno de los retos importantes en investigación en un Data Grid. 
La replicación es la creación y administración de copias de archivos en un sistema de 
almacenamiento (Brezany et al. 2006). 
Las preguntas que nos surgen en este trabajo y que vamos a revisar son las siguientes: 
¿Cuáles son las técnicas clásicas utilizadas para llevar a cabo el proceso de réplica en Data 
Grid? ¿Se pueden incorporar técnicas de inteligencia computacional de modo que se lleve 
a cabo una gestión eficiente de las réplicas en estos ambientes de almacenamiento a gran 
escala? 
5 OBJETIVOS 
5.1 OBJETIVO GENERAL 
Diseñar, implementar y evaluar un algoritmo usando técnicas de computación inteligente 
para optimizar la ubicación de réplicas en un Grid de almacenamiento. 
5.2 OBJETIVOS ESPECÍFICOS 
 Obtener un estado del arte de las aproximaciones usadas para el almacenamiento 
de datos en ambientes grid. 
 Ponderar y seleccionar una técnica de computación inteligente compatible con el 
contexto de almacenamiento en los grid de datos. 
 Proponer y evaluar un algoritmo basado en inteligencia computacional para la 
ubicación de réplicas en grid de datos. 
 
6 BIBLIOGRAFÍA 
Bajaber, F. et al., 2016. Big Data 2.0 Processing Systems: Taxonomy and Open Challenges. 
Journal of Grid Computing, pp.379–405. Available at: 
http://link.springer.com/10.1007/s10723-016-9371-1. 
Bell, W. & Cameron, D., 2003. Optorsim: A grid simulator for studying dynamic data 
replication strategies. … Journal of High …, pp.1–20. Available at: 
http://hpc.sagepub.com/content/17/4/403.short [Accessed June 4, 2013]. 
Brezany, P., Woehrer, a. & Tjoa, a. M., 2006. The Grid: vision, technology development 
and applications. e & i Elektrotechnik und Informationstechnik, 123(6), pp.251–258. 
Available at: http://link.springer.com/10.1007/s00502-006-0344-0 [Accessed June 3, 
2013]. 
Foster, I., Kesselman, C. & Tuecke, S., 2001. The anatomy of the grid: Enabling scalable 
virtual organizations. International journal of high …. Available at: 
http://dl.acm.org/citation.cfm?id=1080667 [Accessed September 14, 2013]. 
IBM, 2016. What is Big Data? 
Rahman, R.M., Barker, K. & Alhajj, R., 2007. Replica Placement Strategies in Data Grid. 
Journal of Grid Computing, 6(1), pp.103–123. Available at: 
http://link.springer.com/10.1007/s10723-007-9090-8 [Accessed June 2, 2013]. 
Sato, H. & Matsuoka, S., 2007. Data Management on Grid Filesystem for Data-Intensive 
Computing. Proceedings of the 2007 International Symposium on Applications and the 
Internet Workshops (SAINTW’07). 
Zikopoulos, P. et al., 2015. Big Data Beyond the Hype, 
 
 
 
 
 
 
 
Parte II 
Marco conceptual 
 
Este marco conceptual pretende acercar al lector a algunos conceptos relevantes en 
ambientes grid, en el uso de herramientas de simulación y en los algoritmos revisados para 
la solución propuesta en el presente documento. Esta parte del trabajo de grado la 
componen tres capítulos, divididos así: en el primer capítulo se revisarán conceptos claves 
de grid computing, su arquitectura y dos tipos de grid, computation grid y data grid. El 
segundo capítulo nos muestra la importancia y necesidad de herramientas de simulación 
para ambientes grid, se muestra una vista general y se exponen algunas herramientas. En 
el último capítulo de este marco conceptual revisamos la inteligencia computacional y que 
aportes pueden proporcionar al presente trabajo; exponemos tres algoritmos de inteligencia 
computacional que han sido usados en trabajos parecidos y que pueden aportar a la 
solución del problema de ubicación de réplicas en sistemas distribuidos para grid. 
 
7 GRID COMPUTING 
7.1 INTRODUCCIÓN 
Grid Computing es una tecnología innovadora de sistemas distribuidos, una rama de la 
computación de alto desempeño donde los centros de supercomputadores, clústeres y los 
recursos distribuidos tradicionales son integrados en una infraestructura de hardware y 
software. A un alto nivel, esta idea propone que el poder de cómputo y la capacidad de 
almacenamiento puedan ser accesibles y profesionalmente administrados, como el agua o 
la energía eléctrica. A diferencia de los sistemas distribuidos convencionales, las máquinas 
pueden estar en sitios dispersos, controladas por diversas instituciones. Grid Computing 
permite compartir recursos (almacenamiento, cómputo, memoria, entre otras) de manera 
coordinada sin un control centralizado. Grid Computing es un sistema que integra varias 
tecnologías, clustering, web services, arquitectura orientada al servicio, utility computing 
entre otras, para resolver algunas tareas complejas que pueden ser desde estudio de 
mercados, atención de emergencias hasta investigaciones científicas como predicción de 
terremotos, tsunamis, simuladores de física de alta energía y bioinformática. 
En (Ian Foster, 2002) Ian Foster propone una lista de tres características para determinar 
si un sistema distribuido es ungrid. La primera es “coordinar recursos que no están sujetos 
a un control central”, recursos que se encuentren en diferentes dominios, pueden ser 
unidades dentro de la misma compañía o compañías diferentes que administren sus 
políticas, seguridad, membresía y pago de manera independiente. Sin embargo un clúster 
de computadores conectados en una red de área local puede ser un recurso importante de 
un grid pero este sistema no será un grid. 
La segunda es “usando un protocolos e interfaces estándar, abiertas y de propósito 
general”, protocolos e interfaces para autenticación, autorización, búsqueda y acceso a 
recursos deben ser no sólo abiertos y de propósito general, si no también estándar. Los 
estándares nos permiten establecer acuerdos dinámicamente entre cualquier parte 
interesada y construir sistemas distribuidos compatibles e interoperables. 
La tercera es “entregar calidades de servicio no triviales”, un sistema grid debe permitir 
coordinar sus recursos para ofrecer diferentes calidades de servicio en tiempos de 
respuesta, desempeño, disponibilidad y seguridad para satisfaces las demandas del 
usuario, de manera que la utilidad del sistema combinado es significativamente mayor que 
el de la suma de sus partes 
Aunque un grid puede estar dedicado a una operación, a menudo son usadas para una 
amplia variedad de problemas. Para permitir el uso en múltiples tareas un sistema grid 
puede enfocarse en el servicio de computación que permite el uso de sistema para ejecutar 
tareas complejas, llamados generalmente Computational Grid. O también puede enfocarse 
en el almacenamiento de datos en gran escala llamados Data Grid o una combinación de 
las dos (URL3, 2012)(Thain, 2004). En la siguiente sección realizamos una revisión general 
de la arquitectura Grid, en la tercera sección hacemos una vista general de Computational 
Grid y en la cuarta sección revisamos las características de un Data Grid. 
7.2 ARQUITECTURA DEL GRID 
Debido a la gran cantidad de componentes heterogéneos, es necesaria una arquitectura 
abierta que permita cumplir con los requerimientos de las organizaciones virtuales. La 
arquitectura presentada en (I Foster, Kesselman, & Tuecke, 2001)Los componentes en 
cada nivel comparten características comunes pero pueden ser construidos sobre 
capacidades y comportamientos proporcionados por cualquier nivel inferior (Figura 1). 
 
 
Figura 1 Arquitectura Grid(I Foster et al., 2001) 
 
7.2.1 Infraestructura 
La capa de grid Infraestructura proporciona los recursos que se comparten en el grid por 
ejemplo, los recursos computacionales, sistemas de almacenamiento, catálogos, recursos 
de red, y sensores. Un "recurso" puede ser una entidad lógica, como un sistema distribuido 
de archivos, clúster de computadores, o un conjunto de sistemas distribuidos; En tales 
casos, una implementación de recursos puede implicar protocolos internos. Una breve lista 
de recursos es como sigue: 
 Computacionales 
 Almacenamiento 
 Comunicaciones 
 Software y licencias 
 Equipo especial, arquitecturas, capacidades y políticas 
7.2.2 Conectividad: Comunicación fácil y segura 
La capa de conectividad define protocolos de comunicación y autenticación básicas 
requeridas para las transacciones de red a red específicos. Los protocolos de comunicación 
permiten el intercambio de datos entre los recursos de la capa de tela. Los protocolos de 
autenticación se basan en servicios de comunicación para proporcionar mecanismos 
criptográficamente seguros para verificar la identidad de usuarios y recursos. Los protocolos 
de comunicación requeridos pueden ser encontrados en la pila de protocolos TCP/IP son 
nombres (DNS), transporte (TCP, UDP) y enrutamiento (IP) y otros protocolos que se 
pueden encontrar en. 
En el problema de seguridad, como en el de comunicación, muchos estándares de 
seguridad desarrollados dentro del contexto del protocolo IP son aplicables. 
 Single sign-on: El usuario se debe autenticar sólo una vez y poder tener acceso a 
las herramientas presentes en el grid 
 Delegación: El usuario puede ejecutar una aplicación y delegarle sus permisos, de 
esta manera la aplicación tendrá acceso a los mismos recursos del usuario. 
 Integración con varias soluciones de seguridad locales: Debe permitir mapear las 
políticas y permisos en el grid y las asignadas por el sistema local. 
 Relaciones de confianza basada en el usuario: No se debe requerir la interacción 
entre sistemas para identificar si el usuario tiene los privilegios. Por ejemplo, si un 
usuario tiene derecho a utilizar los sitios A y B, el usuario debe ser capaz de utilizar 
los sitios A y B juntos sin necesidad de que los administradores de seguridad de A 
y B interactúan. 
7.2.3 Recurso 
Luego que se ha verificado la identidad del usuario es necesario proveer los mecanismos 
de acceso al recurso (Ian Foster & Kesselman, 2003). Son necesarios protocolos para 
negociación segura, iniciación, monitoreo, control, contabilidad y pago de compartir los 
recursos individuales. 
Encontramos dos clases de protocolos: 
 Protocolos de información se utilizan para obtener información acerca de la 
estructura y el estado de un recurso, por ejemplo, su configuración, la carga actual, 
y la política de uso. 
 Protocolos de administración se utilizan para negociar el acceso a un recurso 
compartido, especificando, por ejemplo, los requerimientos de recursos (incluyendo 
avanzado de reservas y la calidad de servicio) y la operación (s) a realizar, tales 
como la creación de procesos o de acceso a datos. 
7.2.4 Recursos, La capa colectiva coordinando múltiples recursos 
Es necesario proveer los mecanismos para interactuar con las colecciones de recursos (Ian 
Foster & Kesselman, 2003). Los servicios incluidos en esta capa no añaden requerimientos 
a los recursos individuales, algunos de ellos son: 
 Servicios de directorio: permiten a los participantes VO para descubrir la existencia 
y / o propiedades de los recursos VO. 
 Servicios de Co-asignación, programación e intermediación: permiten a los 
participantes de la VO solicitar la asignación de uno o más recursos para propósitos 
específicos y la programación de las tareas de los recursos apropiados. 
 Servicios de monitoreo y diagnóstico: apoyan el monitoreo de los recursos de la VO 
por fallos, ataque de hackers ("detección de intrusos"), sobrecarga, y así 
sucesivamente. 
 Servicios de réplica de datos: apoyan la gestión de los recursos de almacenamiento 
de la VO para maximizar el rendimiento de acceso a datos con respecto a los 
indicadores como el tiempo de respuesta, fiabilidad y coste. 
7.2.5 Aplicaciones 
Esta es la última capa de la arquitectura mostrada en (I Foster et al., 2001; Ian Foster & 
Kesselman, 2003), en esta capa se encuentran las aplicaciones que operan dentro del 
ambiente Grid. Las aplicaciones pueden usar protocolos, APIs o servicios de cualquier nivel 
inferior, como: administración de recursos, acceso a datos, búsqueda de servicios, entre 
otros. Aunque esta capa es llamada aplicaciones puede en la práctica contener algunos 
frameworks sofisticados. Estos frameworks pueden también definir los protocolos, servicios 
y / o APIs, por ejemplo, los frameworks de orquestación de servicios Web. 
7.3 COMPUTATIONAL GRID 
El recurso más utilizado son los ciclos de cómputo proporcionado por los procesadores de 
las máquinas en la red. Los procesadores pueden variar en velocidad, la arquitectura, la 
plataforma de software, y otros factores asociados, como la memoria, almacenamiento y 
conectividad. Hay tres formas principales para explotar los recursos de computación en un 
Grid (Berstis, 2002). La primera y más sencilla es utilizarlo para ejecutar una aplicación 
existente en una máquina disponible en la red en lugar de a nivel local. La segunda es 
utilizar una aplicación diseñada para dividir su labor de una manera tal que las partes 
separadaspueden ejecutar en paralelo en diferentes procesadores. El tercero es ejecutar 
una aplicación que necesita ser ejecutada muchas veces en muchas máquinas diferentes 
en la red. 
Computational Grid, también llamado compute grid (en español grid de cómputo) nos 
permiten realizar cálculos, un cálculo es tratado como una tarea que opcionalmente 
podemos dividirlos en varias subtareas, y ejecutarlas en diferentes nodos de la red en 
paralelo (“Compute Grids vs. Data Grids - DZone Java,” n.d.). El beneficio claro es que 
nuestro cálculo se realice más rápido, ya que ahora puede utilizar los recursos de los nodos 
de la red al tiempo. Uno de los patrones de diseño más comunes para la ejecución en 
paralelo es MapReduce. Sin embargo, los grids de cómputo son útiles incluso si no tenemos 
que dividir el cálculo, dado que nos ayudan a mejorar la escalabilidad global y la tolerancia 
a fallos del sistema mediante la descarga de los cálculos en la mayoría de los nodos 
disponibles. 
 
Figura 2 Planificación de tareas de una aplicación grid (Berstis, 2002). 
 
Algunas tareas pueden calcular algo, ejecutar uno o más comandos del sistema, mover o 
recoger datos, o manejar maquinaria. Una aplicación de grid organizada como un conjunto 
tareas es generalmente diseñada para que estas tareas se ejecuten en paralelo en 
diferentes máquinas en la red (Berstis, 2002). Los trabajos pueden tener dependencias 
específicas que pueden impedir que se ejecuten en paralelo en todos los casos. Por 
ejemplo, Algunas tareas pueden requerir la salida producida por otras tareas y no pueden 
ser ejecutadas hasta que esas tareas hayan terminado de ejecutarse. Este flujo de trabajo 
puede crear una jerarquía tareas y subtareas. Por último, los resultados de todas las tareas 
deben ser recogidos y debidamente ensamblados para producir la respuesta definitiva para 
la aplicación. 
7.4 DATA GRID 
El segundo recurso más común que se utiliza en un grid es el almacenamiento de datos. 
Un grid que proporciona una visión integrada de almacenamiento de datos a veces se llama 
una "data grid." Un Data Grid es una arquitectura particular de Grid enfocada en 
proporcionar servicios especializados para administrar gran cantidad de datos (Rahman et 
al., 2007). Esta arquitectura provee sistemas de archivos distribuidos en ambientes 
heterogéneos y geográficamente distribuidos. Cada nodo en el grid por lo general 
proporciona una cierta cantidad de almacenamiento para uso del grid, aunque temporal. El 
almacenamiento puede ser memoria o almacenamiento secundario usando discos duros u 
otro dispositivo de almacenamiento permanente. La memoria permite acceso rápido pero 
volátil, puede ser usada como caché de las aplicaciones que se están ejecutando. 
El almacenamiento secundario en un data grid debe aumentar espacio, desempeño, 
confiabilidad de los datos. Existen múltiples componentes en los niveles altos de una 
arquitectura de un Data Grid que permiten proveer estas características, tales como el 
manejo de réplicas. Uno de los retos importantes de investigación en data grids es la réplica 
de los datos. La replicación es la creación y administración de copias de archivos en el 
sistema de almacenamiento especificado (Brezany, Woehrer, & Tjoa, 2006). 
La meta de los sistemas de archivos para grid es proporcionar un desempeño razonable de 
operaciones de entrada y salida para aplicaciones data-intensive en área amplia. Estos 
sistemas usan los metadatos y los datos de los archivos en servicios separados, de esta 
manera permitir y explotar el acceso paralelo a los datos. La mayoría de sistemas de 
archivos modernos usan almacenamiento basado en objetos en lugar del basado en 
bloques, para reducir el costo de administración de metadatos y mejorar el desempeño del 
acceso a los datos (Tatebe, Hiraga, & Soda, 2010). 
Los principales componentes de un sistema de archivos para grid son: administrador de 
metadatos, servidores de datos y los clientes(Tatebe et al., 2010). En xtreemfs los 
componentes son: catálogo de réplicas y metadatos (MRC), servidor de almacenamiento 
de objetos (OSD), el servicio de directorio (DIR) y los clientes (Hupfeld et al., 2008). El 
componente de metadatos es el encargado de administrar los datos sobre el archivo, el 
número de inodos u objetos, entradas de directorio y ubicación de las réplicas. 
La réplica de datos es una excelente técnica para ubicar los datos más cerca de los clientes. 
La replicación es usada para disminuir la latencia de la red y el consumo del ancho de 
banda. También mejora la disponibilidad debido a las múltiples copias de los datos. La 
creación y la selección de réplicas son los retos más importantes en el desarrollo de un 
Data Grid. Algunos de los sistemas de archivos usados en Data Grid son: 
7.4.1 XtreemFS 
XtreemFS es un sistema de archivos distribuido y replicado para el uso en Cloud 
(XtreemFS, 2012). XtreemFS ha sido diseñado para el uso en redes de área amplia (WAN), 
permite autenticación y el uso de SSL. XtreemFS también permite la configuración para el 
particionamiento de los archivos (distribuido). Una desventaja de este sistema de archivos 
es que el sistema es administrado por un solo servidor, el cual puede ser un cuello de botella 
o un punto único de fallo (Hupfeld et al., 2008) . 
Al igual que otros sistemas de archivos basados en objetos, XtreemFS consiste de 
clientes, Dispositivos de Almacenamiento de Objetos (OSD) y servidores de metadatos 
llamado Catálogo de Metadatos y Replica (MRC). Adicionalmente a estos 3 componentes, 
un servicio de directorio actúa como registro para servidores y volúmenes del sistema de 
archivos (Hupfeld et al., 2008). 
Un XtreemFS MRC aloja múltiples volúmenes y actúa como un servidor de metadatos para 
los clientes que monten y accedan uno de sus volúmenes. Un MRC almacena toda la 
información acerca de los volúmenes alojados en una base de datos embebida, la cual tiene 
un mecanismo para replicar sus datos a otros hosts (Hupfeld et al., 2008). El servicio de 
directorio de XtreemFS conecta todos los componentes del sistema de archivos. El servicio 
de directorio permite a los clientes localizar los MRCs que son responsables por un cierto 
volumen, registra los servidores y les permite intercambiar información dinámica (Hupfeld 
et al., 2008). XtreemFS OSDs proporciona a los clientes con acceso rápido a los objetos 
que ellos almacenan. OSDs son responsables por el almacenamiento actual sobre sus 
discos. La lógica del OSD es dedicada a asegurar la consistencia de las réplicas de los 
archivos (Hupfeld et al., 2008). Xtreemfs permite la administración de la localización de las 
réplicas al usuario, el usuario decide donde ubicar sus réplicas y que tipo de réplica realizar. 
Permite usar dos tipos de réplicas de sólo lectura y de lectura y escritura. Las réplicas de 
sólo lectura son más fáciles de administrar, debido a su condición. XtreemFS también ha 
incorporado la posibilidad de usar un software de terceros, Vivaldi (XtreemFS, 2012) 
(Dabek, Cox, Kaashoek, & Morris, 2004), para administrar la selección de las réplicas. 
7.4.2 dCache 
dCache es un administrador de archivos jerárquicos diseñado para optimizar el uso 
del espacio en caché de disco para la carga que implica mover grandes cantidades de 
datos entre cintas y aplicaciones que se encuentran ejecutándose (Thain, 2004). dCache 
es un sistema que proporciona la distribuidor de espacios de nombres de archivo y un 
administrador de espacios de datos. dCache es hábil para coordinar una gran cantidad de 
nodos. Este sistema tiene la capacidad de ejecutarse sin un sistema de archivos, o con un 
número arbitrario de instancias y/o clases de sistemas de archivos. dCache provee un 
protocolo de acceso privado llamado dCap (Fuhrmann, 2004)(Ernst, Fuhrmann, Gasthuber, 
Mkrtchyan, & Waldman, 2001). Otra de sus características es que separa los datos de los 
metadatos,almacena los metadatos en una base de datos PostgreSQL. 
El sistema es capaz de detectar donde se encuentran los datos y, si es requerido, distribuir 
los conjuntos de datos más usados entre los múltiples nodos. Esta característica permite 
que la réplica de los archivos pueda estar en varios nodos. Uno de los aspectos claves en 
dcache es que la localización y número de réplicas en dCache., es determinado de forma 
autónoma por el sistema (Höfling, 2008). Este sistema de réplica es basada en el archivo 
de configuración, la carga del sistema y el espacio en disco. Un archivo puede estar 
replicado en al menos N nodos, pero no más de M. dCache implementa un administrador 
de pools, encargado de realizar las réplicas y evitar la sobrecarga de los pools(Fuhrmann, 
2004). 
7.4.3 Gfarm 
Gfarm es un sistema de archivos distribuido para compartir información y soportar la 
computación data-intensive distribuida. Gfarm usa los sistemas de archivos locales en un 
nodo de cómputo para maximizar el ancho de banda de E/S de un archivo 
distribuido, también permite almacenar varias réplicas de un archivo para disminuir el uso 
del ancho de banda. Gfarm es diseñado para compartir archivos entre múltiples dominios 
administrativos y soportar análisis de datos distribuidos en una WAN. No es simplemente 
compartir archivos, también es necesario proporcionar un desempeño aceptable para 
aplicaciones data-intensive (Tatebe et al., 2010). 
El sistema de archivos Gfarm consiste de un servidor de metadatos (MDS), servidores 
E/S (nodos del sistema de archivos) y clientes. El MDS administra los metadatos del 
sistema de archivos, el estado del archivo y de los nodos del sistema, la información de la 
membresía del grupo y cuentas de usuario globales. Los servidores de E/S proporcionan el 
acceso del archivo a un sistema de archivos locales. El cliente se conecta directamente al 
servidor E/S cuando está accediendo a los datos del archivo (Tatebe et al., 2010). 
7.5 BIBLIOGRAFIA 
Berstis, V. (2002). Fundamentals of grid computing. IBM Redbooks Paper, 1–28. Retrieved 
from 
http://scholar.google.com/scholar?hl=en&btnG=Search&q=intitle:Fundamentals+of+Grid+
Computing#0 
Brezany, P., Woehrer, a., & Tjoa, a. M. (2006). The Grid: vision, technology development 
and applications. E & I Elektrotechnik Und Informationstechnik, 123(6), 251–258. 
http://doi.org/10.1007/s00502-006-0344-0 
Compute Grids vs. Data Grids - DZone Java. (n.d.). Retrieved September 18, 2015, from 
https://dzone.com/articles/compute-grids-vs-data-grids 
Dabek, F., Cox, R., Kaashoek, F., & Morris, R. (2004). Vivaldi: A decentralized network 
coordinate system. ACM SIGCOMM Computer …. Retrieved from 
http://dl.acm.org/citation.cfm?id=1015471 
Ernst, M., Fuhrmann, P., Gasthuber, M., Mkrtchyan, T., & Waldman, C. (2001). dCache, a 
distributed storage data caching system. Proceedings of Computing in High Energy 
Physics. 
Foster, I. (2002). What is the Grid ? A Three Point Checklist. GRID Today, 1, 32–36. 
http://doi.org/10.1103/PhysRevE.66.031916 
Foster, I., & Kesselman, C. (2003). Concepts and Architecture. In The Grid 2: Blueprint for 
a New Computing Infrastructure (pp. 37–63). 
Foster, I., Kesselman, C., & Tuecke, S. (2001). The anatomy of the grid: Enabling scalable 
virtual organizations. International Journal of High …. Retrieved from 
http://dl.acm.org/citation.cfm?id=1080667 
Fuhrmann, P. (2004). dCache, the Overview. White Paper, 1–6. Retrieved from 
http://scholar.google.com/scholar?hl=en&btnG=Search&q=intitle:dCache+,+the+Overview
#0 
Höfling, M. (2008). On Data Placement Issues in Grid Computing Environments, 
(November). Retrieved from 
http://www8.cs.umu.se/education/examina/Rapporter/MichaelHoflingMT.pdf 
Hupfeld, F., Cortes, T., Focht, E., Hess, M., Malo, J., Marti, J., & Cesario, E. (2008). The 
XtreemFS architecture — a case for object-based file, (March), 2049–2060. 
http://doi.org/10.1002/cpe 
Tatebe, O., Hiraga, K., & Soda, N. (2010). Gfarm Grid File System. New Generation 
Computing, 28(3), 257–275. http://doi.org/10.1007/s00354-009-0089-5 
Thain, D. (2004). Coordinating Access to Computation and Data in Distributed Systems. 
University of Wiscosin - Madison. Retrieved from 
http://pages.cs.wisc.edu/~thain/library/thain-dissertation.pdf 
URL3. (2012). Computación Grid. Retrieved January 1, 2012, from 
http://es.wikipedia.org/wiki/Computación_grid 
XtreemFS. (2012). XtreemFS, a cloud filesystem. Retrieved from http://www.xtreemfs.org 
 
 
8 SIMULADORES DE AMBIENTES GRID 
8.1 INTRODUCCIÓN 
El diseño de sistemas que soporten la computación grid es una tarea compleja que involucra 
varios problemas, tales como: administración de recursos, desempeño de la red, seguridad, 
heterogeneidad, tolerancia a fallos, adaptabilidad, escalabilidad, concurrencia y 
transparencia. Realizar una investigación en un ambiente grid real es complejo, dado que 
inicialmente se requiere configurar y mantener dicho sistema y luego es necesario realizar 
las pruebas en múltiples ambientes grid (Dumitrescu & Foster, 2005). Además, en un 
ambiente real, evaluar un nuevo sistema es difícil por múltiples razones, inicialmente una 
evaluación en sistema real puede consumir demasiado tiempo; también los nodos y 
dispositivos son heterogéneos y existen múltiples variables no controladas dentro del 
sistema que impiden que un experimento sea repetible. Debido a esto, la mayoría de las 
investigaciones en sistemas distribuidos son realizadas usando herramientas de 
simulación. 
La simulación ha sido investigada y aplicada exitosamente en varios procesos, objetos y 
aplicaciones del mundo real. Proporciona la evaluación de múltiples problemas, tales como 
la factibilidad, el comportamiento y el desempeño sin la necesidad de construir un sistema 
real, de esta manera se puede ahorrar en tiempo y costos (Sulistio, Yeo, & Buyya, 2004). 
La creación de un modelo de simulación puede ser una tarea tan compleja como crear el 
sistema mismo, dado que los investigadores, muchas veces, no son expertos 
programadores, lo que les impide crear un nuevo programa que permita simular un 
ambiente para su proyecto. Sin embargo, existen diversas herramientas de simulación, 
estas herramientas permiten a los investigadores la posibilidad de evaluar sus teorías en 
múltiples ambientes y compararlas con otras teorías existentes. De esta manera, el 
investigador se enfoca en el diseño e implementación de la teoría escogida (Dumitrescu & 
Foster, 2005). Cada herramienta de simulación requiere un nivel de conocimiento menor 
que construir una aplicación que provea las características mencionadas. 
Como objetivo de esta tesis se planteó una taxonomía de las herramientas de simulación 
de ambientes grid, se realiza una revisión de algunas de ellas que son comúnmente 
utilizadas por la comunidad científica y se clasifican utilizando la taxonomía propuesta, para 
una mejor referencia revisar el anexo a este documento. En las siguientes secciones 
revisamos las herramientas con mayor cantidad de citas en artículos indexados, Microgrid 
(Xia, Dail, Casanova, & Chien, 2004), GridSim (Buyya & Murshed, 2002), SimGrid 
(Casanova, Legrand, & Quinson, 2008), OptorSim (D. Cameron & Millar, 2004; URL, 2013) 
y Gangsim(Dumitrescu & Foster, 2005) . 
8.2 MICROGRID 
Microgrid (Xia et al., 2004) provee un infraestructura grid virtual que permite la 
experimentación científica con técnicas de administración de recursos dinámicas y 
aplicaciones adaptativas para soportar experimentos controlados y repetitivos. Microgrid 
ha sido diseñado para emular grids Globus. Microgrid es diseñado para soportar ambientes 
de software grid reales (Quetier & Cappello, 2005). 
Microgrid permite a los investigadores ejecutar sus aplicaciones en un ambiente grid virtual. 
Este ambiente presenta a la aplicación una vista de servicios de información y recursos 
virtuales. Estos recursos se ejecutan sobre losrecursos físicos y MicroGrid puede explotar 
recursos heterogéneos u homogéneos (Figura 2). 
 
Figura 3 Arquitectura de Microgrid (Xia et al., 2004) 
8.3 GRIDSIM 
GridSim(Buyya & Murshed, 2002) (URL, 2015) permite el modelado y simulación de 
entidades, como usuarios del sistema, aplicaciones, recursos y planificadores, en 
computación en paralelo y distribuida, para el diseño y evaluación de algoritmos de 
planificación. Cada usuario se caracteriza por: tipo de trabajo (tiempo de ejecución, el 
número de la replicación paramétrico, etc.), la estrategia de optimización de la 
programación, la tasa de actividad, la zona horaria, fecha límite y presupuesto. Los recursos 
se describen con número de procesadores, el costo de procesamiento, rendimiento, política 
de planificación interna, carga de trabajo, la zona horaria. GridSim no diferencia entre tareas 
y datos. Gridsim está implementado en Java y usa SimJava como el framework base de la 
simulación. Se han agregado varias funcionalidades a la base inicialmente desarrollada. La 
arquitectura de GridSim tiene cinco niveles (Figura 4). 
 
Figura 4 Arquitectura de GridSim (Buyya & Murshed, 2002) 
8.4 SIMGRID 
SimGrid (Casanova et al., 2008)(URL, n.d.) es un framework de simulación cuya meta es 
proveer una herramienta de evaluación genérica para computación distribuida a gran 
escala. Sus componentes principales son dos: un API para investigadores que estudian 
algoritmos y necesitan rápidamente prototipos de simulación y un API para que los 
desarrolladores puedan implementar sus aplicaciones en el confort de un mundo simulado 
antes de subirlas al mundo real. SimGrid es disponible bajo licencia LGPL desde su página 
web y se puede ejecutar en Linux, Windows, Mac Os X y en AIX. SimGrid usa un kernel de 
simulación modular que permite la adición y el uso de nuevos modelos sin cambios en el 
código de usuario. 
 
Figura 5 Arquitectura de componentes Simgrid (URL, n.d.) 
8.5 OPTORSIM 
Optorsim (URL, 2013)(Bell & Cameron, 2003)(Xun-yi, Ru-chuan, & Qiang, 2010) está 
basado en la arquitectura del proyecto EU DataGrid, simula un ambiente de un grid de 
almacenamiento real para que los investigadores estudien la efectividad de los algoritmos 
de optimización. La estructura simulada asume varios sitios, un administrador de recursos 
(resource brooker). Cada sitio grid en Optorsim contiene varios elementos de cómputo, 
elementos de almacenamiento y un administrador de réplicas (Figura 6). Uno de los 
conceptos claves en los grids de almacenamiento es la réplica de los datos, involucrando 
la creación y administración de las réplicas. 
8.6 GANGSIM 
Gangsim(Dumitrescu & Foster, 2005) es un simulador de planificación, es derivado del 
Proyecto Ganglia, una herramienta de monitoreo de sistemas distribuidos. La novedad de 
Gangsim es que además del uso de sitios, involucra usuarios y planeadores de 
Organizaciones Virtuales (VO, por sus siglas en inglés) y su habilidad para modelar las 
políticas de uso al nivel de sitios y organizaciones virtuales. Esto permite evaluar como 
interfieren las políticas de uso de recursos, políticas de planeación y la carga de trabajo en 
el comportamiento de los planificadores de las organizaciones virtuales. Gangsim permite 
la ejecución en paralelo y puede combinar la simulación con la ejecución en ambientes 
reales (bancos de pruebas). Se encuentra inactiva y el código fuente no se encuentra 
disponible. 
 
 
Figura 6 Arquitectura de OptorSim (D. Cameron & Millar, 2004) 
8.7 MONARC 
MONARC (Models of Networked Analysis at Regional Centers for Large Hadron Collider 
Experiments) (Dobre & Stratan, 2011) es un framework de simulación diseñado e 
implementado para el proyecto que lleva su mismo nombre. El framework proporciona un 
conjunto completo de componentes básicos (nodos de procesamiento, servidores de datos, 
componentes de red) junto con unidades de decisión (módulos de replicación de datos o 
planificación). La segunda versión de MONARC, llamada MONARC II, incorpora el soporte 
para simular algoritmos para la réplica de datos y para la planificación de tareas. El 
simulador MONARC provee mecanismos para describir tráfico de red concurrente y evaluar 
diferentes estrategias en replicación de datos o en procedimientos de planificación de 
tareas. 
8.8 RESUMEN 
 
Actualmente existen múltiples simuladores que nos permiten realizar pruebas de las 
aproximaciones de algoritmos o sistemas de planificación para mejorar los tiempos de 
respuesta en el grid. Estos simuladores pueden acelerar el proceso de estas pruebas dado 
que en un sistema real las ejecuciones pueden tardar mucho tiempo y puede ser complejo 
desplegar una determinada configuración. En los sistemas reales también es complejo 
repetir una ejecución y por tanto no es fácil comparar la aptitud de cada técnica probada, 
pues los tiempos de conexión, latencias y cargas de procesamiento pueden ser diferentes. 
Podemos escoger una herramienta de simulación que se ajuste a nuestras necesidades, 
según la taxonomía propuesta en el anexo de este trabajo existen herramientas para 
simular como bancos de pruebas, emuladores y simuladores. 
Para este trabajo, hemos escogido a Optorsim como la herramienta de simulación que nos 
ayude a comparar entre las técnicas escogidas para la localización de réplicas en 
ambientes grid. Optorsim es un sistema de simulación que ha sido diseñado para la 
evaluación de optimización de almacenamiento. Aunque Optorsim también permite evaluar 
la planificación de tareas en un Compute Grid. Optorsim ha sido ampliamente utilizado para 
la evaluación de algoritmos de administración de réplicas en múltiples investigaciones 
(Belalem, 2009; D. G. Cameron et al., 2004; Jiang & Yang, 2007; Madi, Yusof, Hassan, & 
Almomani, 2011; Rasool, Li, Oreku, & Munir, 2007; Xun-yi et al., 2010). También es un 
simulador escrito en Java y de código abierto, que nos permite ejecutarlo en cualquier 
plataforma y además realizarle los ajustes necesarios. 
8.9 BIBLIOGRAFIA 
Belalem, G. (2009). Economic Model for Consistency Management of Replicas in 
Data Grids with OptorSim Simulator. Networks for Grid Applications, 121–
129. Retrieved from http://link.springer.com/chapter/10.1007/978-3-642-
02080-3_13 
Bell, W., & Cameron, D. (2003). Optorsim: A grid simulator for studying dynamic 
data replication strategies. … Journal of High …, 1–20. Retrieved from 
http://hpc.sagepub.com/content/17/4/403.short 
Buyya, R., & Murshed, M. (2002). Gridsim: A toolkit for the modeling and 
simulation of distributed resource management and scheduling for grid 
computing. Concurrency and Computation: Practice …, 1–37. 
Cameron, D. G., Millar, a. P., Nicholson, C., Carvajal-Schiaffino, R., Stockinger, 
K., & Zini, F. (2004). Analysis of Scheduling and Replica Optimisation 
Strategies for Data Grids Using OptorSim. Journal of Grid Computing, 2(1), 
57–69. http://doi.org/10.1007/s10723-004-6040-6 
Cameron, D., & Millar, A. (2004). Optorsim: a simulation tool for scheduling and 
replica optimisation in data grids. Computing in High Energy …. Retrieved 
from 
http://scholar.google.com/scholar?hl=en&btnG=Search&q=intitle:OPTORS
IM+:+A+SIMULATION+TOOL+FOR+SCHEDULING+AND+REPLICA+OPTIM
ISATION+IN+DATA+GRIDS#0 
Casanova, H., Legrand, A., & Quinson, M. (2008). SimGrid: A generic framework 
for large-scale distributed experiments. Proceedings - UKSim 10th 
International Conference on Computer Modelling and Simulation, 
EUROSIM/UKSim2008, 126–131. http://doi.org/10.1109/UKSIM.2008.28 
Dobre, C., & Stratan, C. (2011). MONARC Simulation Framework. Proc. of the 
RoEduNet International Conference, 49(63), 35–42. Retrieved from 
http://arxiv.org/abs/1106.5158 
Dumitrescu, C. L., & Foster, I. (2005). GangSim: a simulator for grid scheduling 
studies. CCGrid 2005. IEEE International Symposium on Cluster Computing 
and the Grid, 2005., 1151–1158 Vol. 2. 
http://doi.org/10.1109/CCGRID.2005.1558689Jiang, J., & Yang, G. (2007). An optimal replication strategy for data grid 
systems. Frontiers of Computer Science in China, 1(3), 338–348. 
http://doi.org/10.1007/s11704-007-0033-0 
Madi, M., Yusof, Y., Hassan, S., & Almomani, O. (2011). A Novel Replica 
Replacement Strategy for Data Grid, 717–727. 
Quetier, B., & Cappello, F. (2005). A survey of Grid research tools: simulators, 
emulators and real life platforms. IMACS World Congress. Retrieved from 
http://scholar.google.com/scholar?hl=en&btnG=Search&q=intitle:A+surve
y+of+Grid+research+tools+:+simulators+,+emulators+and+real+life+pl
atforms#0 
Rasool, Q., Li, J., Oreku, G. S., & Munir, E. U. (2007). A Comparative Study of 
Replica Placement Strategies in Data Grids, 135–143. 
Sulistio, A., Yeo, C. S., & Buyya, R. (2004). A taxonomy of computer-based 
simulations and its mapping to parallel and distributed systems simulation 
tools. Software: Practice and Experience, 34(7), 653–673. 
http://doi.org/10.1002/spe.585 
URL. (n.d.). SimGrid: SimGrid Documentation. Retrieved August 17, 2015, from 
http://simgrid.gforge.inria.fr/simgrid/3.10/doc/ 
URL. (2013). Optorsim: data access grid simulator. Retrieved from http://edg-
wp2.web.cern.ch/edg-wp2/optimization/optorsim.html 
URL. (2015). The CLOUDS Lab: Flagship Projects - Gridbus and Cloudbus. 
Retrieved August 17, 2015, from http://www.cloudbus.org/gridsim/ 
Xia, H. X. H., Dail, H., Casanova, H., & Chien, a. a. (2004). The MicroGrid: using 
online simulation to predict application performance in diverse grid network 
environments. Proceedings of the Second International Workshop on 
Challenges of Large Applications in Distributed Environments, 2004. CLADE 
2004. http://doi.org/10.1109/CLADE.2004.1309092 
Xun-yi, R. E. N., Ru-chuan, W., & Qiang, K. (2010). Using optorsim to efficiently 
simulate replica placement strategies. The Journal of China Universities of 
Posts and Telecommunications, 17(1), 111–119. 
http://doi.org/10.1016/S1005-8885(09)60434-9 
 
 
 
 
 
9 INTELIGENCIA COMPUTACIONAL 
9.1 INTRODUCCIÓN 
El desarrollo de la inteligencia computacional nace de la necesidad de encontrar soluciones 
óptimas a problemas complejos computacionalmente, debido al espacio de soluciones 
posibles o la gran cantidad de datos a evaluar. Estas técnicas han sido especialmente 
desarrolladas en la actualidad, dada la posibilidad de obtener grandes volúmenes de datos 
y la necesidad de optimizar los recursos. La inteligencia computacional se inspiró en 
aspectos observables e imitables de la actividad inteligente del ser humano y de la 
naturaleza. La naturaleza cuando emprende acciones que requieran de inteligencia, 
procesa los datos y ajusta las acciones usando mecanismos de retroalimentación 
(Rutkowsku 2007), de esta manera funciona el sistema de aprendizaje de redes neuronales 
artificiales. Otro ejemplo son los algoritmos de optimización basados en procesos de 
selección natural, comportamiento de grupos o sistemas de lógica difusa que reflejan la 
aleatoriedad, imprecisión, subjetividad o relativismo de las evaluaciones de la naturaleza. 
La estructura de este capítulo es como sigue, en la segunda sección de este capítulo 
revisaremos el concepto de aprendizaje de máquinas y los tipos de aprendizaje. Después 
veremos algunas técnicas usadas en inteligencia computacional. Más adelante se revisará 
Inteligencia de Enjambres, la cual es una técnica muy interesante para el desarrollo del 
problema de réplicas en grid por sus características que facilitan su uso en sistemas 
distribuidos. Finalmente se presenta un resumen del capítulo. 
9.2 APRENDIZAJE 
Las teorías desarrolladas de inteligencia computacional fueron rápidamente aplicadas a 
muchos campos de la ingeniería, análisis de datos, pronóstico, biomedicina, bioinformática 
y otros. La idea central de la inteligencia computacional es el aprendizaje. El aprendizaje es 
la habilidad de un sistema para cambiar, o evolucionar, sus parámetros para mejorar la 
búsqueda de un objetivo. Aprendizaje dinámico es la habilidad para adaptarse “en línea”, 
en tiempo real en un ambiente cambiante (Cass & DePietro 1998). Existen tres tipos de 
aprendizaje o adaptación: 
Aprendizaje supervisado 
En el aprendizaje supervisado un “profesor” proporciona ejemplos relevantes de entrada y 
salida. El sistema emula los ejemplos de entrenamiento mientras adquiere la habilidad para 
generalizarlos. Un ejemplo de aprendizaje supervisado son las redes neuronales artificiales 
usando el algoritmo back-propagation. Los patrones de entrada para los cuales los 
patrones de salida son conocidos están presentes en la red. Alguna función de error en 
cada salida es usada para ajustar los parámetros del sistema. En este caso, los pesos de 
la red neuronal son ajustados en un intento por minimizar el error. 
Aprendizaje con refuerzo 
El aprendizaje con refuerzo de un sistema es dado usando un “crítico” el cual provee 
información heurística de refuerzo. La información variable de entrada a menudo incluye 
un rango dinámico de cada variable y quizá otra información que indique la precisión 
requerida. El crítico provee algo medida de aptitud basada en la meta. La aptitud no puede 
ser obtenida directamente, pero es una sugerencia de que tan buena es la solución con 
respecto a las otras soluciones. 
De los tipos de aprendizaje esta es más cercana a los sistemas biológicos, un ejemplo es 
que los animales tienden a evitar el comportamiento que les molesta y repetir con el que se 
sienten a gusto. El aprendizaje con refuerzo tiene sus raíces en la teoría de control de 
óptimos llamada programación dinámica. 
Aprendizaje no supervisado 
En el Aprendizaje no supervisado no se involucra un profesor o crítico. La interpretación del 
resultado del algoritmo no supervisado, que tan bueno es y si es apropiado o útil es 
realizada al finalizar el algoritmo. A menudo esta evaluación es realizada por un humano u 
otro sistema inteligente. 
Clustering agrega patrones de entradas similares en distintos subconjuntos mutualmente 
excluyentes llamados clústers. 
9.3 TÉCNICAS DE INTELIGENCIA COMPUTACIONAL 
La inteligencia computacional se ha convertido en una rama de investigación importante 
que se encarga de imitar o simular el comportamiento de aspectos importantes de la 
naturaleza a través de algoritmos matemáticos y sistemas para la búsqueda de soluciones 
a problemas complejos. Tales algoritmos se basan en la aplicación de las siguientes 
técnicas (Rutkowsku 2007): 
a. Redes Neuronales 
b. Lógica difusa 
c. Computación evolutiva 
d. Rough Sets 
e. Variables inciertas 
f. Métodos probabilísticos. 
g. Inteligencia de enjambres 
La inteligencia computacional no cubre únicamente las técnicas individuales sino también 
la combinación de varias técnicas. Estas técnicas son aplicadas comúnmente a problemas 
clásicos de inteligencia artificial. Como por ejemplo, procesar y hablar el lenguaje natural, 
construir sistemas expertos y robots, búsqueda de información y también para las 
necesidades de aprendizaje de las máquinas. 
Optimización es el corazón de muchos procesos naturales, incluyendo la evolución de 
Darwin y el comportamiento social de grupos. Las dos ramas principales de algoritmos que 
constituyen principalmente el campo de la optimización usando inteligencia computacional 
son los métodos de computación evolutiva, los algoritmos de inteligencia de enjambre y de 
búsqueda de alimento. Aunque ambas familias de algoritmos se dedican generalmente a la 
solución de búsqueda y optimización de problemas, ciertamente no son equivalentes, y 
cada uno tiene sus propias características distintivas. 
Debido a su naturaleza, la Inteligencia de Enjambres muestra unas características 
interesantes en el diseño de soluciones distribuidas a problemas, pues esta técnica está 
basada en el comportamiento observado de un conjunto que individuos que colaboran entre 
sí, demanera descentralizada y auto organizada, para la búsqueda de un objetivo 
(búsqueda de alimento, huir de depredadores, etcétera). Cada uno de los individuos de la 
población son autónomos y su comportamiento se transforma basado en sus vecinos y en 
la modificación del ambiente. 
9.4 INTELIGENCIA DE ENJAMBRES 
La inteligencia de enjambres está basada en los principios subyacentes del comportamiento 
natural de los sistemas que consiste de muchos agentes y explotar las comunicaciones 
locales y el control altamente distribuido. El método de inteligencia de enjambres constituye 
un modelo muy práctico y poderoso que simplifica el diseño de soluciones distribuidas a 
diferentes tipos de problemas(Ding et al. 2011). 
Los sistemas de inteligencia de enjambres están compuestos por una población de agentes 
con capacidades limitadas, que interactúan localmente entre ellos o con el ambiente y de 
esta manera son hábiles para resolver problemas complejos. Los enjambres utilizan formas 
de control descentralizado y auto-organización para llegar a sus metas (Sehrawat 2013). 
Investigadores en ciencias de la computación han desarrollado sistemas de inteligencia de 
enjambres en respuesta al éxito y eficiencia observada en los enjambres de la naturaleza 
para resolver problemas complejos. En estos enjambres biológicos los individuos 
(hormigas, pájaros, termitas, pescados o abejas) son simples criaturas con habilidades 
cognitivas y de comunicación limitadas que exhiben un comportamiento colectivo inteligente 
para proveer soluciones eficientes para problemas complejos como la evasión de 
depredadores y búsqueda de la ruta más corta (Sehrawat 2013). 
Los principios fundamentales del comportamiento colectivo de enjambres son (Ding et al. 
2011; Sehrawat 2013): 
a. Homogeneidad: cada individuo en el enjambre tiene el mismo comportamiento. El 
enjambre se mueve sin un líder, aunque líderes temporales aparezcan. 
b. Localidad: El movimiento de cada individuo es solamente influenciado por sus 
compañeros de enjambre más cercanos. 
c. Evitación de colisiones: Evitar con los compañeros de enjambre cercanos. 
d. Coincidencia de velocidad: Intentar coincidir con la velocidad de los compañeros de 
enjambre cercanos. 
e. Agrupamiento de enjambre: Mantenerse cerca a los compañeros de enjambre 
cercanos. 
Los sistemas basados en la inteligencia de enjambres tienen también las siguientes 
características: 
a. Autonomía: El sistema no requiere administración o mantenimiento externo. 
b. Adaptabilidad: Los individuos tienen la habilidad para detectar y generar cambios en 
el ambiente dinámicamente (comunicación indirecta). Ellos pueden de manera 
autónoma adaptar su nuevo comportamiento a estos cambios. 
c. Escalabilidad: Las habilidades del sistema pueden ser realizadas usando desde 
grupos pequeños hasta grupos de miles de individuos con la misma arquitectura. 
d. Flexibilidad: Los individuos no son esenciales, por tanto de manera dinámicamente 
pueden ser adicionados, removidos o reemplazados. 
e. Robustez: No hay un punto único de fallo debido a que no hay una coordinación 
central. Y al combinar escalabilidad y flexibilidad el sistema permite redundancia que 
es esencial para la robustez. 
f. Paralelo: El sistema es realmente paralelo y su funcionamiento es completamente 
distribuido. Las tareas realizadas por cada individuo dentro del grupo son las 
mismas. 
g. Auto-organización: La inteligencia exhibida en los sistemas de enjambres no está 
presente en los individuos, pero de alguna manera emerge del enjambre completo. 
h. Costo-efectivo: El sistema consiste de una colección finita de agentes homogéneos 
con capacidades limitadas. Además cada agente tiene las mismas capacidades y 
algoritmos de control. Esto simplifica claramente el diseño de la implementación de 
algoritmos y hardware paralelo. 
 A continuación revisaremos los dos algoritmos de inteligencia de enjambres más utilizados 
en investigación de optimización y búsqueda (Sehrawat 2013). 
9.4.1 Ant Colony Optimization (ACO) 
Es una metaheurística basada en población que puede ser usada para encontrar soluciones 
aproximadas a problemas de optimización complejos. ACO es inspirado en el 
comportamiento para la búsqueda de alimento de algunas especies de hormigas. Las 
hormigas marcan el camino favorable depositando feromonas en la tierra que serán 
seguidos por otros miembros de la colonia. ACO simula este procedimiento para resolver 
problemas de optimización (Dorigo & Birattari 2004; Wong 2011; Salami 2009). Este tipo 
particular de comunicación indirecta entre individuos es llamada estigmergía. Las dos 
principales características de la estigmergía que la diferencian de otro tipo de comunicación 
son las siguientes: 
- Estigmergía es una forma de comunicación indirecta y sin símbolos usando el 
ambiente: los insectos intercambian información por modificar su ambiente; y 
- La información de la estigmergía es local: sólo puede ser accesible por estos 
insectos que visiten el espacio en el cual fue liberado o su vecindario inmediato. 
Estigmertía puede ser observada en el comportamiento de las hormigas cuando van en 
busca de algún alimento. En la mayoría de especies de hormigas en su camino a la fuente 
de alimento ellas depositan en el suelo una sustancia llamada feromona. Esta feromona se 
va evaporando a medida que pasa el tiempo y las demás hormigas siguen la ruta en la cual 
la concentración de feromona es más alto. En la Figura 7 podemos ver este 
comportamiento, en la ruta más corta la hormiga llega más rápidamente al nido y por tanto 
la concentración feromona en el camino trazado es más alto que la ruta más larga. Cuando 
la hormiga llegue al nido esta concentración ha mermado. Finalmente la mayoría de las 
hormigas toman el sendero más corto, que contiene la mayor concentración de feromonas. 
 
Figura 7 Usando Feromonas para la selección de la mejor ruta (Sehrawat 2013) 
El pseudocódigo de ACO es como sigue: 
Configurar parámetros, 
inicializar los senderos de feromonas 
Mientras la condición de terminación no se cumpla do 
 ConstruirSolucionesHormigas 
 AplicarBúsquedaLocal (optional) 
 Actualizar Feromonas 
Fin mientras 
9.4.2 Particle Swarm Optimization (PSO) 
El algoritmo de optimización por enjambre de partículas viene siendo una técnica de 
computación evolutiva y un importante algoritmo heurístico en los últimos años. PSO Es un 
método basado en población, esta población es llamada enjambre. PSO está inspirado en 
el comportamiento social de los pájaros al momento de volar o buscar alimento en manada 
(Ding et al. 2011; Kennedy & Eberhart 1995; Sehrawat 2013; Bai 2010). Los pájaros y peces 
ajustan su movimiento físico para evitar depredadores, buscar alimento y compañeros, 
optimizar la temperatura entre otros. 
PSO comparte muchas características con las técnicas de computación evolutiva tales 
como Algoritmos Genéticos. El sistema es inicializado con una población de soluciones 
aleatorias y actualiza las generaciones para buscar óptimos. En PSO las soluciones 
potenciales, llamadas partículas, vuelan a través del espacio del problema siguiendo las 
partículas óptimas. Cada partícula tiene un valor de aptitud, que son evaluados por una 
función de aptitud a ser optimizada. Las partículas también tienen velocidades que 
controlan el vuelo de las partículas. Esta velocidad es inicialmente aleatoria y se ajusta de 
acuerdo a su experiencia de vuelo y a la experiencia de sus vecinos. Las partículas cambian 
su condición siguiendo 3 principios. 
 Para mantener la inercia 
 Cambiar la condición de acuerdo a su posición más optimista. (pbest) 
 Cambiar la condición de acuerdo a la posición más optimista del enjambre. (gbest) 
Usando estos dos valores cada partícula cambia su velocidad y posición usando las 
siguientes ecuaciones (Sehrawat 2013): 
𝑣𝑖𝑑(𝑡 + 1) = 𝑣𝑖𝑑(𝑡) + 𝑐1𝑟𝑎𝑛𝑑( )(𝑝𝑏𝑒𝑠𝑡 − 𝑥𝑖𝑑(𝑡))

Continuar navegando