Saturday, March 22, 2008

GRID Computing

Many of you may have heard the term GRID computing, for those of you who don't know what GRID Computing is, here is the quick and dirty definition from wikipedia:

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.
So in a nutshell, Grid Computing allows you to take a task, and chop it up into smaller tasks, send them over the network to be processed on multiple computers.

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

Wikipedia Resource

No comments: