You are on page 1of 12

Comparison of Grid Computing vs. Cluster Computing http://www.jatit.org/research/introduction_gr id_computing.

htm
Grid computing is focused on the ability to support computation across administrative domains sets it apart from traditional computer clusters or traditional distributed computing. Grids offer a way of using the information technology resources optimally inside an organization. In short, it involves virtualizing computing resources. Grid computing is often confused with cluster computing. Functionally, one can classify grids into several types: Computational Grids (including CPU scavenging grids), which focuses primarily on computationally-intensive operations, and Data grids, or the controlled sharing and management of large amounts of distributed data.

Definitions of Grid Computing


There are many definitions of the term: Grid computing: 1. A service for sharing computer power and data storage capacity over the Internet 2. An ambitious and exciting global effort to develop an environment in which individual users can
access computers, databases and experimental facilities simply and transparently, without having to consider where those facilities are located. [RealityGrid, Engineering & Physical Sciences Research Council, UK 2001]http://www.realitygrid.org/information.html 3. Grid computing is a model for allowing companies to use a large number of computing resources on demand, no matter where they are located. www.informatica.com/solutions/resource_center/glossary/default.htm

Difference Between Cluster Computing VS. Grid Computing When two or more computers are used together to solve a problem, it is called a computer cluster . Then there are several ways of implementing the cluster, Beowulf is maybe the most known way to do it, but basically it is just cooperation between computers in order to solve a task or a problem. Cluster Computing is then just the thing you do when you use a computer cluster. Grid computing is something similar to cluster computing, it makes use of several computers connected is some way, to solve a large problem. There is often some confusion about the difference between grid vs. cluster computing. The big difference is that a cluster is homogenous while grids are heterogeneous. The computers that are part of a grid can run different operating systems and have different hardware whereas the cluster computers all have the same hardware and OS. A grid can make use of

spare computing power on a desktop computer while the machines in a cluster are dedicated to work as a single unit and nothing else. Grid are inherently distributed by its nature over a LAN, metropolitan or WAN. On the other hand, the computers in the cluster are normally contained in a single location or complex. Another difference lies in the way resources are handled. In case of Cluster, the whole system (all nodes) behave like a single system view and resources are managed by centralized resource manager. In case of Grid, every node is autonomous i.e. it has its own resource manager and behaves like an independent entity. Characteristics of Grid Computing Loosely coupled (Decentralization) Diversity and Dynamism Distributed Job Management & scheduling Characteristics of Cluster computing Tightly coupled systems Single system image Centralized Job management & scheduling system Areas of Grid Computing and it's applications for modeling and computing 1.Predictive Modeling and Simulations 2.Engineering Design and Automation 3.Energy Resources Exploration 4.Medical, Military and Basic Research 5.Visualization 1.Predictive Modeling and Simulations Predictive Modeling is done through extensive computer simulation experiments, which often involve large-scale computations to achieve the desired accuracy and turnaround time. It can also be called "Modeling the Future". Such numerical modeling requires state-of-the-art computing at speeds approaching 1 GFLOPS and beyond. In case of Computational Biology , It is the modeling and simulation of selforganizing adaptive response of systems where spatial and proximal information is of paramount importance. Areas of Research include: 1.Numerical Weather Forecasting. 2.Flood Warning 3. Semiconductor Simulation. 4. Oceanography.

5. Astrophysics (Modeling of Black holes and Astronomical formations). 6. Sequencing of the human genome. 7. Socio-economic and Government use. 2.Engineering Design and Automation Applications include: 1.Finite-element analysis. 2.Computational aerodynamics. 3.Remote Sensing Applications. 4.Artificial Intelligence and Automation This areas requires parallel processing for the following intelligence functions: 1.Image Processing 2. Pattern Recognition 3. Computer Vision 3.Energy Resources Exploration Applications include: 1. Seismic Exploration. 2. Reservoir Modeling. 3. Plasma Fusion Power. 4. Nuclear Reactor Safety. 4.Medical, Military and Basic Research Applications include: 1. Medical Imaging 2. Quantum Mechanics problems. 3. Polymer Chemistry. 4. Nuclear Weapon Design. 5.Visualization Applications include: 1.Computer-generated graphics, films and animations. 2.Data Visualization.

What is the Difference between Cluster Computing and Grid Computing?


Cluster computing and grid computing both refer to systems that use multiple computers to perform a task. The primary difference between the two is that grid computing relies on an application to be broken into discrete modules, where each module can run on a separate server. Cluster computing typically runs an entire application on each server, with redundancy between servers. Standard cluster computing is designed to produce a redundant environment that will ensure an application will continue to function in the event of a hardware or software failure. This cluster design requires that each node in the cluster mirror the existing nodes in both hardware environment and operating systems. General cluster computing is the process by which two or more computers are integrated to complete a specified process or task within an application. This integration can be tightly coupled or loosely coupled, depending on the desired objective of the cluster. Cluster computing began with the need to create redundancy for software applications but has expanded into a distributed grid model for some complex implementations. Grid computing is more of a distributed approach to solving complex problems that could not be solved with a typical cluster computing design. Cluster computing is a replication of servers and environments to create a redundant environment and a grid cluster is a set of computers loosely coupled together to solve independent modules or problems. Grid computing is designed to work independent problems in parallel, thereby leveraging the computer processing power of a distributed model. Prior to grid computing, any advanced algorithmic process was only available with super computers. These super computers were huge machines that took an enormous amount of energy and processing power to perform advanced problem solving. Grid computing is following the same paradigm as a super computer but distributing the model across many computers on a loosely coupled network. Each computer shares a few cycles of computer processing power to support the grid. The typical cluster design for an enterprise is a tightly coupled set of computers that act as one computer. These computers can be load balanced to support work load and network requests. In the event of a server failure within a cluster computing farm, the load balancer automatically routes traffic to another server on the cluster farm, which seamlessly continues the core functionality of the application. Grid computing and cluster computing are very similar as they each use the resources of additional servers and computer processing units (CPU) to complete the load requirements of an application.

There are many differences between Grid and Clusters. The following table shows comparison of Grid and Clusters.

http://www.dba-oracle.com/real_application_clusters_rac_grid/grid_vs_clusters.htm
CHARACTERISTIC Population Ownership Discovery User Management Resource management Allocation/ Scheduling Inter-Operability Single System Image Scalability Capacity Throughput Speed(Lat. Bandwidth) CLUSTER Commodity Computers Single Membership Services Centralized Centralized Centralized VIA and Proprietary Yes 100s Guaranteed Medium Low, high GRID Commodity and High-end computers Multiple Centralized Index and Decentralized Info Decentralized Distributed Decentralized No standards being developed No 1000? Varies, but high High High, Low

Table 2.2: Comparison between Clusters and Grid

Grid represents a bigger framework and architecture, and focuses on the broader scope or objective. Grid incorporates many varied computing resources and the clusters often become one of the many components. A Grid enables the sharing, selection, and aggregation of a wide variety of geographically distributed resources including supercomputers, storage systems, data sources, and specialized devices owned by different organizations for solving large-scale resource intensive problems in science, engineering, and commerce. Clusters, on the other hand, focus on a specific objective and purpose, such as a database service or a web logic application server. These clusters fit into grid architecture very well for ultimate sharing of resources at a higher level of aggregation. With technological advances it may not be long before a large number of nodes (say, 50 to 100 nodes) form a database cluster incorporating a variety of data stores consolidated into a huge data source. That may lead to a true Data Grid of different stores supported in a single large cluster. Cluster Objectives

Traditionally, the term cluster was used to represent Server Clusters. Clustered systems are synonymous with a group of servers. The server, being the main layer or platform where the database or application service resides, is the most important component in providing availability and high performance. Clusters, with multiple nodes, primarily aim at protecting server availability. Any failure in a server is transparent to end-users and is hidden by the failover of the application or database to a surviving node. End users or clients have access to the surviving node, thus allowing processing to continue. In another situation, a group of nodes are joined together to provide database services, as in a parallel database. Failure of a single node does not interrupt access to the database since the secondary nodes are still active in providing database access. Thus, the cluster technology focuses on providing an alternative to a failed server. However, we have to realize that there are many other layers or components, each of which is significant in maintaining overall availability of the database or application service. Although the server (node) is a very crucial component and plays the key role in running the database or application, there are other components, such as the disk storage units and networking equipment for which alternatives or backups need to be provided to meet the failure conditions. The traditional concept of clustering revolves around server clustering only. With this in mind, administrators and managers should provide adequate redundancy for other components in order to have an effective high availability environment.

Clustering is the use of multiple computers, typically PCs or UNIX workstations, multiple storage devices, and redundant interconnections, to form what appears to users as a single, highly-available system. Cluster computing can be used for load balancing as well as for high availability. Advocates of clustering suggest that the approach can help an enterprise achieve 99.999% availability in some cases. One of the main ideas of cluster computing is that, to the outside world, the cluster appears to be a single system. This differs from Enterprise Grid Computing where resources can enter and leave the pool as necessary. Cluster computing can't truly be characterized as a distributed computing solution; however, it's useful to understand the relationship of grid computing to cluster computing. Often, people confuse grid computing with cluster-based computing, but there are important differences. Grids consist of heterogeneous resources. Cluster computing is primarily concerned with computational resources; grid computing integrates storage, networking, and computation resources. Clusters usually contain a single type of processor and operating system; grids can contain machines from different vendors running various operating systems. (Grid workloadmanagement software from IBM, Platform Computing, DataSynapse, and United Devices are able to distribute workload to a multitude of machine types and configurations.) Grids are dynamic by their nature. Clusters typically contain a static number of processors and resources; resources come and go on the grid. Resources are provisioned onto and removed from the grid on an ongoing basis. Grids are inherently distributed over a local, metropolitan, or wide-area network. Usually, clusters are physically contained in the same complex in a single location; grids can be (and are) located everywhere. Cluster interconnect technology delivers extremely low network latency, which can cause problems if clusters are not close together. Grids offer increased scalability. Physical proximity and network latency limit the ability of clusters to scale out; due to their dynamic nature, grids offer the promise of high scalability. For example, recently, IBM, United Devices, and multiple life-science partners completed a grid project designed to identify promising drug compounds to treat smallpox. The grid consisted of approximately two million personal computers. Using conventional means, the project most

probably would have taken several years on the grid it took six months. Imagine what could have happened if there had been 20 million PCs on the grid. Taken to the extreme, the smallpox project could have been completed in minutes. Cluster and grid computing are completely complementary; many grids incorporate clusters among the resources they manage. Indeed, a grid user may be unaware that his workload is in fact being executed on a remote cluster. And while there are differences between grids and clusters, these differences afford them an important relationship because there will always be a place for clusters certain problems will always require a tight coupling of processors. However, as networking capability and bandwidth advances, problems that were previously the exclusive domain of cluster computing will be solvable by grid computing. It is vital to comprehend the balance between the inherent scalability of grids and the performance advantages of tightly coupled interconnections that clusters offer. Although these workday tasks are clustering's greatest hits, another application often gets more press: grid computing. The two terms are often used interchangeably both involve multiple systems working together to carry out a similar set of functions but there are differences. You can think of a cluster as grid computing under one roof: One company or department sets up a cluster and controls the whole, usually localized or centralized, system. Grid computing is more far-reaching; individual systems can be added or subtracted without a central control. What's more, miles can separate grid participants as long as there's a network connection between them. An example on a massive nay, cosmic scale is the SETI@Home project, which enlists PC users all over the Internet to download a screen saver that uses extra clock cycles to sort through radioClustering. In simple terms, clustering is the connecting together of two or more computers in a way that they behave like a single computer. Clustering refers to a number of ways to group servers in order to distribute load and eliminate single points of failure within a business-critical system. Clustering solutions are employed for parallel processing, load-balancing and, most commonly, fault tolerance. Proponents of clustering suggest that the approach can help an enterprise achieve close to 100% availability in some cases. One of the attributes of clustering is that, to the outside observer, the cluster appears to be a single system.

Introduction
The terms "grid computing" and "cluster computing" have been used almost interchangeably to describe networked computers that run distributed applications and share resources. They have been used to describe such a diverse set of distributed computing solutions that their meanings have become ambiguous. Both technologies improve application performance by executing parallelizable computations simultaneously on different machines, and both technologies enable the shared use of distributed resources. However, cluster and grid computing represent different approaches to solving performance problems; although their technologies and infrastructure differ, their features and benefits complement each other. A cluster and a grid can run on the same network at the same time, and a cluster can even contribute resources to a grid. Both of these forms of distributed computing have their roots in the UNIX operating system. However, as operating systems and networks have evolved, more operating systems have been adapted for use in both clusters and grids. Recent software releases have greatly improved both cluster and grid computing on the Microsoft Windows operating systems. This document defines grid computing and cluster computing from the perspective of the Windows operating systems and development environments. After reading this document you will have a clear understanding of the Windows cluster computing and grid computing options, and you will understand how the two technologies complement each other.

Whats the Difference?


The computers (or "nodes") on a cluster are networked in a tightly-coupled fashion-they are all on the same subnet of the same domain, often networked with very high bandwidth connections. The nodes are homogeneous; they all use the same hardware, run the same software, and are generally configured identically. Each node in a cluster is a dedicated resource--generally only the cluster applications run on a cluster node. One advantage available to clusters is the Message Passing Interface (MPI) which is a programming interface that allows the distributed application instances to communicate with each other and share information. Dedicated hardware, high-speed interconnects, and MPI provide clusters with the ability to work efficiently on fine-grained parallel problems, including problems with short tasks, some of which may depend on the results of previous tasks. In contrast, the nodes on a grid can be loosely-coupled; they may exist across domains or subnets. The nodes can be heterogeneous; they can include diverse hardware and software configurations. A grid is a dynamic system that can accommodate nodes coming in and dropping out over time. This ability to grow and shrink at need contributes to a grids ability to scale applications easily. Grids typically do not require high-performance interconnects; rather, they usually are configured to work with existing network connections. As a result, grids are better suited to relatively coarse-grained parallel problems, including problems composed primarily of

independent tasks. There is no dominant programming paradigm in grid computing today, and a key challenge to increasing the acceptance of grid computing is creating grid-enabled applications with familiar programming models. Digipedes objectoriented programming for grid (OOP-G) is one such model. Grids can incorporate clusters. Often the best way to make use of all available resources is to manage the cluster resources as part of a larger grid, assigning jobs and tasks to the resources best suited to those jobs and tasks. For example, jobs requiring MPI would be assigned exclusively to the cluster, while loosely-coupled jobs could be assigned to all grid nodes, including those in the cluster (when available). Indeed, cluster compute nodes make excellent grid nodes, and many grids are composed exclusively of dedicated servers.

Advantages/ Disadvantage of Grid Computing

Advantages
y y y

Can solve larger, more complex problems in a shorter time Easier to collaborate with other organizations Make better use of existing hardware

Disadvantages
y y y

Grid software and standards are still evolving Learning curve to get started Non-interactive job submission

Grid computing has been around for over 12 years now and its advantages are many. Grid computing can be defined in many ways but for these discussions let's simply call it a way to execute compute jobs (e.g. perl scripts, database queries, etc.) across a distributed set of resources instead of one central resource. In the past most computing was done in silos or large SMP like boxes. Even today you'll still see companies perform calculations on large SMP boxes (e.g. E10K's, HP Superdomes). But this model can be quite expensive and doesn't scale well. Along comes grid computing (top five strategic technologies for 2008) and now we have the ability to distribute jobs to many smaller server components using load sharing software that distributes the load evenly based on resource availability and policies. Now instead of having one heavily burdened server the load can be spread evenly across many smaller computers. The distributed nature of grid computing is transparent to the user. When a user submits a job they don't have to think about which machine their job is going to get executed on. The "grid software" will perform the necessary calculations and decide where to send the job based on policies. Many research institutions are using some sort of grid computing to address complex computational challenges. This post talks about how you can volunteer your workstation to be part of a grid that attempts to solve some of the world's biggest challenges. Some advantages are quite obvious:

1. No need to buy large six figure SMP servers for applications that can be split up and farmed out
to smaller commodity type servers. Results can then be concatenated and analyzed upon job(s) completion. 2. Much more efficient use of idle resources. Jobs can be farmed out to idle servers or even idle desktops. Many of these resources sit idle especially during off business hours. Policies can be in

place that allow jobs to only go to servers that are lightly loaded or have the appropriate amount of memory/cpu characteristics for the particular application. 3. Grid environments are much more modular and don't have single points of failure. If one of the servers/desktops within the grid fail there are plenty of other resources able to pick the load. Jobs can automatically restart if a failure occurs. 4. Policies can be managed by the grid software. The software is really the brains behind the grid. A client will reside on each server which send information back to the master telling it what type of availability or resources it has to complete incoming jobs. 5. This model scales very well. Need more compute resources? Just plug them in by installing grid client on additional desktops or servers. They can be removed just as easily on the fly. This modular environment really scales well. 6. Upgrading can be done on the fly without scheduling downtime. Since there are so many resources some can be taken offline while leaving enough for work to continue. This way upgrades can be cascaded as to not effect ongoing projects. 7. Jobs can be executed in parallel speeding performance. Grid environments are extremely well suited to run jobs that can be split into smaller chunks and run concurrently on many nodes. Using things like MPI will allow message passing to occur among compute resources.

Some disadvatages:

1. For memory hungry applications that can't take advantage of MPI you may be forced to run on a
large SMP. 2. You may need to have a fast interconnect between compute resources (gigabit ethernet at a minimum). Infiband for MPI intense applications 3. Some applications may need to be tweaked to take full advantage of the new model. 4. Licensing across many servers may make it prohibitive for some apps. Vendors are starting to be more flexible with environment like this. 5. Grid environments include many smaller servers across various administrative domains. Good tools for managing change and keeping configurations in sync with each other can be challenging in large environments. Tools exist to manage such challenges include systemimager, cfengine, Opsware, Bladelogic, pdsh, cssh, among others. 6. Political challenges associated with sharing resources (especially across different admin domains). Many groups are reluctant with sharing resources even if it benefits everyone involved. The benefits for all groups need to be clearly articulated and policies developed that keeps everyone happy. (easier said than done...)

Areas that already are taking good advantage of grid computing include bioinformatics, cheminformatics, oil & drilling, and financial applications. With the advantages listed above you'll start to see much larger adoption of Grids which should benefit everyone involved. I believe the biggest barrier right now is education.

You might also like