What is the difference between Cloud Computing and Grid Computing? [closed]
What are the significant differences between Cloud Computing and Grid Computing ? What are the precise definations and target application domains for both ? I'm looking for conceptual insights along with technicalities.
Like Windows Azure is a Cloud OS, do we have anytihng such for Grid Computing ?
In past I did work on distributed and parallel computing and I used the librariries like PVM and MPI for processing distribution. Out of curiosity I wanted to know If Grid Computing is distributed computing extended over internet ?
Solution 1:
Grid computing is where more than one computer coordinates to solve a problem together. Often used for problems involving a lot of number crunching, which can be easily parallelisable.
Cloud computing is where an application doesn't access resources it requires directly, rather it accesses them through something like a service. So instead of talking to a specific hard drive for storage, and a specific CPU for computation, etc. it talks to some service that provides these resources. The service then maps any requests for resources to its physical resources, in order to provide for the application. Usually the service has access to a large amount of physical resources, and can dynamically allocate them as they are needed.
In this way, if an application requires only a small amount of some resource, say computation, then the service only allocates a small amount, say on a single physical CPU (that may be shared with some other application using the service). If the application requires a large amount of some resource, then the service allocates that large amount, say a grid of CPUs. The application is relatively oblivious to this, and all the complex handling and coordination is performed by the service, not the application. In this way the application can scale well.
For example a web site written "on the cloud" may share a server with many other web sites while it has a low amount of traffic, but may be moved to its own dedicated server, or grid of servers, if it ever has massive amounts of traffic. This is all handled by the cloud service, so the application shouldn't have to be modified drastically to cope.
A cloud would usually use a grid. A grid is not necessarily a cloud or part of a cloud.
Wikipedia articles: Grid computing, Cloud computing.
Solution 2:
This is the perfect answer for difference between Cloud Computing and Grid Computing ? Check this:
Solution 3:
You should really read Wikipedia for in-depth understanding. In short, Cloud computing means you develop/run your software remotely on remote platform. This can be either using remote virtual infrastructure (amazon EC2), remote platform (google app engine), or remote application (force.com or gmail.com).
Grid computing means using many physical hardwares to do computations (in the broad sense) as if it was a single hardware. This means that you can run your application on several distinct machines at the same time.
not very accurate but enough to get you started.
Solution 4:
I would say that the basic difference is this:
Grids are used as computing/storage platform.
We start talking about cloud computing when it offers services. I would almost say that cloud computing is higher-level grid. Now I know these are not definitions, but maybe it will make it more clear.
As far as application domains go, grids require users (developers mostly) to actually create services from low-level functions that grid offers. Cloud will offer complete blocks of functionality that you can use in your application.
Example (you want to create physical simulation of ball dropping from certain height): Grid: Study how to compute physics on a computer, create appropriate code, optimize it for certain hardware, think about paralellization, set inputs send application to grid and wait for answer
Cloud: Set diameter of a ball, material from pre-set types, height from which the ball is dropping, etc and ask for results
I would say that if you created OS for grid, you would actually create cloud OS.