Carlos del Porto Blanco
Todas las piezas deben unirse sin ser forzadas. Debe recordar que los componentes que está reensamblando fueron desmontados por usted, por lo que si no puede unirlos debe existir una razón. Pero sobre todo, no use un martillo. Manual de mantenimiento de IBM, año 1925
La computación en malla (en inglés grid computing o mesh computing) es una tecnología que permite utilizar de forma coordinada recursos heterogéneos (procesadores, almacenamiento y aplicaciones específicas) que no están sujetos a un control centralizado. Es una forma de computación distribuida, en la cual los nodos participantes pueden ser de arquitecturas iguales o no, y cubrir toda la gama de potencia de cómputo, desde dispositivos embebidos hasta supercomputadoras.
Los equipos que forman parte de una topología en malla están interconectados mediante redes de área extensa. El concepto se desarrolló en ámbitos científicos a principios de los años 1990. Su entrada al mercado comercial siguió la idea de la llamada computación bajo demanda.
El término malla se refiere a una infraestructura que permite la integración y uso colectivo de computadoras, redes y bases de datos que pertenecen a diferentes instituciones y se administran por ellas. Debido a que la colaboración entre instituciones implica un intercambio de datos, o de tiempo de computación.
En la computación en malla, las redes pueden ser vistas como una forma de computación distribuida donde una “supercomputadora virtual” se compone por una serie de computadores agrupadas para realizar tareas. Pueden ser un apoyo importante en la inteligencia artificial y el aprendizaje automático, al permitir la creación de redes de dispositivos que pueden trabajar juntos para procesar grandes volúmenes de datos y ejecutar algoritmos en tiempo real.
Ese tipo de arquitectura al funcionar como una supercomputadora virtual puede ejecutar tareas de gran envergadura, como el análisis de conjuntos de datos de gran tamaño o la creación de modelos meteorológicos. A través de la Nube, se pueden crear y utilizar extensas mallas para determinados fines y durante períodos de tiempo específicos. Así, se ahorra tiempo y el gasto que supondría comprar e implementar los recursos. Además, al dividir las tareas en varias máquinas, el tiempo de procesamiento se reduce notablemente para aumentar la eficacia y minimizar el derroche de recursos.
¿Qué es la computación en malla?
Se le llama malla al sistema de computación distribuido que permite compartir recursos no centrados geográficamente para resolver problemas de gran escala. Los recursos compartidos son equipos de cómputo (computadoras personales, estaciones de trabajo, supercomputadoras, laptop, smartphones, sensores y otros), software, datos e información, instrumentos especiales (radio, telescopios, y otros) y personas. Cada dispositivo actúa como un nodo de la red y puede comunicarse directamente con otros nodos. Los nodos pueden colaborar para realizar tareas complejas de procesamiento y almacenamiento de datos, lo que permite un mayor aprovechamiento de los recursos disponibles en la red.
Ese tipo de arquitectura ofrece ventajas frente a otras tecnologías alternativas. La potencia que ofrecen multitud de computadoras conectadas en red usando una malla es prácticamente ilimitada. Además, ofrece una perfecta integración de sistemas y dispositivos heterogéneos, por lo que las conexiones entre diferentes máquinas no generarán ningún problema. Se trata de una solución altamente escalable, potente y flexible, al evitar problemas de falta de recursos (cuellos de botella). Nunca queda obsoleta, debido a la posibilidad de modificar el número y características de sus componentes.
Los recursos se distribuyen en la red de forma transparente, pero siguiendo normas de seguridad y políticas de gestión, tanto técnicas como económicas. Su objetivo es compartir recursos en la red de manera uniforme, segura, transparente, eficiente y fiable. Ofrece un único punto de acceso a un conjunto de recursos distribuidos geográficamente en diferentes dominios de administración.
¿Cómo funciona?
El funcionamiento de la computación en malla requiere de un middleware (aplicación de software especializada que conecta recursos de computación en operaciones de malla con aplicaciones de alto nivel) y nodos para asegurar la comunicación entre los equipos distribuidos. Otro de los elementos es el motor de búsqueda, que no solo sirve para encontrar los datos que se necesiten, sino también para encontrar las herramientas para analizar esos datos, y el poder de cómputo necesario para realizar las operaciones.
El diseño de una malla comienza con la instalación de un software en los equipos cliente. Éste es el encargado de descargar un fragmento de la tarea del proyecto cuando una computadora no se esté usando, o no esté utilizando algún recurso sin interferir en el trabajo del usuario. Una vez que el proceso termina, el software enviará los resultados a un servidor central y comenzará la descarga del siguiente fragmento de la tarea que se debe realizar. Mientras más usuarios instalen el software en sus equipos, más elementos son añadidos a la red y el proceso de cálculo se vuelve más rápido.
Cuales son virtudes y limitaciones
Ventajas y requisitos
La computación en malla supone un avance respecto a la World Wide Web, esta última proporciona un acceso transparente a informaciones que están almacenadas en millones de computadoras repartidas por todo el mundo. Frente a ello, la red en malla es una infraestructura que proporciona acceso transparente a potencia de cómputo y capacidad de almacenamiento distribuida.
Una malla debe cumplir los siguientes requisitos: los datos deben compartirse entre usuarios con intereses distintos. Se deben enlazar los centros principales de supercomputación, no solo las computadoras. Se debe asegurar que los datos sean accesibles en cualquier lugar y en cualquier momento. Debe armonizar las distintas políticas de gestión de muchos centros diferentes. Debe proporcionar seguridad. Todo eso se dice fácilmente, pero no lo es a la hora de materializarlo.
Beneficios de utilizar computación en malla:
- Proporciona un mecanismo de colaboración transparente entre grupos dispersos, tanto científicos como comerciales.
- Posibilita el funcionamiento de aplicaciones a gran escala.
- Facilita el acceso a recursos distribuidos desde las computadoras.
- Coordinación y gestión de procesos y tareas entre dispositivos.
- Escalado económico de los procesos de la empresa mediante potencia de cálculo y capacidades de almacenamiento acopladas.
- Procesamiento simultáneo/paralelo, análisis y presentación de grandes cantidades de datos a través de redes informáticas globales.
- Las tareas complejas pueden resolverse con mayor rapidez y eficacia.
Esos beneficios tendrán repercusión en los siguientes campos:
- Medicina (imágenes, diagnósticos y tratamiento).
- Bioinformática (estudios en genómica y proteómica).
- Nanotecnología (diseño de nuevos materiales a escala molecular).
- Ingeniería (diseño, simulación, análisis de fallos y acceso remoto a instrumentos de control).
- Recursos naturales y medio ambiente (previsión meteorológica, observación de cuerpos celestes, modelos y predicción de sistemas complejos).
No obstante, la computación en malla presenta algunos inconvenientes:
- Recursos heterogéneos: la red debe ser capaz de poder manejar cualquier tipo de recurso que maneje el sistema, si no resultará totalmente inútil.
- Descubrimiento, selección, reserva, asignación, gestión y monitorización de recursos son procesos que deben controlarse externamente y que influyen en el funcionamiento de la red.
- Necesidad de desarrollo de aplicaciones para manejar la red, así como desarrollo de modelos eficientes de uso.
- Comunicación: lenta y no uniforme.
- Organizativos: dominios de administración, modelo de explotación y costos, política de seguridad…
- Económicos: precio de los recursos, oferta/demanda
- En algunos casos, administración compleja y componentes de sistema incompatibles.
- La potencia de cálculo no aumenta linealmente con el número de computadoras acopladas.
Ejemplos de computación en malla
Existen muchos proyectos que han sido desarrollados en esta línea, tales como Edonkey, Emule o Limewire. Una primera experiencia fue GriPhyN, para unir nodos en el proceso de físicas de altas energías en Estados Unidos.
Otro proyecto también muy conocido fue SETI@home, el que llegó a contar con miles de computadoras repartidos por el mundo, las que cedían tiempo de sus procesadores para analizar señales buscando patrones inteligentes extraterrestres. Esta arquitectura se ha utilizado en centros de investigación en proyectos que abarcan la Física de Partículas, la Astrofísica y la Biología.
¿Qué es la computación distribuida?
La computación distribuida se refiere a una computación distribuida donde los componentes de software se comparten entre un grupo de computadoras en red. Sin embargo, los usuarios que utilicen el software verán una única interfaz coherente. Por ejemplo, un motor de búsqueda web es un sistema de computación distribuida. Le permite buscar en un sitio web específico enviando la solicitud a varios servidores.
Computación distribuida frente a la distribución en malla
La computación distribuida tiene como objetivo lograr un solo objetivo en cualquier momento. Por el contrario, la computación en malla no actúa de manera cohesiva sino que asigna recursos en su red para múltiples subáreas relacionadas. Una red de computación en malla puede constar de varios sistemas de computación distribuida.
¿Qué es la computación en clúster?
La computación en clúster describe un sistema de red compuesto por computadoras homogéneas. Las computadoras homogéneas tienen el mismo hardware y software. Puede conectarlos a una red local de alta velocidad para crear un clúster de computadoras que ejecute tareas similares. Un servidor centralizado controla y coordina las máquinas.
La computación en clúster en comparación con la computación en red
La computación en clúster tiene hardware, tareas y estructura de control rígidos y específicos. Mientras tanto, la computación en malla es flexible en términos de recursos compartidos. Las computadoras en una red en malla funcionan de manera independiente y no están obligadas a compartir recursos. Tienen un administrador de recursos que comparte los recursos no utilizados durante el tiempo de ejecución.
¿Qué diferencia hay entre computación en malla y la computación en la nube?
No se deben confundir esos dos conceptos. En la computación en malla se conectan múltiples recursos acoplando de manera descentralizada las computadoras, creando así una supercomputadora virtual. En ese caso, los proveedores de la red son los propietarios de las infraestructuras de computadoras y aplicaciones en red. En la computación en la nube, en cambio, los proveedores de la nube ofrecen servicios informáticos, capacidades de almacenamiento y servicios globales mediante el alojamiento en la nube, pero organizan la computación de manera centralizada en la nube.
Las ventajas de la computación en la nube son, entre otras, las infraestructuras informáticas externalizadas y escalables, las capacidades del almacenamiento en la nube y un menor esfuerzo informático. Los usuarios pueden usar los servicios en la nube para distintas tareas de manera centralizada sin tener que disponer de recursos propios. La computación en malla, en cambio, presenta la ventaja de que puede procesar, ejecutar y acceder a enormes cantidades de datos y complejos procesos de manera económica mediante capacidades acopladas a la red sin tener centros de datos físicos propios.
Mientras que computación en malla distribuye procesos entre los recursos acoplados de manera descentralizada, la computación en la nube recurre a servidores centralizados alojados en la nube.
Campos de aplicación
Se pueden definir cinco áreas de trabajo determinadas por las necesidades de cálculo, espacio para el almacenamiento de los datos y tiempo de respuesta.
- Supercomputación distribuida: Se encuentran las aplicaciones que es imposible satisfacer en un único nodo, ya que las necesidades de éstas se dan en instantes de tiempo determinados y consumen muchos recursos. Algunos ejemplos son las simulaciones, herramientas de cálculo numérico, procesos de análisis de datos, extracción de conocimiento de almacenes de datos, entre otras. Se puede afirmar que la computación en malla “crea” una máquina capaz de resolver problemas que solo una supercomputadora podría resolver.
- Sistemas distribuidos en tiempo real: hay aplicaciones que generan datos a altas velocidades en tiempo real, por lo que es necesario que éstos sean procesados en tiempo real, tal como los experimentos de física de alta energía, control remoto de equipos médicos de alta precisión, y otros. La computación en malla cuenta con los recursos físicos necesarios para cumplir con esas necesidades.
- Proceso intensivo de datos: Los sistemas de bases de datos distribuidos requieren de un gran espacio de almacenamiento y en muchos casos no se dispone de el en una sola computadora. La computación en malla incrementa la capacidad de almacenamiento, sin aumentar costos. Los datos se distribuyen alrededor de toda la maya.
- Entornos virtuales de colaboración: esa es un área asociada a la teleinmersión, donde se aprovechan los grandes recursos que ofrece la computación en malla para generar entornos 3D distribuidos.
- Servicios puntuales: en este caso se ofrecen recursos que una entidad considera no necesarios, por lo que la computación en malla puede ofrecerlos sin que la organización deba adquirirlos por sí misma.
Referencias
- Computación en malla. AWS. https://aws.amazon.com/es/what-is/grid-computing/
- Computación en malla. Wikipedia. https://es.wikipedia.org/wiki/Computaci%C3%B3n_en_malla
- ¿Qué es computación en malla? Ganco. https://gamco.es/glosario/computacion-en-red/
- ¿Qué es el Grid Computing? Digital Guide IONOS. https://www.ionos.com/es-us/digitalguide/servidores/know-how/grid-computing/
- ¿Qué es la computación en malla? https://azure.microsoft.com/es-es/resources/cloud-computing-dictionary/what-is-grid-computing