Grid computing is the act of sharing tasks over multiple computers. Tasks can range from data storage to complex calculations and can be spread over large geographical distances. In some cases, computers within a grid are used normally and only act as part of the grid when they are not in use. These grids scavenge unused cycles on any computer that they can access, to complete given projects. SETI@home is perhaps one of the best-known grid computing projects, and a number of other organizations rely on volunteers offering to add their computers to a grid.
These computers join together to create a virtual supercomputer. Networked computers can work on the same problems, traditionally reserved for supercomputers, and yet this network of computers are more powerful than the super computers built in the seventies and eighties. Modern supercomputers are built on the principles of grid computing, incorporating many smaller computers into a larger whole.
The idea of grid computing originated with Ian Foster, Carl Kesselman and Steve Tuecke. They got together to develop a toolkit to handle computation management, data movement, storage management and other infrastructure that could handle large grids without restricting themselves to specific hardware and requirements. The technique is also exceptionally flexible.
Grid computing techniques can be used to create very different types of grids, adding flexibility as well as power by using the resources of multiple machines. An equipment grid will use a grid to control a piece of equipment, such as a telescope, as well as analyze the data that equipment collects. A data grid, however, will primarily manage large amounts of information, allowing users to share access.
Grid computing is similar to cluster computing, but there are a number of distinct differences. In a grid, there is no centralized management; computers in the grid are independently controlled, and can perform tasks unrelated to the grid at the operator's discretion. The computers in a grid are not required to have the same operating system or hardware. Grids are also usually loosely connected, often in a decentralized network, rather than contained in a single location, as computers in a cluster often are.