:Xgrid

{{Short description|Distributed computing protocol created by Apple}}

{{Use mdy dates|date=October 2013}}

{{Infobox software

| name = Xgrid

| logo = Xgrid-icon.png

| developer = Apple Inc.

| operating system = Mac OS X

| released = January 6, 2004{{cite web |url=https://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/xgrid.1.html |title=Mac OS X Manual Page For xgrid(1) |access-date=July 25, 2008 |date=June 27, 2007 |archive-url=https://web.archive.org/web/20080725072504/http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/xgrid.1.html |archive-date=July 25, 2008 |url-status=dead |publisher=Apple Inc. }}

| discontinued = yes

| latest_release_version = 10.7.5

| latest_release_date = {{Start date and age|2012|10|4}}

| platform = Independent

| genre = Distributed computing

| license = Proprietary EULA{{cite web|url=https://images.apple.com/legal/sla/docs/macosx105.pdf |title=Mac OS X 10.5 SLA |access-date=June 12, 2008 |date=March 9, 2005 |publisher=Apple Inc. |url-status=dead |archive-url=https://web.archive.org/web/20080512024021/http://images.apple.com/legal/sla/docs/macosx105.pdf |archive-date=May 12, 2008 }}

| website = {{webarchive|url=https://web.archive.org/web/20060102010251/http://www.apple.com/server/macosx/features/xgrid.html|date=January 2, 2006|title=Homepage}}

}}

Xgrid is a proprietary grid computing program and protocol developed by the Advanced Computation Group subdivision of Apple Inc.{{Cite web |last=Cohen |first=Peter |date=March 29, 2004 |title=Apple posts Xgrid intro |url=https://www.macworld.com/article/170246/xgrid-3.html |access-date=2023-05-14 |website=Macworld |language=en |archive-date=October 6, 2022 |archive-url=https://web.archive.org/web/20221006050551/https://www.macworld.com/article/170246/xgrid-3.html |url-status=live }}

It provides network administrators a method of creating a computing cluster, which allows them to exploit previously unused computational power for calculations that can be divided easily into smaller operations, such as Mandelbrot maps. The setup of an Xgrid cluster can be achieved at next to no cost, as Xgrid client is pre-installed on all computers running Mac OS X 10.4 to Mac OS X 10.7. The Xgrid client was not included in Mac OS X 10.8. The Xgrid controller, the job scheduler of the Xgrid operation, is also included within Mac OS X Server and as a free download from Apple. Apple has kept the command-line job control mechanism minimalist while providing an API to develop more sophisticated tools built around it.

The program employs its own communication protocol layered on top of a schema to communicate to other nodes. This communication protocol interfaces with the BEEP infrastructure, a network application protocol framework. Computers discovered by the Xgrid system, that is computers with Mac OS X's Xgrid service enabled, are automatically added to the list of available computers to use for processing tasks.

When the initiating computer sends the complete instructions, or job, for processing to the controller, the controller splits the task up into these small instruction packets, known as tasks. The design of the Xgrid system consists of these small packets being transferred to all the Xgrid-enabled computers on the network. These computers, or nodes, execute the instructions provided by the controller and then return the results. The controller assembles the individual task results into the whole job results and returns them to the initiating computer.

Apple modeled the design of Xgrid on the Zilla program, distributed with NeXT's OpenStep operating system application programming interface (API), which Apple owned the rights to. The company also opted to provide the client version of Mac OS X with only command-line functions and little flexibility, while giving the Mac OS X Server version of Xgrid a GUI control panel and a full set of features.

History

Image:Zilla.gif

Xgrid's origins can be traced back to NeXT's Zilla application created by scientist Richard Crandall in the late 1980s. Zilla was the first distributed computing program released on an end-user operating system and which used the idle screen-saver motif, a design feature since found in widely used projects such as Seti@Home.{{Cite magazine |last=Norbury-Glaser |first=Mary |date=2006 |title=Build Your Own Supercomputer From Your Macs Laying Around: How to employ Tiger's Xgrid to build clusters and to contribute to grid/cluster projects |url=http://preserve.mactech.com/articles/mactech/Vol.22/22.01/BuildYourOwnSupercomputer/index.html |magazine=MacTech |volume=22 |issue=1 |access-date=2023-05-14 |archive-date=May 14, 2023 |archive-url=https://web.archive.org/web/20230514081204/http://preserve.mactech.com/articles/mactech/Vol.22/22.01/BuildYourOwnSupercomputer/index.html |url-status=live }} Zilla won the national Computerworld Smithsonian Award (Science Category) in 1991 for ease of use and good design.{{cite web|url=http://www.cwhonors.org/search/his_4a_detail.asp?id=1261 |title=Zilla - Computerworld Honours Program Archives |access-date=February 27, 2009 |url-status=dead |archive-url=https://web.archive.org/web/20110716082235/http://www.cwhonors.org/search/his_4a_detail.asp?id=1261 |archive-date=July 16, 2011 }} Apple acquired Zilla along with the rest of NeXT in 1997,{{Cite book |last1=Schlender |first1=Brent |url= |title=Becoming Steve Jobs: The Evolution of a Reckless Upstart into a Visionary Leader |title-link=Becoming Steve Jobs |last2=Tetzeli |first2=Rick |publisher=Crown Business |year=2015 |isbn=978-0-7710-7914-6 |pages=190–197 |language=en}} and used Zilla as inspiration for Xgrid. Xgrid Technology Preview 1 was released in January 2004,{{cite web |url=http://unu.novajo.ca/simple/archives/000026.html |title=XGrid agent for Unix architectures |access-date= July 18, 2008 |date=June 21, 2004 |publisher=Simple |last=Côté |first=Daniel |archive-url = https://web.archive.org/web/20080310191056/http://unu.novajo.ca/simple/archives/000026.html |archive-date = March 10, 2008}} followed by Technology Preview 2 in November 2004. Xgrid 1.0 was released as part of Mac OS X 10.4 Tiger in April 2005.

Several organizations have adopted Xgrid in large international computing networks. One example of an Xgrid cluster is MacResearch's OpenMacGrid, where scientists can request access to large amounts of processing power to run tasks related to their research.{{cite news|url=http://www.macobserver.com/article/2007/02/13.1.shtml|title=OpenMacGrid Computing Grid for Mac Users Announced|last=Martellaro|first=John|date=February 13, 2007|work=The Mac Observer|access-date=March 1, 2009|archive-date=August 30, 2008|archive-url=https://web.archive.org/web/20080830015532/http://www.macobserver.com/article/2007/02/13.1.shtml|url-status=live}}{{cite news|url=https://arstechnica.com/apple/news/2007/02/7022.ars|title=OpenMacGrid creates distributed computing love-fest|last=Saunders|first=Grover|work=Ars Technica|date=February 12, 2007|access-date=March 1, 2009|archive-date=August 24, 2009|archive-url=https://web.archive.org/web/20090824234200/http://arstechnica.com/apple/news/2007/02/7022.ars|url-status=live}} Another was the now defunct Xgrid@Stanford project, which used a range of computers on the Stanford University campus and around the world{{cite web |last=Parnot |first=Charles |date=December 3, 2007 |title=Xgrid@Stanford - Home |url=http://cmgm.stanford.edu/~cparnot/xgrid-stanford/ |url-status=dead |archive-url=https://web.archive.org/web/20141010104620/http://cmgm.stanford.edu/~cparnot/xgrid-stanford/ |archive-date=October 10, 2014 |access-date=July 25, 2008 |publisher=Stanford University}} to perform biochemical research.{{cite web |url=http://cmgm.stanford.edu/~cparnot/xgrid-stanford/html/projects/projects.html |title=Xgrid@Stanford - Projects |access-date=July 25, 2008 |date=December 3, 2007 |publisher=Stanford University |last=Parnot |first=Charles |archive-date=September 26, 2011 |archive-url=https://web.archive.org/web/20110926222931/http://cmgm.stanford.edu/~cparnot/xgrid-stanford/html/projects/projects.html |url-status=dead }}{{Cite book |last1=Zhuge |first1=Hai |url=https://books.google.com/books?id=I6ettiOjSMsC&dq=xgrid+@+stanford&pg=PA408 |title=Grid and Cooperative Computing - GCC 2005: 4th International Conference, Beijing, China, November 30 -- December 3, 2005, Proceedings |last2=Fox |first2=Geoffrey C. |date=2005-11-24 |publisher=Springer Science & Business Media |isbn=978-3-540-30510-1 |pages=408 |language=en}}{{Cite book |last=Rizzo |first=John |url=https://books.google.com/books?id=-G_SZxICc_sC&dq=xgrid+%40+stanford&pg=PT45 |title=Mac OS X Lion Server For Dummies |date=2011-09-23 |publisher=John Wiley & Sons |isbn=978-1-118-17748-8 |language=en}}

In a report covering the announcement, Macworld cited Xgrid among the Unix features in "10 Things to Know about Tiger", calling it "handy if you work with huge amounts of experimental data or render complex animations".{{cite magazine |last1=Michaels |first1=Philip |last2=Griffiths |first2=Rob |last3=Snell |first3=Jason |last4=Seff |first4=Jonathan |date=September 2004 |title=10 Things to Know about Tiger |url=http://search.ebscohost.com/login.aspx?direct=true&AuthType=ip,url,uid&db=bch&AN=14111634&site=ehost-live |journal=Macworld |publisher= |volume=21 |issue=9 |pages=50–55 |issn=0741-8647 |access-date=October 16, 2008}} (Subscription required) After Xgrid's introduction in 2004, InfoWorld noted that it was a "'preview' grade technology" which would directly benefit from the Xserve G5's launch later that year.{{cite magazine|last=Connolly|first=P.J.|magazine=InfoWorld|date=June 21, 2004|volume=26|issue=25|pages=29–30|title=Apple's Xserve Hardware Makes Waves|id={{ProQuest|194358336}}}} (Subscription required) InfoWorld commentator Ephraim Schwartz also predicted that Xgrid was an opening move in Apple's entry into the enterprise computing market.{{cite magazine|title=Doth Apple Protest Too Much?|last=Schwartz|first=Ephraim|date=January 26, 2004|magazine=InfoWorld|volume=26|issue=4|pages=12|id={{ProQuest|194347451}}}} (Subscription required){{Cite conference |last=Hughes |first=Baden |date=2006 |title=Building computational grids with Apple's Xgrid Middleware |url=https://dl.acm.org/doi/pdf/10.5555/1151828.1151835 |doi=10.1145/1151828.1151835 |doi-broken-date=November 1, 2024 |conference= Fourth Australasian Symposium on Grid Computing and e-Research (AusGrid 2006) and the Fourth Australasian Information Security Workshop (AISW 2006)}}

Apple discontinued Xgrid with OS X 10.8 Mountain Lion,{{Cite book |last=Pogue |first=David |url= |title=OS X Mountain Lion: The Missing Manual |date=2012-07-25 |publisher=O'Reilly Media |isbn=978-1-4493-4367-5 |pages=2 |language=en}} along with dependent services such as Podcast Producer.{{Cite book |last=Rizzo |first=John |url=https://books.google.com/books?id=khJ6vtNyO8UC |title=OS X Mountain Lion Server For Dummies |date=2012-08-31 |publisher=John Wiley & Sons |isbn=978-1-118-41781-2 |pages=76–77 |language=en |access-date=May 16, 2023 |archive-date=November 8, 2021 |archive-url=https://web.archive.org/web/20211108154822/https://books.google.com/books?id=khJ6vtNyO8UC&newbks=0 |url-status=live }}{{Cite book |last=Rizzo |first=John |url=https://books.google.com/books?id=-G_SZxICc_sC |title=Mac OS X Lion Server For Dummies |date=2011-09-23 |publisher=John Wiley & Sons |isbn=978-1-118-17748-8 |language=en |chapter=What's in Podcast Producer?}}

Protocol

Image:Xgridprotocol.svg

The Xgrid protocol uses the BEEP network framework to communicate with nodes on the network. The system's infrastructure includes three types of computers which communicate over the protocol:

  • The client, which submits calculation jobs to the controller
  • The controller, which segregates the jobs into tasks, and assigns these tasks to agents
  • The agents, which process their own allocated part of the calculation and return results to the controller, which returns them to the client.{{Cite book |last1=Zhuge |first1=Hai |url=https://books.google.com/books?id=I6ettiOjSMsC&dq=xgrid&pg=PA413 |title=Grid and Cooperative Computing - GCC 2005: 4th International Conference, Beijing, China, November 30 -- December 3, 2005, Proceedings |last2=Fox |first2=Geoffrey C. |date=2005-11-24 |publisher=Springer Science & Business Media |isbn=978-3-540-30510-1 |language=en}}

A computer can act as one or all three of these components at the same time. The Xgrid protocol provides the basic infrastructure for computers to communicate, but is not involved in the processing of the specified calculation.{{cite web |url=http://unu.novajo.ca/simple/archives/000022.html |title=XGrid |access-date= July 18, 2008 |date=January 7, 2004 |publisher=Simple |last=Côté |first=Daniel |archive-url = https://web.archive.org/web/20080412070951/http://unu.novajo.ca/simple/archives/000022.html |archive-date = April 12, 2008}} Xgrid is targeted towards time-consuming computations that can be easily segregated into smaller tasks, sometimes called embarrassingly parallel tasks.{{cite web |url=http://www.linux.com/articles/33719 |title=Xgrid: Grid computing for the rest of us? |access-date=July 26, 2008 |date=January 15, 2004 |publisher=Linux.com |first=Chris |last=Gulker |archive-date=November 20, 2008 |archive-url=https://web.archive.org/web/20081120100438/http://www.linux.com/articles/33719 |url-status=live }} This includes Monte Carlo calculations, 3D rendering and Mandelbrot maps.

Within the Xgrid protocol, three types of messages can be passed to other computers on the same cluster: requests, notifications and replies. Requests must be responded to by the recipient with a reply, notifications do not require a reply, and replies are responses to sent messages. They are identified by their name, type (request/notification/reply) and contents. Each message is encapsulated in a BEEP message (BEEP MSG) and is acknowledged on receipt by an empty reply (RPY). Xgrid does not leverage BEEPs message/reply infrastructure. Any received message which requires a response merely generates an independent BEEP message containing the reply. The Xgrid messages are encoded as dictionaries of key/value pairs which are converted to XML before being sent across the BEEP network.

Architecture

The architecture of the Xgrid system is designed around a job based system; the controller sends agents jobs, and the agents return the responses. The actual computation that the controller executes in an Xgrid system is known as a job. The job contains all the files required to complete the task successfully, such as the input parameters, data files, directories, executables and/or shell scripts, the files included in an Xgrid job must be able to be executed either simultaneously or asynchronously, or any benefits of running such a job on an Xgrid is lost. Once the job completes, the controller can be set to notify the client of the task's completion or failure, for example by email. The client can leave the network while the tasks are running. It can also monitor the job status on demand by querying the controller, although it cannot track the ongoing progress of individual tasks.{{cite web |url=https://developer.apple.com/documentation/MacOSXServer/Conceptual/Xgrid_Programming_Guide/Overview/Overview.html#//apple_ref/doc/uid/TP40006246-CH2-DontLinkElementID_13 |title=Xgrid Programming Guide: How It Works |access-date= June 12, 2008 |date=October 31, 2007 |publisher=Apple Inc. }}

The controller is central to the correct function of an Xgrid, as this node is responsible for the distribution, supervision and coordination of tasks on agents. The program running on the controller can assign and reassign tasks to handle individual agent failures on demand. The number of tasks assigned to an agent depend on two factors: the number of agents on an Xgrid and the number of processors in each node. The number of agents on an Xgrid determines how the controller will assign tasks. The tasks may be assigned simultaneously for a large number of agents, or queued for a small number of agents. When a node with more than one processor is detected on an Xgrid, the controller may assign one task per processor; this only occurs if the number of agents on the network is lower than the number of tasks the controller has to complete.

Xgrid is layered upon the Blocks Extensible Exchange

Protocol (BEEP), an IETF standard comparable to HTTP, but with a focus on two-way multiplexed communication, such as that found in peer-to-peer networks. BEEP, in turn, uses XML to define profiles for communicating between multiple agents over a single network or internet connection.{{cite web|url=https://images.apple.com/server/macosx/docs/L355779B_Xgrid_tb.pdf|title=Mac OS X Server: Xgrid|date=November 1, 2007|work=Technology Brief|publisher=Apple Inc.|page=2|access-date=March 1, 2009|archive-date=March 19, 2009|archive-url=https://web.archive.org/web/20090319195646/http://images.apple.com/server/macosx/docs/L355779B_Xgrid_tb.pdf|url-status=live}}

Xgrid agent software was available for Unix and Linux systems.{{Cite book |last1=Jepson |first1=Brian |url=https://books.google.com/books?id=09xjqE4nvqAC&dq=enable+xgridctl&pg=PA211 |title=Mac OS X Tiger for Unix Geeks |last2=Rothman |first2=Ernest E. |date=2005-06-01 |publisher=O'Reilly Media |isbn=978-0-596-55274-9 |pages=211 |language=en}}

Interface

Image:XgridAdminTool.jpg

While it is possible to access Xgrid from the command line, the Xgrid graphical user interface, a program bundled with Mac OS X Server and, as of March 2009, available online, is a much more efficient way of administering an Xgrid system. Originally, the Xgrid agent was included in all Mac OS X 10.4 Tiger installations but the GUI was reserved for users of Mac OS X Server. This decision limited the efforts of the computer community to embrace the platform. Eventually, Apple released the Mac OS X Server Administration Tools to the public, which included the Xgrid administration application bundled with Mac OS X Server.{{cite web |last=Muir |first=Dylan |date=June 23, 2005 |title=10.4: Run an Xgrid with Tiger client |url=http://www.macosxhints.com/article.php?story=20050610040807931 |url-status=dead |archive-url=https://web.archive.org/web/20070824141456/http://www.macosxhints.com/article.php?story=20050610040807931 |archive-date=August 24, 2007 |access-date=July 26, 2008 |website=Mac OS X Hints |publisher=}}

Despite the lack of a graphical controller interface in the standard (non-server) Mac OS X distribution, it is possible to set up an Xgrid controller via the command line tools xgridctl and xgrid. Once the Xgrid controller daemon is running, administration of the grid with Apple's Xgrid Admin tool is possible. Some applications, such as VisualHub, provided Xgrid controller capability through their user interfaces.{{cite web |date=June 7, 2006 |title=VisualHub offers Xgrid support |url=http://www.macnn.com/articles/06/06/07/visualhub.released/ |url-status=dead |access-date=July 26, 2008 |publisher=MacNN |archive-date=December 9, 2017 |archive-url=https://web.archive.org/web/20171209045117/http://www.macnn.com/articles/06/06/07/visualhub.released/ }}{{Cite web |last=Chartier |first=David |date=June 7, 2006 |title=VisualHub - The universal video converter |url=https://www.engadget.com/2006-06-07-visualhub-the-universal-video-converter.html |access-date=2023-05-14 |website=Engadget |language=en-US}}

See also

Notes

{{reflist|2}}

Further reading

  • {{Webarchive|url=https://web.archive.org/web/20111112085902/http://xgrid.plasticki.com/|date=November 12, 2011|title=An Xgrid Primer}}
  • {{Webarchive|url=https://web.archive.org/web/20030212105454/http://www-106.ibm.com/developerworks/xml/library/x-beep/index.html|date=February 12, 2003|title=Bird's-eye view of the BEEP protocol used by Xgrid}}
  • {{Webarchive|url=https://web.archive.org/web/20100616170437/http://tengrid.com/wiki1/index.php?title=XGRID_FAQ|date=June 16, 2010|title=Xgrid FAQ on the Xgrid Wiki}}

{{Mac OS X}}

{{Mac OS X Server}}

{{good article}}

Category:Apple Inc. software

Category:MacOS Server

Category:Job scheduling

Category:Cluster computing

Category:Grid computing

Category:Proprietary software