Friday, September 16, 2005

Grid Computing: Free (the) Enterprise!

We spent a lot of time at explaining to people what "grid computing" is. Sometimes, we use the term "distributed computing" (more on that in a later post).

But even for those who know what grid computing means, we often had to explain that we weren't necessarily talking about HPC. Microsoft has an OS and a set of tools for that. The type of application that needs HPC is generally scientific or engineering in nature; they are "chatty" algorithms that require messaging technology such as MPI, and they frequently require very high connection speeds (e.g., Infiniband).

However, there is a much larger universe of problems that can be addressed by using distributed computing. At Digipede, none of our customers has addressed a traditional HPC problem. Our customers have been using the Digipede Network to solve problems that are much more "enterprise computing" than "HPC."

There are many things that go on in the enterprise that can happen in parallel: a perfect example is report writing. I don't know if anyone could name a company that doesn't have report generation built on top of databases. Almost always, the report generation involves transforming the data into a user-consumable format. Invariably, that's a compute-intensive operation (sometimes lasting minutes, sometimes lasting seconds). Even reports that only take a few seconds to generate can become compute hogs if there are lots of them.

And this is just the type of thing that can be distributed. If you need to generate 1,000 reports, why not have a hundred (or more!) PCs working on them? Even if each report only takes a couple of seconds, that's over a half-hour on one machine. Distributing that across tens or hundreds of machines uses existing hardware efficiently (in other words, there's no need to buy new hardware to scale your report generation), and it makes employees more efficient because they no longer have to wait for their reports.

That's a simple example, but a clear indicator of how enterprise computing can benefit from distributed execution. I'll have more examples over the coming days.