Grid computing involves linking together distributed computer resources from multiple administrative domains to achieve a common goal. Resources in a grid are heterogeneous and geographically dispersed. A grid differs from a cluster in that it provides a consistent, dependable, and transparent collection of computing resources across wide distances. Grid infrastructure must respect local autonomy, handle heterogeneous hardware, and be resilient and dynamic.