1

I have read a little about Xgrid on Mac OS X, and I read that I can use it to get more power for some applications.

What type of software can use Xgrid? And how can I use it?

Zypher
  • 37,405
  • 5
  • 53
  • 95

3 Answers3

1

One of the best options I've found for seeing if Xgrid is even what you are looking for is to read the Xgrid Tutorials from MacResearch.

Suffice to say Xgrid is predominantly aimed at the scientific community where they write their programs to take advantage of it, so wanting to use it to take advantage of programs such as iMovie, Photoshop, Final Cut, etc. is a non starter.

See the FAQ from the Xgrid mailing list:

If you want to use something similar to Xgrid with the Final Cut suite or Maya check out QMaster which is part of the Final Cut suite.

Chealion
  • 5,733
  • 28
  • 29
1

Chealion answered the how part of your question quite well.

To address which types of applications can use Xgrid:

Xgrid is well suited to any task that can be distributed to run in parallel on multiple computers, whether workstations or servers. Sometimes these problem sets are referred to as "embarrassingly parallel". Computations which take a long time to complete, but require little data to cross the network, are excellent candidates (like Seti@Home).

Xgrid consists of 3 main parts (controller, agent, client). Tasks are issued from the client (command-line or API) to the controller and run on any available agent, similar to earlier distributed scheduling systems like SGE (bsub/qsub) or MPI. In addition to custom-code utilizing xgrid APIs, any application that can be invoked from the command line can utilize xgrid. Running a task is as easy as the following (where uname could be any command-line application, like matlab, R, blender, maya, etc.):

$ xgrid -h controller.mygrid.com -job run /usr/bin/uname -a  
Darwin node006.mygrid.com 10.2.0 Darwin Kernel Version 10.2.0 ...

Common uses of Xgrid:

  • scientific computing
  • distributed 3D rendering
  • distributed audio / video processing

Xgrid is not well suited to tasks which are inter-dependent (have to be executed in serial) or those which require moving large amounts of data (where copying data takes longer than just running locally).

Xgrid itself simply executes a given task on a remote system, it cannot break down an operation performed by an application into smaller parts (like photoshop applying an effect to a single image). Tasks which can't be broken down into smaller pieces benefit more from co-processors or GPU processing (via CUDA / OpenCL / GPGPU).

In the case of Photoshop, xgrid would be useful if you had to apply transforms / effects against thousands of images, as each computer in the grid could work on a separate image concurrently.

Additional resources:

Related Applications...

Cross Platform Xgrid Components...

ives
  • 226
  • 1
  • 7
0

There are a number of existing applications that will use it such as Compressor. If you wish to use it with your own applications you will need to code them using Apple's X-Code IDE and the specific APIs that are provided for this purpose. HERE is a link to the xgrid programming notes on Apple's site.

Chopper3
  • 101,299
  • 9
  • 108
  • 239
  • Cool, can i use xgrid for Adobe Photoshop CS4 e.g.? :) – ParisNakitaKejser Nov 05 '09 at 16:30
  • FWIW, Xgrid and Compressor don't actually work together out of the box - instead Apple has a product included with Compressor called QMaster that does that job. – Chealion Nov 05 '09 at 18:38
  • 1
    @NeoNman nopers, sorry, that would be like some kind of Holy Grail, with extra cheese and a free priority pass for space mountain, sorry. – Chopper3 Nov 05 '09 at 19:05