CYTED Grid

Tecnología GRID como motor del desarrollo regional.

Desde la aparición del concepto de Grid y las primeras experiencias de su aplicación práctica (en 1995) hasta la actualidad, el desarrollo de estas tecnologías ha sido continuo. El Grid surge en el ámbito de la supercomputación para satisfacer las necesidades de ciertos proyectos científicos, bien por requerir una enorme capacidad de cálculo ("grids computacionales") o por manejar ingentes cantidades de datos ("grids de datos").

En este context, el proyecto propone trabajar en la creación de una infraestructura tecnológica y humana entre diversos grupos iberoamericanos dedicados al campo de la informática y con experiencia en el área de aplicaciones científicas potencialmente usuarias de la tecnología Grid. El objetivo principal de este proyecto es construir una red grid como soporte de diferentes tipos de aplicaciones, analizando hasta qué punto las soluciones disponibles actualmente son válidas, y proponiendo desarrollos nuevos que proporcionen la funcionalidad necesaria. Al final del proyecto se dispondrá de un conjunto significativo de aplicaciones piloto que podrán ser utilizadas como demostradores de la tecnología grid para su difusión en otros ámbitos.

Justificación del proyecto

El Grid ha surgido recientemente en el ámbito de la supercomputación para satisfacer las necesidades de ciertos proyectos científicos, bien por requerir una enorme capacidad de cálculo ("Computational Grids") o bien por manejar ingentes cantidades de datos ("Data Grids"). Pronto se ha visto que esta filosofía tiene un gran potencial también para determinadas aplicaciones comerciales y, actualmente, existe una clara convergencia con las tecnologías basadas en Servicios Web, con lo que se llegará a una implantación generalizada en todos los ámbitos ("Utility Grids").

Durante este tiempo se ha producido un gran avance en el desarrollo de elementos software intermedios ("middleware"), necesarios en este tipo de aplicaciones, como ayuda adicional para la gestión de recursos distribuidos, seguridad, etc. Sin embargo, el desarrollo de aplicaciones que se asienten sobre la tecnología Grid sigue siendo, hoy por hoy, una labor casi artesanal, principalmente porque la distancia entre los conceptos requeridos por las aplicaciones y los proporcionados por el middleware es todavía demasiado grande.

Para facilitar el desarrollo mencionado nos proponemos enriquecer el middleware con una serie de herramientas que actualmente o no existen o existen en un nivel muy primitivo de prestaciones; distinguimos las siguientes posibilidades:

Puesto que no existen herramientas específicas orientadas al desarrollo de aplicaciones para entornos Grid y generalmente, los usuarios siguen desarrollando sus aplicaciones secuenciales o en el mejor de los casos paralelas con las mismas herramientas que utilizaban para el desarrollo de aplicaciones paralelas intra-cluster, nos proponemos diseñar tales herramientas

La monitorización de los sistemas Grid, tanto a nivel de la utilización de los recursos del sistema como del comportamiento propio de las aplicaciones es una facilidad conveniente. Los sistemas Grid son sistemas cambiantes dinámicamente y es imprescindible disponer de información sobre el comportamiento de los mismos para poder conseguir un uso eficiente del mismo.

La información sobre el comportamiento del sistema o de la aplicación obtenida mediante las herramientas de monitorización debe ser analizada, de forma que se pueda determinar cual es el rendimiento efectivo del mismo y cuales son las acciones que deben realizarse para mejorar dicho rendimiento.

A medida que aumenta el número de nodos de una plataforma Grid la posibilidad de que alguno de ellos falle aumenta exponencialmente. Dado que la mayoría de las aplicaciones que se ejecutan en un Grid necesita de un gran número de recursos computacionales y mucho tiempo de ejecución, se hace necesario dotar a dichas aplicaciones de algún mecanismo de tolerancia a fallos. Incluido en la ampliación de la capa middleware el proyecto se propone incluir herramientas que, de la forma más transparente posible, permitan el desarrollo de aplicaciones tolerantes a fallos, tanto secuenciales, como paralelas. Las soluciones propuestas deben ser portables a distintas plataformas para que puedan ser útiles en entornos heterogéneos como los sistemas Grid. Los desarrollos que resulten podrán además ser aplicados a la migración de procesos entre nodos diferentes del sistema distribuido con el objetivo de balancear la carga.

En este proyecto se propone la idoneidad del Grid como soporte de ejecución de un conjunto selecto de aplicaciones que han sido elegidas con base en la experiencia acumulada por los diferentes grupos del consorcio en los últimos años, y también con la intención de combinar tanto las necesidades de cálculo como de manejo de datos. Para poder llegar a obtener prototipos de las aplicaciones que sean totalmente funcionales o, al menos, con la suficiente funcionalidad para demostrar la viabilidad de las tecnologías Grid, será necesario, además de migrar las aplicaciones a una arquitectura Grid, realizar desarrollos complementarios relativos únicamente a la aplicación en sí.

Hoy en día, la principal aplicación de la tecnología Grid es la supercomputación distribuida, es decir, poder utilizar recursos computacionales disponibles a través de Internet para la resolución de problemas con grandes requisitos de potencia de cálculo o de otros recursos como pueden ser capacidad de memoria, espacio de almacenamiento, etc. Esta tecnología va a permitir resolver problemas tipo "gran desafío" (grand challenge) como puede ser la simulación del clima a escala planetaria, análisis del genoma, simulación de procesos biológicos del ser humano, etc. Sin embargo, y como se ha comentado anteriormente, Grid es un concepto mucho más amplio y revolucionario que va más allá de la simple realización de cálculos. De hecho, un área que emerge con gran fuerza en entornos en los que la diversidad de fuentes de información es grande, como es el caso de la biología en general, es el denominado "Data Grid", que viene a indicar el conjunto de tecnologías necesarias para integrar esa información y construir una red de recursos de procesamiento de la información realmente inter-operable. Aspectos claves de este gran área de "Data Grid" es la definición de Ontologías así como la necesidad de ejecutar "flujos de trabajos" (workflows) sobre diferentes datos para llegar a un resultado integrado.

En la actualidad, existen múltiples aproximaciones para la creación de una arquitectura Grid genérica mediante la definición de protocolos Grid estándares que permitan la interoperabilidad entre diferentes sistemas: definición de servicios, interfaces de aplicaciones y herramientas de desarrollo de software. Sin embargo, todavía no se ha impuesto ningún modelo concreto y aunque a nivel conceptual el acuerdo es grande, a nivel de aplicación el consenso es difícil. La actividad en este campo a nivel mundial es muy importante y es en la fase de desarrollo de una nueva tecnología donde es vital la contribución de la comunidad científica.

Se prevé que en un plazo relativamente corto, el mercado madure suficientemente para permitir una adopción mayoritaria de la tecnología. Para conseguir una transición suave a esta situación, es necesario integrar las nuevas tecnologías Grid en las tecnologías ya existentes. Esta integración será necesaria en diferentes niveles. Un ejemplo de ello es lo que se denomina Grid Services, que no es más que combinar los conceptos de Grid y Web Services. Esta integración se realiza mediante la definición de especificaciones propuestas por expertos para que sean adoptadas por la comunidad, convirtiéndose eventualmente en estándares. La convergencia entre Grid Services y Web Services comienza a fraguarse tras la definición de los estándares OGSA y OGSI y su implementación en la versión 3.0 de Globus. Tras esta aproximación inicial para definir unos estándares de Servicios Grid, se comienza a trabajar en la definición de un nuevo estándar, el WSRF (Web Service Resource Framework), en el que se intenta definir un marco convergente entre Servicios Grid y Servicios Web. La primera implementación de este estándar se ha realizado en la última versión de Globus disponible (la 4.0)