What is a grid? It's more difficult to answer this question today than it was in 2002, because commercialization of the technology has resulted in many products and implementations that are labeled grids but do not really fit the definition. To give some historical background, grid computing emerged from academia with a formal definition in the late 1990s. In 1998, Ian Foster and Carl Kessellman defined computation grids in The Grid: Blueprint for a New Computing Infrastructure:
"A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive and inexpensive access to high-end computational capabilities."
Since then, the definition has been generalized to include the sharing of resources that include data. In contrast, cluster computing evolved, rather than emerged, as a low-cost way of solving computationally demanding problems by using large numbers of commodity CPUs together with commodity networking technology.
Although grids and clusters may both satisfy high-performance or high-throughput requirements by enabling distributed computing, grids solve the more complicated problem of providing computing resources to groups that span organizational boundaries, where resources are spread among the groups. In fact, a grid may marshal numerous clusters from different organizations into a logical set of computational resources available to a group of authorized users. By definition, grid services must live in more a complex environment where resources must be shared and secured according to policies that may differ from organization to organization.
To clarify this point further, the next section provides some purpose and context for grids, as opposed to clusters, and introduces Ian Foster's three criteria for grids, which must be met before something can be classified as a grid.