Grid computing (or the use of computational grids) is the combination of computer resources from multiple administrative domains applied to a common task, usually to a scientific, technical or business problem that requires a great number of computer processing cycles or the need to process large amounts of data.
The primary goal of a Grid is to form a loosely coupled system of computers[clients] over a LAN or Internet which are capable of performing tasks issued by the server. Clients can join or leave the grid at any point of time.
Computationally intensive tasks such as brute-forcing over a symmetric encryption key space, simulation of natural forces, prediction of cyclones, etc.
If the problem to be solved is inherently parallel in nature then the scaling provided by Grids can easily introduce a speed up factor, which is roughly proportional to the number of clients participating in the Grid.
The performance of some large Grids are comparable to some of the fastest supercomputers and hence Grids are a feasible cheaper substitute.
Setup of a grid is a complicated process, and hence is not considered a serious option.
Almost all grid computing middleware use a complicated structure and use resources of computers spread around the globe, and hence dependent on voluntary commitment of resources by unknown machines. This might not always be suitable.
Academic institutions don’t have access to easy-to-deploy grid computing middleware.