- Xgrid
Infobox Software
name = Xgrid
developer =Apple Inc.
operating system =Mac OS X
released = January 6, 2004cite web |url=http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/xgrid.1.html |title=Mac OS X Manual Page For xgrid(1) |accessdate= 2008-07-25 |date=2007-12-03 |format=HTML |publisher=Apple Inc. ]
platform = Independent
status = Active
genre =Distributed computing
license = ProprietaryEULA cite web |url=http://images.apple.com/legal/sla/docs/macosx105.pdf |title=Mac OS X 10.5 SLA |accessdate= 2008-06-12 |date=2005-03-09 |format=PDF |publisher=Apple Inc. ]
website = [http://www.apple.com/macsox/features/xgrid/ www.apple.com/macsox/features/xgrid/]Xgrid is a proprietary
distributed computing protocol developed by theAdvanced Computation Group subdivision ofApple Inc . The program allows a group of networkedcomputers to contribute their processing power to the same task. Xgrid providesnetwork administrators an easy-to-implement method of exploiting previously unused computational power at low cost. Released in January 2004,cite web |url=http://unu.novajo.ca/simple/archives/000026.html |title=XGrid agent for Unix architectures |accessdate= 2008-07-18 |date=2004-06-21 |format=HTML |publisher=Simple |last=Côté |first=Daniel ] the program acts as ajob scheduler , splitting and allocating tasks to available nodes.cite web |url=http://developer.apple.com/hardwaredrivers/hpc/xgrid_intro.html |title=Xgrid: High Performance Computing for the Rest of Us |accessdate= 2008-06-12 |date=2005-03-09 |format=HTML |publisher=Apple Inc. ]Xgrid uses the
BEEP infrastructure with the Xgrid protocol andXML -centered data management to communicate to othernodes whichcompute their portions of the task and then return the results back to the initiating client. This implementation makes Xgrid only effective for parallel tasks.cite web |url=http://unu.novajo.ca/simple/archives/000022.html |title=XGrid |accessdate= 2008-07-18 |date=2004-01-07 |format=HTML |publisher=Simple |last=Côté |first=Daniel ]The Xgrid architecture consists of Xgrid jobs and tasks being send between the nodes on a chosen network. Each job being submitted from the client to the controller is split into individual tasks and then sent for processing to individual agents on the Xgrid cluster. The cluster's computers compute their portion of the tasks and then return them to the controller which assembles the job and provides the results to the initiating client.cite web |url=http://developer.apple.com/documentation/MacOSXServer/Conceptual/Xgrid_Programming_Guide/Overview/chapter_2_section_2.html |title=Xgrid Programming Guide: How It Works |accessdate= 2008-06-12 |date=2007-10-31 |format=HTML |publisher=
Apple Inc. ]When Apple designed Xgrid the company used the Zilla program, distributed with
NeXT 'sOPENSTEP operating system API , as a model for Xgrid and a source of good feature-related ideas. But instead of providing aGUI for theend-user (as Zilla did) in the release version, Apple opted to only provide command-line functions and little flexibility. The removal of the GUI was not consistent with the version provided with the more expensiveMac OS X Server , which received many more of Zilla's functions.cite web |url=http://www.macosxhints.com/article.php?story=20050610040807931 |title=10.4: Run an Xgrid with Tiger client |accessdate= 2008-07-26 |date=2005-06-23 |format=HTML |publisher=Macosxhints.com |last=Muir |first=Dylan]History
Xgrid's original concept can be traced back to Zilla.app found in the OPENSTEP operating system application programming interface; an interface created by
NeXT in the late 1980s. Zilla was the first desktop-based distributed computing program to make use of the idle screen-saver motif, a design feature found in many widely used projects, such asSeti@Home . Zilla won the nationalComputerWorld Smithsonian Award (Science Category) in 1991 for ease of use and non-interventive nature. Apple acquired Zilla, along with the rest of NeXT,cite press release | title=Apple Computer, Inc. Agrees to Acquire NeXT Software Inc. | url= http://product.info.apple.com/pr/press.releases/1997/q1/961220.pr.rel.next.html | archiveurl=http://web.archive.org/web/20020208190346/http://product.info.apple.com/pr/press.releases/1997/q1/961220.pr.rel.next.html |archivedate=2002-02-08| publisher=Apple Computer | date=December 20, 1996 | accessdate=2008-06-13 ] in 1997 and used Zilla later on as inspiration for Xgrid.Xgrid's simplistic nature and easy setup process have lead to several organizations adopting Xgrid in large international computing networks. Notable examples of Xgrid clusters include MacResearch's OpenMacGrid which scientists can request access to over 200 GHz of processing power to run tasks related to their research,cite web |url=http://www.macresearch.org/announcing_openmacgrid_together_we_are_strong |title=Announcing OpenMacGrid: Together We Are Strong |accessdate= 2008-06-13 |date=2007-01-30 |format=HTML |publisher=MacResearch |last=McCormack |first=Drew] and the now defunct Xgrid@Stanford project, which used a range of computers on the
Stanford University campus and around the worldcite web |url=http://cmgm.stanford.edu/~cparnot/xgrid-stanford/ |title=Xgrid@Stanford - Home |accessdate= 2008-07-25 |date=2007-12-03 |format=HTML |publisher=Stanford University |last=Parnot |first=Charles] to perform biochemical research.cite web |url=http://cmgm.stanford.edu/~cparnot/xgrid-stanford/html/projects/projects.html |title=Xgrid@Stanford - Projects |accessdate= 2008-07-25 |date=2007-12-03 |format=HTML |publisher=Stanford University |last=Parnot |first=Charles]Protocol
The Xgrid protocol uses three types of computers; the client, which communicates the
calculation , the controller, the computer which will start and the calculation and the agents, which process their own allocated part of the calculation. A computer can act as one or all three of these components at the same time. The Xgrid protocol, which is based on the BEEP protocol, plays no part in the processing of the specified calculation but merely provides the basic infrastructure for computers tocommunicate . Xgrid is targeted towards computations that are largely time consuming and that can be easily segregated into smaller tasks, commonly known as "embarrassingly parallel" tasks.cite web |url=http://www.linux.com/articles/33719 |title=Xgrid: Grid computing for the rest of us? |accessdate= 2008-07-26 |date=2004-01-15 |format=HTML |publisher=Linux.com |first=Chris |last=Gulker] Examples of tasks that would benefit from Xgrid include Monte Carlo calculations,3D rendering and Mandelbrot maps.Within the Xgrid protocol there are three types of
messages that can be passed to other computers on the samecluster , arequest , anotification or areply . Requests are messages that must be responded to by the recipient with a reply, notifications are messages that do not require a reply and replys are responses to sent messages. These messages are identified by theirname , theirtype (request/notification/reply) and their contents. Each Xgrid message is encapsulated in a BEEP MSG (BEEP message) and is acknowledged on receiving by an empty RPY (reply).Architecture
The computation sent to the controller is referred to as a job, the job is a collection of executable tasks that can be run in parallel. The individual tasks contain an executable file, input parameters, data files and directories required to run the task either simultaneously or asynchronously. Once the job completes, the controller can be set to notify the client of the task's completion or failure, email is supported. The client is not required to stay connected to the network and has the option of monitoring the job status on demand by querying the controller, although ongoing progress of individual tasks is not available.
The controller is central to the correct function of an Xgrid, 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 amount of tasks assigned to an agent depend on two factors, the amount of agents on an Xgrid and the amount of processors in each node. Depending on the amount of agents on an Xgrid the controller may assign all tasks at once (making the process simultaneous) or in the case of a smaller amount of agents, queue the tasks and assign more than one task per computer (making the process asynchronous). 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 amount of agents on the network is lower that the amount of tasks the controller has to complete.
Interface
With the inclusion of the Xgrid agent in Mac OS X version 10.4, Apple increased Xgrid's potential usage greatly. Their decision to provide a graphical controller interface only to
Mac OS X Server systems has limited the efforts by the computer community to embrace the platform. To counteract this problem, Apple's Xgrid GUI can now be downloaded for free as part of their server admin tools, which Mac OS X version 10.5 supports.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 toolsxgridctl
andxgrid
. Once the Xgrid controllerdaemon is running, administration of the grid with Apple'sXgrid Admin tool is possible. Some applications, such as VisualHub, provide Xgrid controller capability through their user interfaces.cite web |url=http://www.macnn.com/articles/06/06/07/visualhub.released/ |title=VisualHub offers Xgrid support |accessdate= 2008-07-26 |date=2006-06-07 |format=HTML |publisher=MacNN ]Notes
Wikimedia Foundation. 2010.