Saturday, August 25, 2007


Grid computing is a phrase in distributed computing which can have several meanings:
These varying definitions cover the spectrum of "distributed computing", and sometimes the two terms are used as synonyms. This article focuses on distributed computing technologies which are not in the traditional dedicated clusters; otherwise, see computer cluster.
Functionally, one can also speak of several types of grids:

A local computer cluster which is like a "grid" because it is composed of multiple nodes.
Offering online computation or storage as a metered commercial service, known as utility computing, computing on demand, or cloud computing.
The creation of a "virtual supercomputer" by using spare computing resources within an organization.
The creation of a "virtual supercomputer" by using a network of geographically dispersed computers. Volunteer computing, which generally focuses on scientific, mathematical, and academic problems, is the most common application of this technology.
Computational grids (including CPU Scavenging grids) which focuses primarily on computationally-intensive operations.
Data grids or the controlled sharing and management of large amounts of distributed data.
Equipment grids which have a primary piece of equipment e.g. a telescope, and where the surrounding Grid is used to control the equipment remotely and to analyze the data produced. Grids versus conventional supercomputers
One feature of distributed grids is that they can be formed from computing resources belonging to multiple individuals or organizations (known as multiple administrative domains). This can facilitate commercial transactions, as in utility computing, or make it easier to assemble volunteer computing networks.
One disadvantage of this feature is that the computers which are actually performing the calculations might not be entirely trustworthy. The designers of the system must thus introduce measures to prevent malfunctions or malicious participants from producing false, misleading, or erroneous results, and from using the system as an attack vector. This often involves assigning work randomly to different nodes (presumably with different owners) and checking that at least two different nodes report the same answer for a given work unit. Discrepancies would identify malfunctioning and malicious nodes.
Due to the lack of central control over the hardware, there is no way to guarantee that nodes will not drop out of the network at random times. Some nodes (like laptops or dialup Internet customers) may also be available for computation but not network communications for unpredictable periods. These variations can be accommodated by assigning large work units (thus reducing the need for continuous network connectivity) and reassigning work units when a given node fails to report its results as expected.
The impacts of trust and availability on performance and development difficulty can influence the choice of whether to deploy onto a dedicated computer cluster, to idle machines internal to the developing organization, or to an open external network of volunteers or contractors.
In many cases, the participating nodes must trust the central system not to abuse the access that is being granted, by interfering with the operation of other programs, mangling stored information, transmitting private data, or creating new security holes. Other systems employ measures to reduce the amount of trust "client" nodes must place in the central system such as placing applications in virtual machines.
Public systems or those crossing administrative domains (including different departments in the same organization) often result in the need to run on heterogeneous systems, using different operating systems and hardware architectures. With many languages, there is a tradeoff between investment in software development and the number of platforms that can be supported (and thus the size of the resulting network). Cross-platform languages can reduce the need to make this tradeoff, though potentially at the expense of high performance on any given node (due to run-time interpretation or lack of optimization for the particular platform).
Various middleware projects have created generic infrastructure, to allow various scientific and commercial projects to harness a particular associated grid, or for the purpose of setting up new grids. BOINC is a common one for academic projects seeking public volunteers; more are listed at the end of the article.

CPU scavenging
The term Grid computing originated in the early 1990s as a metaphor for making computer power as easy to access as an electric power grid in Ian Foster and Carl Kesselmans seminal work, "The Grid: Blueprint for a new computing infrastructure".
CPU scavenging and volunteer computing were popularized beginning in 1997 by distributed.net and later in 1999 by SETI@home to harness the power of networked PCs worldwide, in order to solve CPU-intensive research problems.
The ideas of the grid (including those from distributed computing, object oriented programming, cluster computing, web services and others) were brought together by Ian Foster, Carl Kesselman and Steve Tuecke, widely regarded as the "fathers of the grid." They led the effort to create the Globus Toolkit incorporating not just computation management but also storage management, security provisioning, data movement, monitoring and a toolkit for developing additional services based on the same infrastructure including agreement negotiation, notification mechanisms, trigger services and information aggregation. While the Globus Toolkit remains the defacto standard for building grid solutions, a number of other tools have been built that answer some subset of services needed to create an enterprise or global grid.

History

BOINC - 525 teraflops, as of 4 Jun 2007 Fastest virtual supercomputers

Main article: List of distributed computing projects Current projects and applications
Today there are many definitions of Grid computing:
Grids can be categorized with a three stage model of departmental grids, enterprise grids and global grids. These correspond to a firm initially utilising resources within a single group i.e. an engineering department connecting desktop machines, clusters and equipment. This progresses to enterprise grids where non-technical staff's computing resources can be used for cycle-stealing and storage. A global grid is a connection of enterprise and departmental grids which can be used in a commercial or collaborative manner.

The definitive definition of a Grid is provided by Ian Foster in his article "What is the Grid? A Three Point Checklist"
Pragmatically, grid computing is attractive to geographically-distributed non-profit collaborative research efforts like the NCSA Bioinformatics Grids such as BIRN: external grids.
Grid computing is also attractive to large commercial enterprises with complex computation problems who aim to fully exploit their internal computing power: internal grids.
A recent survey (done by Heinz Stockinger in spring 2006; to be published in the Journal of Supercomputing in early 2007) presents a snapshot on the view in 2006.
Another survey (done by Miguel L. Bote-Lorenzo et al. in autumn 2002; published in the LNCS series of Springer-Verlag) presents a snapshot on the view in 2002. Definitions

Grid computing See also

Distributed computing
List of distributed computing projects
High-performance computing
Render farm
Semantic grid
Supercomputer
Computer cluster
Computon
Grid FileSystem
Edge computing
Metacomputing Concepts and related technology

Open Grid Forum (Formerly Global Grid Forum)
Globus Alliance
Object Management Group Alliances and organizations

Distributed European Infrastructure for Supercomputing Applications DEISA
Enabling Grids for E-sciencE
FusionGrid
INFN Production Grid
NorduGrid
Open Science Grid
OurGrid
Sun Grid
Xgrid
UC Grid [7] Grid computing Production grids

European DataGrid (EDG) March 2001 - March 2003
Enabling Grids for E-sciencE (EGEE) March 2004 - March 2006
Enabling Grids for E-sciencE II (EGEE II) April 2006 - April 2008
Open Middleware Infrastructure Institute Europe (OMII-Europe) May 2006 - May 2008 International Grid Projects

China Grid Project
D-Grid (German)
GARUDA (Indian)
grid computing project at VECC (Calcutta, India)
INFN Grid (Italian)
Malaysia National Grid Computing
NAREGI Project
Singapore National Grid Project
Thai National Grid Project National Grid Projects

A Simple API for Grid Applications (SAGA)
Common Object Request Broker Architecture (CORBA)
Distributed Resource Management Application API (DRMAA)
Grid Security Infrastructure (GSI)
Open Grid Services Architecture (OGSA)
Open Grid Services Infrastructure (OGSI)
Web Services Resource Framework (WSRF) Standards and APIs

Advanced Resource Connector (NorduGrid's ARC)
Amazon EC2 [8]
Alchemi
Berkeley Open Infrastructure for Network Computing (BOINC)
gLite (EGEE)
Globus Toolkit
Gridbus Middleware
Message Passing Interface (MPI)
NInf GridRPC
IceGrid
Invisionix Roaming System Remote (IRSR)
Java CoG Kit
Parallel Virtual Machine (PVM)
SDSC Storage resource broker (data grid)
Simple Grid Protocol
Sun Grid Engine
Vishwa [9]
UGP [10]
UNICORE Notes

Davies, Antony (June 2004). "Computational Intermediation and the Evolution of Computation as a Commodity" (pdf). Applied Economics. 
Foster, Ian; Carl Kesselman. The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann Publishers. ISBN 1-55860-475-8. 
Plaszczak, Pawel; Rich Wellner, Jr. Grid Computing "The Savvy Manager's Guide". Morgan Kaufmann Publishers. ISBN 0-12-742503-9. 
Berman, Fran; Anthony J. G. Hey, Geoffrey C. Fox. Grid Computing: Making The Global Infrastructure a Reality. Wiley. ISBN 0-470-85319-0. 
Li, Maozhen; Mark A. Baker. The Grid: Core Technologies. Wiley. ISBN 0-470-09417-6. 
Catlett, Charlie; Larry Smarr (June 1992). "Metacomputing". Communications of the ACM 35 (6). 
Smith, Roger (2005). Grid Computing: A Brief Technology Analysis. CTO Network Library.
Buyya, Rajkumar (July 2005). "Grid Computing: Making the Global Cyberinfrastructure for eScience a Reality". CSI Communications 29 (1). ISSN 0970-647X. 
Berstis, Viktors. Fundamentals of Grid Computing. IBM.
Ferreira, Luis; et.al.. Grid Computing Products and Services. IBM.
Ferreira, Luis; et.al.. Introduction to Grid Computing with Globus. IBM.
Jacob, Bart; et.al.. Enabling Applications for Grid Computing. IBM.
Ferreira, Luis; et.al.. Grid Services Programming and Application Enablement. IBM.
Jacob, Bart; et.al.. Introduction to Grid Computing. IBM.
Ferreira, Luis; et.al.. Grid Computing in Research and Education. IBM.
Ferreira, Luis; et.al.. Globus Toolkit 3.0 Quick Start. IBM.
Surridge, Mike; et.al.. Experiences with GRIA – Industrial applications on a Web Services Grid. IEEE.
Stockinger, Heinz; et al. (to be published in 2007). "Defining the Grid: A Snapshot on the Current View" (pdf). Supercomputing. 
Global Grids and Software Toolkits: A Study of Four Grid Middleware Technologies

No comments: