Xgrid

Summary

Xgrid[1]​ es un programa y protocolo propietario de computación en malla desarrollado por la subdivisión Advanced Computation Group[2]​ de Apple Inc.[3]

Xgrid
Información general
Tipo de programa Informática distribuida
Desarrollador Apple, Inc
Lanzamiento inicial 10.7.5 / 4 de octubre de 2012; hace 12 años
Discontinuación 25 de julio de 2012
Licencia EULA
Información técnica
Plataformas admitidas Independiente
Enlaces
Sitio web oficial

Proporciona a los administradores de red un método para crear un clúster informático, lo que les permite explotar una potencia de cálculo hasta ahora desaprovechada para cálculos que pueden dividirse fácilmente en operaciones más pequeñas, como los mapas de Mandelbrot. La configuración de un clúster Xgrid puede realizarse sin apenas coste, ya que el cliente Xgrid está preinstalado en todos los ordenadores que ejecutan Mac OS X 10.4 a Mac OS X 10.7. El cliente Xgrid no se incluyó en Mac OS X 10.8. El controlador Xgrid, el programador de trabajos de la operación Xgrid, también se incluye en Mac OS X Server y como descarga gratuita de Apple. Apple ha mantenido minimalista el mecanismo de control de trabajos de la línea de comandos, al tiempo que proporciona una API para desarrollar herramientas más sofisticadas construidas a su alrededor.

El programa emplea su propio protocolo de comunicación sobre un esquema para comunicarse con otros nodos. Este protocolo de comunicación interactúa con la infraestructura BEEP, un marco de protocolos de aplicación de red. Las computadoras descubiertas por el sistema Xgrid, es decir, las computadoras con el servicio Xgrid de Mac OS X activado, se añaden automáticamente a la lista de computadoras disponibles para realizar tareas de procesamiento.

Cuando la computadora iniciadora envía las instrucciones completas, o trabajo, para su procesamiento al controlador, éste 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 todas las computadoras de la red habilitados para Xgrid. Estas computadoras, o nodos, ejecutan las instrucciones proporcionadas por el controlador y devuelven los resultados. El controlador ensambla los resultados de las tareas individuales en los resultados del trabajo completo y los devuelve al ordenador iniciador.

Apple modeló el diseño de Xgrid a partir del programa Zilla, distribuido con la interfaz de programación de aplicaciones (API) del sistema operativo OpenStep de NeXT, cuyos derechos poseía. La empresa también optó por dotar a la versión cliente de Mac OS X únicamente de funciones de línea de comandos y poca flexibilidad, mientras que dotó a la versión Mac OS X Server de Xgrid de un panel de control GUI y un conjunto completo de funciones.

Historia

editar

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 ochenta. Zilla fue el primer programa de computación distribuida lanzado en un sistema operativo de usuario final y que utilizaba el motivo del salvapantallas 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 Award (categoría Ciencia) en 1991 por su 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 se publicó en enero de 2004,[3][7][8]​ seguido de Technology Preview 2 en noviembre de 2004. Xgrid 1.0 se lanzó 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 clúster Xgrid es el 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 ya desaparecido proyecto Xgrid@Stanford, que utilizaba una serie de computadoras del campus de la Universidad de Stanford y de todo el mundo[11]​ para realizar investigaciones bioquímicas.[12][13][14]

En un informe que cubría el anuncio, Macworld citaba Xgrid entre las características Unix en «10 Things to Know about Tiger», calificándolo de «práctico si trabajas con enormes cantidades de datos experimentales o renderizas animaciones complejas».[15]​ Tras la presentación de Xgrid en 2004, InfoWorld señaló que se trataba de una «tecnología de grado “preview”» que se beneficiaría directamente del lanzamiento del Xserve G5 a finales de 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.[8][17]

Apple interrumpió Xgrid con OS X 10.8 Mountain Lion,[18]​ junto con servicios dependientes como Podcast Producer.[19][20]

Protocolo

editar
 
Protocolo Xgrid

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 ordenadores que se comunican a través del protocolo:

  • El cliente, que envía trabajos de cálculo al controlador
  • El controlador, que divide los trabajos en tareas y las asigna a los agentes.
  • Los agentes, que procesan la parte del cálculo que les ha sido asignada y devuelven los resultados al controlador, que a su vez los devuelve al cliente.[8][21]

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 interviene en el procesamiento del cálculo especificado.[22]​ Xgrid está orientado a cálculos que consumen mucho tiempo y que pueden segregarse fácilmente en tareas más pequeñas, a veces denominadas tareas embarazosamente paralelas.[23]​ Esto incluye cálculos Montecarlo, renderizado 3D y mapas de Mandelbrot.[22]

Dentro del protocolo Xgrid, se pueden transmitir tres tipos de mensajes a otras computadoras del mismo clúster: solicitudes, notificaciones y respuestas. Las solicitudes deben ser respondidas por el destinatario con una respuesta, las notificaciones no requieren 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 acusa recibo mediante una respuesta vacía (RPY).[7]​ Xgrid no aprovecha la infraestructura de mensajes/respuestas BEEP. Cualquier mensaje recibido que requiera una respuesta simplemente genera un mensaje BEEP independiente que contiene la respuesta. Los mensajes Xgrid se codifican como diccionarios de pares clave/valor que se convierten a XML antes de ser enviados a través de la red BEEP.

Arquitectura

editar

La arquitectura del sistema Xgrid está diseñada en torno a un sistema basado en tareas: el controlador envía tareas a los agentes y éstos devuelven las respuestas. El cálculo real que el controlador ejecuta en un sistema Xgrid se conoce como trabajo (task). 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 shell scripts, los archivos incluidos en un trabajo Xgrid debe ser capaz de ejecutarse simultáneamente o de forma asíncrona, o cualquier beneficio de la ejecución de un trabajo de este tipo en un Xgrid se pierde. Una vez finalizado el trabajo, el controlador puede configurarse para notificar al cliente la finalización o el fallo de la tarea, por ejemplo por correo electrónico. El cliente puede abandonar la red mientras se ejecutan las tareas. También puede monitorizar el estado del trabajo bajo demanda consultando al controlador, aunque no puede seguir el progreso de tareas individuales.[8][24]

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 hacer frente a fallos individuales de los agentes bajo demanda. El número de tareas asignadas a un agente depende de dos factores: el número de agentes en un Xgrid y el número de procesadores en cada nodo. El número de agentes en un Xgrid determina cómo asignará las tareas el controlador. Las tareas pueden asignarse simultáneamente para un gran número de agentes, o en cola para un pequeño número 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 sólo ocurre si el número de agentes en la red es inferior al número de tareas que el controlador tiene que completar.[24]

Xgrid se basa en el Protocolo de Intercambio Extensible de Bloques (BEEP, por sus siglas en inglés), un estándar del IETF comparable a HTTP, pero centrado en la comunicación bidireccional multiplexada, como la que se da en las redes peer-to-peer. BEEP, a su vez, utiliza XML para definir perfiles de 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]

Interfaz

editar

Aunque es posible acceder a Xgrid desde la línea de comandos, la interfaz gráfica de usuario Xgrid, un programa incluido con Mac OS X Server y, desde 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 interfaz gráfica de usuario se reservaba a los usuarios de Mac OS X Server. Esta decisión limitó los esfuerzos de la comunidad informática por adoptar la plataforma. Finalmente, Apple puso a disposición del público las herramientas de administración de Mac OS X Server, que incluían la aplicación de administración de 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 comandos xgridctl y xgrid. Una vez que el demonio controlador de Xgrid se está ejecutando, es posible la administración de la red con la herramienta Xgrid Admin de Apple.[27]​ Algunas aplicaciones, como VisualHub, proporcionan la capacidad de controlador Xgrid a través de sus interfaces de usuario.[28][29]

Referencias

editar
  1. a b c «Mac OS X Manual Page For xgrid(1)». web.archive.org. 25 de julio de 2008. Consultado el 28 de febrero de 2025. 
  2. «"Mac OS X 10.5 SLA"». Apple Inc. 2005. 
  3. a b «Apple posts Xgrid intro». Macworld (en inglés). Consultado el 28 de febrero de 2025. 
  4. «MacTech | The journal of Apple technology.». preserve.mactech.com. Consultado el 28 de febrero de 2025. 
  5. «2005 Computerworld Honors Program». web.archive.org. 16 de julio de 2011. Consultado el 28 de febrero de 2025. 
  6. «Becoming Steve Jobs». Wikipedia (en inglés). 11 de octubre de 2023. 
  7. a b «Simple.: XGrid agent for Unix architectures». web.archive.org. 10 de marzo de 2008. Consultado el 28 de febrero de 2025. 
  8. a b c d e «Hughes, Baden». Fourth Australasian Symposium on Grid Computing and e-Research (AusGrid 2006) and the Fourth Australasian Information Security Workshop (AISW 2006). 2006. doi:10.1145/1151828.1151835. 
  9. «OpenMacGrid Computing Grid for Mac Users Announced || The Mac Observer». www.macobserver.com. Consultado el 28 de febrero de 2025. 
  10. «OpenMacGrid creates distributed computing love-fest». Ars Technica (en inglés estadounidense). Archivado desde el original el 11 de septiembre de 2011. Consultado el 28 de febrero de 2025. 
  11. «Xgrid@Stanford». web.archive.org. 10 de octubre de 2014. Consultado el 28 de febrero de 2025. 
  12. «Xgrid@Stanford». web.archive.org. 26 de septiembre de 2011. Consultado el 28 de febrero de 2025. 
  13. Zhuge, Hai; Fox, Geoffrey C. (24 de noviembre de 2005). Grid and Cooperative Computing - GCC 2005: 4th International Conference, Beijing, China, November 30 -- December 3, 2005, Proceedings (en inglés). Springer Science & Business Media. ISBN 978-3-540-30510-1. Consultado el 28 de febrero de 2025. 
  14. Rizzo, John (23 de septiembre de 2011). Mac OS X Lion Server For Dummies (en inglés). John Wiley & Sons. ISBN 978-1-118-17748-8. Consultado el 28 de febrero de 2025. 
  15. «EBSCO Sign In». login.ebsco.com. Consultado el 28 de febrero de 2025. 
  16. Connolly, P.J. (2004). «"Apple's Xserve Hardware Makes Waves"». InfoWorld. Vol. 26, no. 25. 
  17. Schwartz, Ephraim (2004). «"Doth Apple Protest Too Much?"». InfoWorld. Vol. 26, no. 4. p. 12. 
  18. Pogue, David (2012). «OS X Mountain Lion: The Missing Manual.». O'Reilly Media. ISBN 978-1-4493-4367-5. 
  19. Rizzo, John (31 de agosto de 2012). OS X Mountain Lion Server For Dummies (en inglés). John Wiley & Sons. ISBN 978-1-118-41781-2. Consultado el 28 de febrero de 2025. 
  20. Rizzo, John (2011). «"What's in Podcast Producer?"». Mac OS X Lion Server For Dummies. John Wiley & Sons. ISBN 978-1-118-17748-8. 
  21. Zhuge, Hai; Fox, Geoffrey C. (24 de noviembre de 2005). Grid and Cooperative Computing - GCC 2005: 4th International Conference, Beijing, China, November 30 -- December 3, 2005, Proceedings (en inglés). Springer Science & Business Media. ISBN 978-3-540-30510-1. Consultado el 28 de febrero de 2025. 
  22. a b «Simple.: XGrid». web.archive.org. 12 de abril de 2008. Consultado el 28 de febrero de 2025. 
  23. «Linux.com :: Xgrid: Grid computing for the rest of us?». www.linux.com (en inglés). Archivado desde el original el 21 de abril de 2009. Consultado el 28 de febrero de 2025. 
  24. a b «"Xgrid Programming Guide: How It Works"». Apple Inc. 2007. 
  25. «"Mac OS X Server: Xgrid"». Technology Brief. Apple Inc. 2007. 
  26. Jepson, Brian; Rothman, Ernest E. (1 de junio de 2005). Mac OS X Tiger for Unix Geeks (en inglés). "O'Reilly Media, Inc.". ISBN 978-0-596-55274-9. Consultado el 28 de febrero de 2025. 
  27. a b «macosxhints.com - 10.4: Run an Xgrid with Tiger client». web.archive.org. 24 de agosto de 2007. Consultado el 28 de febrero de 2025. 
  28. «VisualHub offers Xgrid support - (Jun 07) | MacNN». web.archive.org. 9 de diciembre de 2017. Consultado el 28 de febrero de 2025. 
  29. «VisualHub - The universal video converter». Engadget (en inglés estadounidense). 7 de junio de 2006. Consultado el 28 de febrero de 2025. 

Lectura adicional

editar
  • An Xgrid Primer at the Wayback Machine (archivado el 12 de noviembre de 2011)
  • Vista de pájaro del protocolo BEEP utilizado por Xgrid en Wayback Machine (archivado el 12 de febrero de 2003)
  • Xgrid FAQ en Xgrid Wiki at the Wayback Machine (archivado el 16 de junio de 2010)
  •   Datos: Q1937864