Desarrollador(es) | Compañía Apple Inc. |
---|---|
Lanzamiento inicial | 6 de enero de 2004 [1] |
Versión final | 10.7.5 / 4 de octubre de 2012 ( 04-10-2012 ) |
Sistema operativo | Sistema operativo Mac X |
Plataforma | Independiente |
Tipo | Computación distribuida |
Licencia | Acuerdo de licencia de usuario final (EULA) propietario [2] |
Sitio web | Página de inicio en Wayback Machine (archivada el 2 de enero de 2006) |
Xgrid es un programa y protocolo de computación en red patentado desarrollado por la subdivisión Advanced Computation Group de Apple Inc. [ 3]
Proporciona a los administradores de red un método para crear un clúster de computación , que les permite explotar la potencia computacional no utilizada anteriormente para cálculos que se pueden dividir fácilmente en operaciones más pequeñas, como los mapas de Mandelbrot . La configuración de un clúster Xgrid se puede lograr casi sin costo, ya que el cliente Xgrid está preinstalado en todas las computadoras que ejecutan Mac OS X 10.4 a Mac OS X 10.7 . El cliente Xgrid no estaba incluido en Mac OS X 10.8 . El controlador Xgrid, el programador de trabajos de la operación Xgrid, también está incluido en Mac OS X Server y como una descarga gratuita de Apple. Apple ha mantenido minimalista el mecanismo de control de trabajos de línea de comandos al tiempo que proporciona una API para desarrollar herramientas más sofisticadas construidas a su alrededor.
El programa utiliza su propio protocolo de comunicación superpuesto a un esquema para comunicarse con otros nodos. Este protocolo de comunicación interactúa con la infraestructura BEEP , un marco de protocolo de aplicación de red . Las computadoras descubiertas por el sistema Xgrid, es decir, las computadoras con el servicio Xgrid de Mac OS X habilitado, se agregan automáticamente a la lista de computadoras disponibles para usar en tareas de procesamiento.
Cuando el ordenador iniciador envía las instrucciones completas, o trabajo , para su procesamiento al controlador , el controlador divide la tarea en estos pequeños paquetes de instrucciones , conocidos como tareas . El diseño del sistema Xgrid consiste en que estos pequeños paquetes se transfieren a todos los ordenadores habilitados para Xgrid en la red. Estos ordenadores, o nodos , ejecutan las instrucciones proporcionadas por el controlador y luego devuelven los resultados. El controlador reúne los resultados de las tareas individuales en los resultados del trabajo completo y los devuelve al ordenador iniciador.
Apple diseñó Xgrid basándose en el programa Zilla, distribuido con la interfaz de programación de aplicaciones ( API ) del sistema operativo OpenStep de NeXT , cuyos derechos poseía Apple. La compañía también optó por proporcionar la versión cliente de Mac OS X únicamente con funciones de línea de comandos y poca flexibilidad, mientras que le dio a la versión Mac OS X Server de Xgrid un panel de control GUI y un conjunto completo de funciones.
Los orígenes de Xgrid se remontan a la aplicación Zilla de NeXT creada por el científico Richard Crandall a finales de los años 1980. Zilla fue el primer programa informático distribuido lanzado en un sistema operativo de usuario final y que utilizó el motivo del protector de pantalla inactivo, una característica de diseño que desde entonces se encuentra en proyectos ampliamente utilizados como Seti@Home . [1] [4] Zilla ganó el Premio Nacional Computerworld Smithsonian (Categoría Ciencia) en 1991 por facilidad de uso y buen diseño. [5] Apple adquirió Zilla junto con el resto de NeXT en 1997, [6] y utilizó Zilla como inspiración para Xgrid. [1] Xgrid Technology Preview 1 fue lanzado en enero de 2004, [7] [3] [8] seguido por Technology Preview 2 en noviembre de 2004. Xgrid 1.0 fue lanzado como parte de Mac OS X 10.4 Tiger en abril de 2005. [8]
Varias organizaciones han adoptado Xgrid en grandes redes informáticas internacionales. Un ejemplo de un clúster Xgrid es OpenMacGrid de MacResearch, donde los científicos pueden solicitar acceso a grandes cantidades de potencia de procesamiento para ejecutar tareas relacionadas con su investigación. [9] [10] Otro fue el ahora desaparecido proyecto Xgrid@Stanford, que utilizaba una serie de ordenadores en el campus de la Universidad de Stanford y en todo el mundo [11] para realizar investigaciones bioquímicas. [12] [13] [14]
En un informe que cubría el anuncio, Macworld citó a Xgrid entre las características de Unix en "10 cosas que debe saber sobre Tiger", llamándolo "útil si trabaja con grandes cantidades de datos experimentales o renderiza animaciones complejas". [15] Después de la introducción de Xgrid en 2004, InfoWorld señaló que era una "tecnología de nivel 'de vista previa'" que se beneficiaría directamente del lanzamiento del Xserve G5 más tarde ese año. [16] El comentarista de InfoWorld Ephraim Schwartz también predijo que Xgrid era un movimiento de apertura en la entrada de Apple en el mercado de la informática empresarial. [17] [8]
Apple suspendió Xgrid con OS X 10.8 Mountain Lion , [18] junto con servicios dependientes como Podcast Producer. [19] [20]
El protocolo Xgrid utiliza el marco de red BEEP para comunicarse con los nodos de la red. La infraestructura del sistema incluye tres tipos de computadoras que se comunican a través del protocolo:
Una computadora puede actuar como uno o los tres componentes al mismo tiempo. El protocolo Xgrid proporciona la infraestructura básica para que las computadoras se comuniquen , pero no está involucrado en el procesamiento del cálculo especificado. [22] Xgrid está orientado a cálculos que consumen mucho tiempo y que se pueden separar fácilmente en tareas más pequeñas, a veces llamadas tareas vergonzosamente paralelas . [23] Esto incluye cálculos de Monte Carlo , renderizado 3D y mapas de Mandelbrot . [22]
Dentro del protocolo Xgrid, se pueden pasar tres tipos de mensajes a otras computadoras en el mismo clúster : solicitudes, notificaciones y respuestas. Las solicitudes deben ser respondidas por el destinatario con una respuesta, las notificaciones no requieren una respuesta y las respuestas son respuestas a mensajes enviados. Se identifican por su nombre , tipo (solicitud/notificación/respuesta) y contenido. Cada mensaje se encapsula en un mensaje BEEP (BEEP MSG) y se reconoce al recibirlo mediante una respuesta vacía (RPY). [7] Xgrid no aprovecha la infraestructura de mensajes/respuestas de BEEP. Cualquier mensaje recibido que requiera una respuesta simplemente genera un mensaje BEEP independiente que contiene la respuesta. Los mensajes de Xgrid se codifican como diccionarios de pares clave/valor que se convierten a XML antes de enviarse a través de la red BEEP.
La arquitectura del sistema Xgrid está diseñada en torno a un sistema basado en trabajos; el controlador envía trabajos a los agentes y los agentes devuelven las respuestas. El cálculo real que ejecuta el controlador en un sistema Xgrid se conoce como trabajo. El trabajo contiene todos los archivos necesarios para completar la tarea con éxito, como los parámetros de entrada , archivos de datos , directorios , ejecutables y/o scripts de shell ; los archivos incluidos en un trabajo Xgrid deben poder ejecutarse de forma simultánea o asincrónica, o se pierden los beneficios de ejecutar dicho trabajo en un Xgrid. Una vez que se completa el trabajo, el controlador puede configurarse para notificar al cliente sobre la finalización o el fracaso de la tarea, por ejemplo, por correo electrónico . El cliente puede abandonar la red mientras se ejecutan las tareas. También puede monitorear el estado del trabajo a pedido consultando al controlador, aunque no puede rastrear el progreso en curso de las tareas individuales. [24] [8]
El controlador es fundamental para el correcto funcionamiento de un Xgrid, ya que este nodo es responsable de la distribución, supervisión y coordinación de tareas en los agentes. El programa que se ejecuta en el controlador puede asignar y reasignar tareas para gestionar fallos de agentes individuales a demanda. La cantidad de tareas asignadas a un agente depende de dos factores: la cantidad de agentes en un Xgrid y la cantidad de procesadores en cada nodo. La cantidad de agentes en un Xgrid determina cómo el controlador asignará las tareas. Las tareas pueden asignarse simultáneamente para una gran cantidad de agentes o ponerse en cola para una pequeña cantidad de agentes. Cuando se detecta un nodo con más de un procesador en un Xgrid, el controlador puede asignar una tarea por procesador; esto solo ocurre si la cantidad de agentes en la red es menor que la cantidad de tareas que el controlador debe completar. [24]
Xgrid se basa en el protocolo de intercambio extensible en bloques (BEEP), un estándar de la IETF comparable a HTTP , pero centrado en la comunicación multiplexada bidireccional, como la que se encuentra en las redes peer to peer . BEEP, a su vez, utiliza XML para definir perfiles para la comunicación entre múltiples agentes a través de una única red o conexión a Internet. [25]
El software del agente Xgrid estaba disponible para sistemas Unix y Linux . [26]
Si bien es posible acceder a Xgrid desde la línea de comandos, la interfaz gráfica de usuario de Xgrid, un programa incluido con Mac OS X Server y, a partir de marzo de 2009, disponible en línea, es una forma mucho más eficiente de administrar un sistema Xgrid. Originalmente, el agente Xgrid se incluía en todas las instalaciones de Mac OS X 10.4 Tiger , pero la GUI estaba reservada para los usuarios de Mac OS X Server . Esta decisión limitó los esfuerzos de la comunidad informática para adoptar la plataforma. Finalmente, Apple lanzó al público las herramientas de administración de Mac OS X Server, que incluían la aplicación de administración Xgrid incluida con Mac OS X Server. [27]
A pesar de la falta de una interfaz gráfica de controlador en la distribución estándar (no servidor) de Mac OS X , es posible configurar un controlador Xgrid a través de las herramientas de línea de comandosxgridctl
y xgrid
. Una vez que el demonio del controlador Xgrid está en ejecución, es posible administrar la red con la herramienta Xgrid Admin de Apple . [27] Algunas aplicaciones, como VisualHub, proporcionaron la capacidad de controlador Xgrid a través de sus interfaces de usuario. [28] [29]
{{cite conference}}
: CS1 maint: DOI inactivo a partir de noviembre de 2024 ( enlace )