La computación grid es el uso de recursos informáticos ampliamente distribuidos para alcanzar un objetivo común. Se puede considerar una red informática como un sistema distribuido con cargas de trabajo no interactivas que involucran muchos archivos. La computación grid se distingue de los sistemas informáticos convencionales de alto rendimiento, como la computación en clúster , en que las computadoras grid tienen cada nodo configurado para realizar una tarea/aplicación diferente. Las computadoras grid también tienden a ser más heterogéneas y geográficamente dispersas (por lo tanto, no están físicamente acopladas) que las computadoras cluster. [1] Aunque se puede dedicar una única cuadrícula a una aplicación particular, comúnmente se utiliza una cuadrícula para una variedad de propósitos. Las grillas a menudo se construyen con bibliotecas de software middleware de grillas de uso general . Los tamaños de cuadrícula pueden ser bastante grandes. [2]
Los grids son una forma de computación distribuida compuesta por muchas computadoras en red débilmente acopladas que actúan juntas para realizar grandes tareas. Para determinadas aplicaciones, la computación distribuida o grid puede verse como un tipo especial de computación paralela que se basa en computadoras completas (con CPU, almacenamiento, fuentes de alimentación, interfaces de red, etc.) conectadas a una red informática (privada o pública) mediante una interfaz de red convencional , como Ethernet . Esto contrasta con la noción tradicional de supercomputadora , que tiene muchos procesadores conectados por un bus de computadora local de alta velocidad . Esta tecnología se ha aplicado a problemas científicos, matemáticos y académicos computacionalmente intensivos a través de computación voluntaria , y se utiliza en empresas comerciales para aplicaciones tan diversas como descubrimiento de fármacos , pronóstico económico , análisis sísmico y procesamiento de datos administrativos en apoyo de e- comercio y servicios web .
La computación grid combina computadoras de múltiples dominios administrativos para alcanzar un objetivo común, [3] resolver una sola tarea, y luego puede desaparecer con la misma rapidez. El tamaño de una red puede variar desde pequeña (limitada a una red de estaciones de trabajo informáticas dentro de una corporación, por ejemplo) hasta grandes colaboraciones públicas entre muchas empresas y redes. "La noción de una red confinada también puede conocerse como cooperación entre nodos, mientras que la noción de una red más grande y más amplia puede referirse a una cooperación entre nodos". [4]
Coordinar aplicaciones en Grids puede ser una tarea compleja, especialmente cuando se coordina el flujo de información a través de recursos informáticos distribuidos. Los sistemas de flujo de trabajo de cuadrícula se han desarrollado como una forma especializada de un sistema de gestión de flujo de trabajo diseñado específicamente para componer y ejecutar una serie de pasos computacionales o de manipulación de datos, o un flujo de trabajo, en el contexto de la cuadrícula.
La computación “distribuida” o “grid” en general es un tipo especial de computación paralela que se basa en computadoras completas (con CPU, almacenamiento, fuentes de alimentación, interfaces de red, etc.) conectadas a una red (privada, pública o Internet ). por una interfaz de red convencional que produce hardware básico, en comparación con la menor eficiencia que supone diseñar y construir un pequeño número de supercomputadoras personalizadas. La principal desventaja de rendimiento es que los distintos procesadores y áreas de almacenamiento local no tienen conexiones de alta velocidad. Por tanto, esta disposición es muy adecuada para aplicaciones en las que se pueden realizar múltiples cálculos paralelos de forma independiente, sin la necesidad de comunicar resultados intermedios entre procesadores. [5] La escalabilidad de alto nivel de las redes geográficamente dispersas es generalmente favorable, debido a la baja necesidad de conectividad entre nodos en relación con la capacidad de la Internet pública. [6]
También existen algunas diferencias entre la programación para una supercomputadora y la programación para un sistema de computación grid. Puede resultar costoso y difícil escribir programas que puedan ejecutarse en el entorno de una supercomputadora, que puede tener un sistema operativo personalizado o requerir que el programa resuelva problemas de concurrencia . Si un problema puede paralelizarse adecuadamente, una capa “delgada” de infraestructura “cuadrícula” puede permitir que programas convencionales e independientes, dada una parte diferente del mismo problema, se ejecuten en múltiples máquinas. Esto hace posible escribir y depurar en una única máquina convencional y elimina las complicaciones debidas a múltiples instancias del mismo programa ejecutándose en la misma memoria compartida y espacio de almacenamiento al mismo tiempo.
Una característica de las redes distribuidas es que pueden formarse a partir de recursos informáticos que pertenecen a uno o varios individuos u organizaciones (conocidos como dominios administrativos múltiples ). Esto puede facilitar las transacciones comerciales, como en la informática de servicios públicos , o facilitar el montaje de redes informáticas voluntarias .
Una desventaja de esta característica es que las computadoras que realmente realizan los cálculos pueden no ser del todo confiables. Por lo tanto, los diseñadores del sistema deben introducir medidas para evitar que fallos de funcionamiento o participantes malintencionados produzcan resultados falsos, engañosos o erróneos, y que utilicen el sistema como vector de ataque. Esto a menudo implica asignar trabajo aleatoriamente a diferentes nodos (presumiblemente con diferentes propietarios) y verificar que al menos dos nodos diferentes reporten la misma respuesta para una unidad de trabajo determinada. Las discrepancias identificarían nodos maliciosos y que funcionan mal. Sin embargo, debido a la falta de control central sobre el hardware, no hay forma de garantizar que los nodos no se salgan de la red en momentos aleatorios. Algunos nodos (como computadoras portátiles o clientes de Internet por acceso telefónico ) también pueden estar disponibles para computación pero no para comunicaciones de red durante períodos impredecibles. Estas variaciones se pueden acomodar asignando grandes unidades de trabajo (reduciendo así la necesidad de conectividad de red continua) y reasignando unidades de trabajo cuando un nodo determinado no informa sus resultados en el tiempo esperado.
Otro conjunto de lo que podrían denominarse problemas de compatibilidad social en los primeros días de la computación grid se relacionaba con los objetivos de los desarrolladores de grid de llevar su innovación más allá del campo original de la computación de alto rendimiento y a través de fronteras disciplinarias hacia nuevos campos, como el de la computación de alto rendimiento. Física de la energía. [7]
Los impactos de la confianza y la disponibilidad en el rendimiento y la dificultad del desarrollo pueden influir en la elección de implementar en un clúster dedicado, en máquinas inactivas internas de la organización en desarrollo o en una red externa abierta de voluntarios o contratistas. En muchos casos, los nodos participantes deben confiar en que el sistema central no abusará del acceso que se les otorga, interfiriendo con el funcionamiento de otros programas, alterando la información almacenada, transmitiendo datos privados o creando nuevos agujeros de seguridad. Otros sistemas emplean medidas para reducir la cantidad de confianza que los nodos "cliente" deben depositar en el sistema central, como colocar aplicaciones en máquinas virtuales.
Los sistemas públicos o aquellos que cruzan dominios administrativos (incluidos diferentes departamentos de una misma organización) a menudo resultan en la necesidad de ejecutarse en sistemas heterogéneos , utilizando diferentes sistemas operativos y arquitecturas de hardware . En el caso de muchos idiomas, existe un equilibrio entre la inversión en desarrollo de software y el número de plataformas que pueden soportarse (y, por tanto, el tamaño de la red resultante). Los lenguajes multiplataforma pueden reducir la necesidad de hacer esta compensación, aunque potencialmente a expensas del alto rendimiento en cualquier nodo determinado (debido a la interpretación del tiempo de ejecución o la falta de optimización para la plataforma en particular). Varios proyectos de middleware han creado una infraestructura genérica para permitir que diversos proyectos científicos y comerciales aprovechen una red asociada particular o con el fin de establecer nuevas redes. BOINC es común para varios proyectos académicos que buscan voluntarios públicos; Se enumeran más al final del artículo.
De hecho, el middleware puede verse como una capa entre el hardware y el software. Además del middleware, se deben considerar una serie de áreas técnicas, que pueden o no ser independientes del middleware. Las áreas de ejemplo incluyen gestión de SLA , confianza y seguridad, gestión de organizaciones virtuales , gestión de licencias, portales y gestión de datos. Estas áreas técnicas pueden abordarse en una solución comercial, aunque la vanguardia de cada área a menudo se encuentra dentro de proyectos de investigación específicos que examinan el campo.
Para la segmentación del mercado de computación grid es necesario considerar dos perspectivas: la del proveedor y la del usuario:
El mercado general de redes comprende varios mercados específicos. Estos son el mercado de middleware grid, el mercado de aplicaciones habilitadas para grid, el mercado de computación de servicios públicos y el mercado de software como servicio (SaaS).
El middleware Grid es un producto de software específico que permite compartir recursos heterogéneos y organizaciones virtuales. Se instala e integra en la infraestructura existente de la empresa o empresas involucradas y proporciona una capa especial ubicada entre la infraestructura heterogénea y las aplicaciones de usuario específicas. Los principales middlewares de grid son Globus Toolkit, gLite y UNICORE .
La computación de servicios públicos se conoce como la provisión de computación en red y aplicaciones como servicio, ya sea como una utilidad de red abierta o como una solución de hospedaje para una organización o una VO . Los principales actores en el mercado de la informática de servicios públicos son Sun Microsystems , IBM y HP .
Las aplicaciones habilitadas para la red son aplicaciones de software específicas que pueden utilizar la infraestructura de la red. Esto es posible gracias al uso de middleware grid, como se señaló anteriormente.
El software como servicio (SaaS) es "software que es propiedad de uno o más proveedores, que lo entrega y lo administra de forma remota". ( Gartner 2007) Además, las aplicaciones SaaS se basan en un único conjunto de códigos y definiciones de datos comunes. Se consumen en un modelo de uno a muchos y SaaS utiliza un modelo de pago por uso (PAYG) o un modelo de suscripción basado en el uso. Los proveedores de SaaS no necesariamente poseen los recursos informáticos necesarios para ejecutar su SaaS. Por lo tanto, los proveedores de SaaS pueden recurrir al mercado de la informática de servicios públicos. El mercado de la informática de servicios públicos proporciona recursos informáticos para los proveedores de SaaS.
Para las empresas del lado de la demanda o del usuario del mercado de computación grid, los diferentes segmentos tienen implicaciones significativas para su estrategia de implementación de TI. La estrategia de implementación de TI, así como el tipo de inversiones en TI realizadas, son aspectos relevantes para los usuarios potenciales de la red y desempeñan un papel importante para la adopción de la red.
La búsqueda de CPU , la búsqueda de ciclos o la computación compartida crean una "cuadrícula" a partir de los recursos inactivos en una red de participantes (ya sea mundial o interna de una organización). Por lo general, esta técnica explota los ciclos de instrucción "sobrantes" resultantes de la inactividad intermitente que normalmente ocurre durante la noche, durante las pausas para el almuerzo o incluso durante los (comparativamente minúsculos, aunque numerosos) momentos de espera inactiva que las CPU de escritorio modernas experimentan a lo largo del día ( cuando la computadora está esperando IO del usuario, la red o el almacenamiento ). En la práctica, las computadoras participantes también donan una cierta cantidad de espacio de almacenamiento en disco, RAM y ancho de banda de red, además de la potencia bruta de la CPU. [ cita necesaria ]
Muchos proyectos informáticos voluntarios , como BOINC , utilizan el modelo de eliminación de CPU. Dado que es probable que los nodos se "desconecten" de vez en cuando, ya que sus propietarios utilizan sus recursos para su propósito principal, este modelo debe diseñarse para manejar tales contingencias.
La creación de un entorno oportunista es otra implementación de eliminación de CPU en la que un sistema especial de gestión de carga de trabajo recolecta las computadoras de escritorio inactivas para trabajos de computación intensiva; también se lo conoce como Enterprise Desktop Grid (EDG). Por ejemplo, HTCondor [8] (el marco de software de computación de alto rendimiento y código abierto para la racionalización distribuida de grano grueso de tareas computacionalmente intensivas) se puede configurar para usar solo máquinas de escritorio donde el teclado y el mouse están inactivos para aprovechar de manera efectiva la energía desperdiciada de la CPU. desde estaciones de trabajo que de otro modo estarían inactivas. Al igual que otros sistemas por lotes con todas las funciones, HTCondor proporciona un mecanismo de cola de trabajos, política de programación, esquema de prioridades, monitoreo y gestión de recursos. También se puede utilizar para administrar la carga de trabajo en un grupo de computadoras dedicado o puede integrar sin problemas recursos dedicados (clústeres montados en bastidor) y máquinas de escritorio no dedicadas (búsqueda de ciclos) en un entorno informático.
El término computación grid se originó a principios de la década de 1990 como una metáfora para hacer que la energía informática fuera tan accesible como una red eléctrica . La metáfora de la red eléctrica para la informática accesible rápidamente se volvió canónica cuando Ian Foster y Carl Kesselman publicaron su trabajo fundamental, "The Grid: Blueprint for a new Computing Infrastructure" (1999). Esto fue precedido durante décadas por la metáfora de la informática de utilidad (1961): la informática como una utilidad pública, análoga al sistema telefónico. [9] [10]
La búsqueda de CPU y la computación voluntaria se popularizaron a partir de 1997 por distribuido.net y más tarde en 1999 por SETI@home para aprovechar el poder de las PC conectadas en red en todo el mundo, con el fin de resolver problemas de investigación que requieren un uso intensivo de CPU. [11] [12]
Las ideas de la red (incluidas las de la computación distribuida, la programación orientada a objetos y los servicios web) fueron reunidas por Ian Foster y Steve Tuecke de la Universidad de Chicago , y Carl Kesselman del Instituto de Ciencias de la Información de la Universidad del Sur de California. . [13] El trío, que lideró el esfuerzo para crear Globus Toolkit, es ampliamente considerado como los "padres de la red". [14] El conjunto de herramientas incorpora no solo gestión informática sino también gestión de almacenamiento , aprovisionamiento de seguridad, movimiento de datos, monitoreo y un conjunto de herramientas para desarrollar servicios adicionales basados en la misma infraestructura, incluida la negociación de acuerdos, mecanismos de notificación, servicios de activación y agregación de información. [15] Si bien Globus Toolkit sigue siendo el estándar de facto para crear soluciones de red, se han creado otras herramientas que responden a algún subconjunto de servicios necesarios para crear una red empresarial o global. [ cita necesaria ]
En 2007 , se hizo popular el término computación en la nube , que es conceptualmente similar a la definición canónica de Foster de computación en red (en términos de recursos informáticos que se consumen como la electricidad proviene de la red eléctrica ) y a la computación de servicios públicos anterior.
En noviembre de 2006, Seidel recibió el premio Sidney Fernbach en la Conferencia de Supercomputación en Tampa, Florida . [16] "Por sus destacadas contribuciones al desarrollo de software para HPC y computación Grid para permitir la investigación numérica colaborativa de problemas complejos en física; en particular, modelado de colisiones de agujeros negros". [17] Este premio, que es uno de los más altos honores en informática, fue otorgado por sus logros en relatividad numérica.
Además, en marzo de 2019, la red Bitcoin tenía una potencia informática medida equivalente a más de 80.000 exaFLOPS (operaciones de punto flotante por segundo). [25] Esta medida refleja el número de FLOPS necesarios para igualar la producción de hash de la red Bitcoin en lugar de su capacidad para operaciones aritméticas generales de punto flotante, ya que los elementos de la red Bitcoin ( ASIC de minería de Bitcoin ) realizan solo el hash criptográfico específico. cálculo requerido por el protocolo Bitcoin .
La computación grid ofrece una forma de resolver problemas del Gran Desafío , como el plegamiento de proteínas , la modelización financiera , la simulación de terremotos y la modelización climática / meteorológica , y fue fundamental para habilitar el Gran Colisionador de Hadrones en el CERN. [26] Las cuadrículas ofrecen una forma de utilizar de manera óptima los recursos de tecnología de la información dentro de una organización. También proporcionan un medio para ofrecer tecnología de la información como un servicio público para clientes comerciales y no comerciales, pagando esos clientes sólo por lo que usan, como la electricidad o el agua.
En octubre de 2016, más de 4 millones de máquinas que ejecutan la plataforma de código abierto Berkeley Open Infrastructure for Network Computing (BOINC) son miembros de World Community Grid . [19] Uno de los proyectos que utiliza BOINC es SETI@home , que utilizaba más de 400.000 computadoras para lograr 0,828 TFLOPS en octubre de 2016. En octubre de 2016, Folding@home , que no forma parte de BOINC, logró más de 101 x86. -petaflops equivalentes en más de 110.000 máquinas. [18]
La Unión Europea financió proyectos a través de los programas marco de la Comisión Europea . BEinGRID (Business Experiments in Grid) fue un proyecto de investigación financiado por la Comisión Europea [27] como proyecto integrado en el marco del programa de patrocinio del Sexto Programa Marco (6PM). Iniciado el 1 de junio de 2006, el proyecto duró 42 meses, hasta noviembre de 2009. El proyecto fue coordinado por Atos Origin . Según la ficha técnica del proyecto, su misión es "establecer rutas efectivas para fomentar la adopción de la computación grid en toda la UE y estimular la investigación sobre modelos de negocio innovadores que utilicen tecnologías Grid". Para extraer las mejores prácticas y temas comunes de las implementaciones experimentales, dos grupos de consultores están analizando una serie de pilotos, uno técnico y otro empresarial. El proyecto es importante no sólo por su larga duración sino también por su presupuesto, que con 24,8 millones de euros es el mayor de cualquier proyecto integrado del VI PM. De ellos, 15,7 millones los aporta la Comisión Europea y el resto sus 98 empresas socias contribuyentes. Desde la finalización del proyecto, los resultados de BEinGRID han sido retomados y llevados adelante por IT-Tude.com.
El proyecto Enabling Grids for E-sciencE, con sede en la Unión Europea e incluía sitios en Asia y Estados Unidos, fue un proyecto de seguimiento del European DataGrid (EDG) y evolucionó hasta convertirse en la European Grid Infrastructure . Este, junto con el Worldwide LHC Computing Grid [28] (WLCG), se desarrolló para respaldar experimentos utilizando el Gran Colisionador de Hadrones del CERN . Se puede encontrar en línea una lista de sitios activos que participan dentro de WLCG [29] , al igual que el monitoreo en tiempo real de la infraestructura de EGEE. [30] El software y la documentación pertinentes también son de acceso público. [31] Se especula que los enlaces de fibra óptica dedicados, como los instalados por el CERN para abordar las necesidades intensivas de datos del WLCG, algún día podrían estar disponibles para los usuarios domésticos, proporcionando así servicios de Internet a velocidades hasta 10.000 veces más rápidas que una banda ancha tradicional. conexión. [32] La infraestructura Grid europea también se ha utilizado para otras actividades de investigación y experimentos, como la simulación de ensayos clínicos oncológicos. [33]
El proyecto distribuido.net se inició en 1997. La instalación de supercomputación avanzada (NAS) de la NASA ejecutó algoritmos genéticos utilizando el limpiador de ciclos Condor que se ejecuta en aproximadamente 350 estaciones de trabajo Sun Microsystems y SGI .
En 2001, United Devices operó el Proyecto de Investigación del Cáncer de United Devices basado en su producto Grid MP , que busca en ciclos en PC voluntarias conectadas a Internet. El proyecto funcionó con alrededor de 3,1 millones de máquinas antes de su cierre en 2007. [34]
Hoy en día existen muchas definiciones de computación grid :
Lista de proyectos de computación grid