Tim Bray flies over the grid computing landscape and sends back a clear report on its current topography. Noting that “nobody agrees what Grid means,” he offers a catholic definition: “any scenario where you want a good way to throw a whole bunch of computers in parallel at a problem, and you want some infrastructure there to help.” He then divides grids into two categories: batch grids, which perform discrete jobs requiring a lot of data-crunching muscle (jobs with clear beginnings and endings), and service-oriented grids, which perform large quantities of transactions continuously (a la Google’s search engine). He then reviews a number of prominent grid technologies within each category. Bray also provides a succinct assessment of when it makes sense to use a grid (and when it doesn’t). The key is to recognize that transporting data is relatively more expensive than storing it or processing it, so when using a grid “you’d like to maximize the ratio of the amount of computation to the amount of data traffic.”
I see my job as being a popularizer – opening up specialized topics for general readers. (It’s a job that’s often pooh-poohed by the specialists, who equate simplification with dumbing-down, but I happen to think it’s pretty valuable.) So it’s always helpful to have an expert like Bray offer concise definitions and distinctions regarding subjects that are often buried in technical (and marketing) jargon. I’ve found it a challenge to explain things like grid computing and virtualization to laypersons, even though I think they’re essential to understanding the present and future of computing and the computing industry (and a lot of other things by extension). Through a process of whittling down, I’ve come up with the following definitions as starting points:
Grid computing: having two or more computers act as one computer
Virtual computing: having one computer act as two or more computers
Virtual grid computing: having two or more computers act as one computer that acts as two or more computers
Now, that last one, I admit, seems kind of confusing at first, but I think it ends up making the whole subject clearer in the end. It underscores the difference between partitions defined by hardware and partitions defined by software, which might also be called physical and logical partitions. In a virtual grid, you need to first erase the physical boundaries between the machines so that you can then create, with software, new boundaries when and where you need them.
At a technical level, it makes a lot of sense to transcend the physical. It’s when you try to do the same thing at the human level – going from virtual grid computing to virtual grid culture – that I get nervous. See? Everything I talk about here is connected. Rough Type may not be quite as schizophrenic as you assumed. The bipolar thing is another matter.