Grid computing represents a collaborative model of distributed computing by allowing each of a variety of connected computers to provide different types of resources (including computing capability, memory, communication bandwidth, applications and specific capabilities) to act together as one system. Instead of using a single supercomputer with a lot of computing capability, grids aggregate the resources of many computers that may have different architectures, performance characteristics, operating systems and policies. The diversity of resources provided by the grid is what makes it so capable of performing a wide range of tasks; at the same time, this diversity is also the main challenge that must be overcome for the grid to operate efficiently. In order to accomplish efficient operations, there must be advanced algorithms for scheduling and managing the resources of the grid, and considerations for scalability and an understanding of limitations placed on the grid, such as data locality, network bandwidth, and licensing agreements.
Grids are designed to allow for flexible use of resources, to support parallel processing and to maximize the use of all of the resources that make up the grid. Workloads can be executed on a grid where suitable resources are available, either through dedicated infrastructure, opportunistic scavenging or advance reservations.
The grid computing paradigm becomes even more important when a large amount of computing capability, a large amount of data handling capability, or the need to execute the same task repeatedly arises. Scientific research such as climate modeling or genomic analysis require a much larger amount of computing capability and data handling capability than could be provided by a single machine. Therefore, scientists can distribute their computations across many processors, store and access their data using a unified system, and schedule their tasks close to the location of the resources they will need to minimize any bottlenecks. Industries such as animation rendering, financial risk analysis and medical research also benefit from grid computing, because workloads can be parallelized, scalable workloads can be executed, and high cost software or specialized hardware can be used without duplicating the cost of the expensive hardware. In summary, grid computing converts a collection of disparate resources into a cooperative problem solving environment.