Grid computing is a phrase in distributed computing which can have several meanings:
- Multiple independent computing clusters which act like a "grid" because they are composed of resource nodes not located within a single administrative domain. (formal)
- Offering online computation or storage as a metered commercial service, known as utility computing, computing on demand, or cloud computing.
- The creation of a "virtual supercomputer" by using spare computing resources within an organization.
- The creation of a "virtual supercomputer" by using a network of geographically dispersed computers. Volunteer computing, which generally focuses on scientific, mathematical, and academic problems, is the most common application of this technology.
When would you use this? Currently I am applying and investigating the use of Grid Computing in the Financial Services vertical and Video Encoding and Transcoding.
In the Financial service vertical for example, building complex financial models for Hedge Funds or analyzing large sets of data require lots of computing time, so Grid Computing is perfect for this.
Another project currently requires encoding and transcoding video formats on the fly as well as offline, which requires heavy processor time.
These are just 2 examples of which I am using and investigating the use of Grid Computing. Any task that requires heavy CPU computation should be a candidate for Grid Computing. There are a few Grid Computing packages I have been looking at, here are just a few. Grid Computing requires you to have some development experience depending on the package and more often or not you have to code your applications to be asynchronous so that it can be distributed on a Grid in real time.
Digipede - For Microsoft .NET Applications or the Microsoft Platform
Alchemi - For Microsoft .NET Applications - Open Source
Apple XGrid - Comes with MAC OS X Server
Grid Gain - Java based Grid Computing - Open Source and most widely used