Computación en grilla (grid computing)

De Departamento de Informatica
Saltar a: navegación, buscar

Contenido

Introducción

Descripción de grilla por IBM

La computación en grilla (grid computing), es una tecnología que sigue el paradigma de computación distribuida, enlazando un numero indeterminado de dispositivos heterogéneos, integradolos a una red (o grilla) para que estos puedan ofrecer su potencia alfanumérica y espacio de almacenamiento a un usuario o cliente final. Los equipos que formen parte de la "grilla" distribuyen la carga de procesos para disminuir drásticamente los tiempos de calculo, sin embargo, a diferencia de los sistemas computacionales distribuidos tradicionales, los equipos pueden estar separados geográficamente, ofreciendo una arquitectura computacional que simula ser un único súper computador cuyos recursos son prácticamente ilimitados.

La computación en grilla ofrece alto poder de cálculo, cuya aplicación se ha visto limitada a temas de índole científico, sin embargo, se espera que esta tecnología se ofrezca al público general.


Evolución Histórica

Modelo cliente-servidor

El grid computing está basado en el modelo cliente-servidor, al igual que muchas otras relaciones productor-consumidor que se dan en todos los niveles de la computación.

Hay dos tipos de recursos que un servidor puede proveer a los clientes: almacenamiento y ciclos de cómputo. El mainframe y la terminal fue el primer par cliente-servidor de uso extenso. Ya que el almacenamiento y los ciclos de CPU eran muy costosos, el mainframe los reunía y los servía a los usuarios a través de terminales o thin-clients, computadores que, en ese entonces, proveían sólo una línea de comandos.

Luego, en los años 80, una vez masificado el PC, que bajó los costos de procesadores y almacenamiento, se hizo popular el servidor de archivos como medio para compartir y archivar documentos, especialmente en el área empresarial. Esta década también presenció el auge del supercomputador, consistente en un gran arreglo homogeneo de procesadores, sin embargo fueron escasos y su uso se vio limitado al sector militar y a las instituciones académicas respaldadas por el gobierno, debido al alto costo de estos equipos.

La grilla y el cómputo utilitario

A comienzo de los años 90, Internet era lo suficientemente masiva para que el área académica pensara en cómo conectar las máquinas para crear pools (fondos comunes) de almacenamiento y poder de cómputo más grandes de lo que pudiera costear cualquier organización. Así empezaba a tomar forma "la grilla".

El término grid proviene de la generación de energía, donde los proveedores de electricidad suministran la energía sobre una red o grilla a los clientes, los cuales pagan el servicio en la medida de su uso. La idea detrás de este modelo, y relacionado al concepto de utility computing (cómputo utilitario) era que un gran número de computadores en red podían conformar un gran servidor de archivo o un supercomputador virtual, y el acceso a los recursos compartidos de cómputo u almacenamiento serían vendidos on-demand, y cobrados por cantidad consumida.

Características

El grid computing trata de reunir conceptos, dentro de todas las tecnologías de la Información disponibles, como sistemas operativos distribuidos, programación multiprocesador, redes de computadores, computación paralela, seguridad de la información, bases de datos, entre otras.

Grid computing va más allá de compartir ciclos de CPU para resolver cálculos complejos, sino que más bien el concepto se centra en crear una infraestructura de computación distribuida.

La arquitectura de Grid Computing es una arquitectura de protocolos. Estos protocolos definen los mecanismos básicos en los cuales los usuarios de la organización virtual y los recursos negocian, gestionan, establecen y explotan relaciones de compartición de recursos. Además, esta arquitectura es abierta, basada en estándares que permiten y facilitan la extensibilidad, interoperatibilidad, portabilidad, entre otras características, ayudados de protocolos estándares que facilitan la definición de servicios estándares que potencian las capacidades de esta arquitectura.

El mejor aprovechamiento de una arquitectura en Grid es cuando las aplicaciones o los requerimientos utilizan algoritmos que pueden dividirse independientemente en partes de ejecución. Una aplicación en Grid intensiva de CPU puede pensarse como muchos sub-trabajos ejecutándose en recursos o máquinas diferentes dentro del Grid. Como consecuencia, si estos sub-trabajos no necesitan comunicarse entre sí, la aplicación se vuelve escalable.

Un objetivo principal de Grid Computing es aprovechar al máximo los recursos. Por esto, puede pasar de que la máquina o recurso en donde la aplicación normalmente es ejecutada se encuentre inusualmente ocupada por algún peak de actividad inusual. Si esto ocurre, podría el proceso completarse en otra máquina dentro del Grid. El sistema Grid es el responsable de enviar un trabajo a alguna máquina para que sea ejecutado. Los schedulers toman el trabajo de asignar según la disponibilidad de los recursos en el Grid. Si alguna máquina se vuelve ociosa dentro del Grid, esto es informado al nodo de administración, con el fin de que pueda ser reutilizado lo antes posible y minimizar así el tiempo de ocio. Los recursos en el Grid además pueden ser reservados por adelantado para algún conjunto de trabajos con el objetivo de así poder cumplir con fechas requeridas o tiempos, y así garantizar alguna calidad de servicio.

Arquitectura

En la arquitectura de Grid Computing los componentes se organizan en capas, siendo la estructura más común:

Componentes arquitecura grid

Los componentes dentro de cada capa comparten características comunes, pero pueden ser construidos sobre las capacidades y comportamientos provistos por las capas de nivel inferior.

  • Capa de Infraestructura: Esta capa provee los recursos sobre los cuales el acceso compartido es mediado por los protocolos Grid. Los componentes que se encuentran en esta capa implementan las operaciones específicas del recurso que ocurren sobre el recurso específico (lógico o físico) como resultado de las operaciones de compartirlo a niveles superiores. En grandes rasgos, en esta capa se ofrecen los mecanismos que permiten descubrir su estructura, estado y capacidades, además de los mecanismos que proveen algún control sobre la calidad entregada por los recursos.
  • Capa de Conectividad: Esta capa define el núcleo de los protocolos de comunicación y autenticación requeridos para las transacciones de red, específicas de Grid. Los protocolos de autenticación construidos sobre los servicios de comunicación para proveer, por ejemplo, mecanismos criptográficos seguros para verificar la identidad de usuarios y recursos en la arquitectura.
  • Capa de Recurso: La capa de recurso construida sobre los protocolos de autenticación y comunicación de la capa de conectividad, definen protocolos para una negociación de recursos segura, inicialización, monitorización, control, aprovechamiento de las operaciones de compartición sobre recursos individuales. La implementación de los protocolos de la capa de recurso llaman a las funciones de acceso y control local de recursos de la capa de infraestructura.
  • Capa de Aplicaciones: Esta última capa en la arquitectura comprende las aplicaciones de los usuarios que operan dentro del ambiente de esta organización virtual. Las aplicaciones son construidas en términos de servicios definidos en otra capa inferior. En cada capa, hay protocolos bien definidos que proveen acceso a algún servicio útil: administración de recursos, descubrimiento de recursos, acceso a datos y demás. En cada capa, las API’s pueden ser definidas y sus implementaciones intercambian los mensajes de protocolo con el servicio apropiado para ejecutar las acciones deseadas.

Computación grid comparado con otros sistemas

Computación grid Vs. Computación en la nube

La computación en la nube es un concepto muy presente en el día de hoy, esta consiste en proveer al usuario una infraestructura, plataforma o software a través de una conexión a internet para suplir las necesidades que el solo no puede costear.

El concepto es muy similar al de computación en grilla, ya que proveen al usuario servicios que en la mayoría de los casos sería imposible de costear por una sola entidad, incluso se podría indicar que la computación en la nube es una evolución de la computación en grilla, ya que la forma de conectarse a la grilla aún es muy compleja, mientras que la computación en la nube se basa en la disponibilidad de donde exista una conexión a internet. Ambas ofrecen espacio de almacenamiento, sin embargo, para la computación en grilla almacenar pequeños datos no es conveniente, ya que los costos de acceso son mayores que si los datos fueran almacenados de forma local, por otro lado, la computación en la nube cuenta con servicios especializados de almacenamiento, en donde el costo de almacenamiento es muy inferior al costo físico por byte, lo que en cierta medida atenúa que la velocidad de acceso sea inferior.

A pesar de todo, la computación en grilla puede ser integrada a la computación en la nube, siendo un claro ejemplo Amazon Cloud Services, donde se encuentra el servicio EC2, que ofrece poder de cálculo de sus servidores por un bajo precio y por otro lado se encuentra Amazon S3 (Simple Storage Service), que cumple la necesidad de entregar grandes cantidades de espacio por muy bajos costos. Ambos sistemas se apoyan en la computación en grilla para ofrecer sus servicios, pero la forma para entregarlos se basa en la computación en la nube.

Computación grid Vs. Peer to Peer

Peer to Peer (P2P) es una red de computadores en donde todos los nodos o equipos comparten información de igual a igual, mayoritariamente sin la intervención de clientes o servidores fijos. Al igual que en la computación en grilla, los equipos pueden estar separados geográficamente y no necesitan ser homogéneos, sin embargo, el propósito de las redes P2P no es ofrecer potencia de cálculo ni almacenamiento, si no proveer una red en donde la información pueda ser transferida desde un ordenador a otro sin intermediarios de por medio.

Proyectos que utilizan grid computing

  • BOINC. Desarrollado por la University of California, en Berkeley, BOINC es una plataforma de código abierto que permite contribuir con poder de cómputo en computadores domésticos a proyectos que realizan investigación en varias áreas científicas a través de la 'grilla'. Fue desarrollado originalmente para el proyecto SETI@home, para luego convertirse en una herramienta de utilidad para otras aplicaciones distribuidas en áreas tan diversas como las matemáticas, medicina, biología molecular, climatología y astrofísica.
  • SETI@home. Proyecto científico que utiliza computadores conectados por Internet para la búsqueda de inteligencia extraterrestre (Search for Extraterrestrial Intelligence - SETI). El cliente, gratuito para descargar, utiliza el computador para descargar y analizar datos de radio telescopios.
  • Folding@home. Proyecto científico para la simulación del plegamiento de proteínas, útil para estudiar enfermades como Alzheimer, Parkinson, Huntington, y muchos tipos de cáncer. Actualmente cuenta con aproximadamente 200.000 nodos conectados.
  • LHC@home. Proyecto científico para ayudar a físicos a desarrollar y explotar aceleradores de partículas como el Large Hadron Collider del CERN, y para comparar la teoría con la experimentación en la búsqueda de nuevas partículas fundamentales. Al contribuir con capacidad de proceso en computadores domésticos, se realizan simulaciones de dinámica de rayos y colisiones de partículas.
  • Einstein@home. Proyecto científico que utiliza el poder de procesamiento de los computadores conectados a la grilla para analizar los datos de detectores de ondas gravitacionales LIGO, el radio telescopio Arecibo, y el satélite de rayos gama Fermi para la búsqueda de señales astrofísicas débiles provenientes de estrellas de neutrones (también llamados 'pulsares').

Referencias

Enlaces externos

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas