Everyone has heard of cloud computing these days, and rare is the organization that doesn’t use some form of cloud service. But another term that people are less familiar with is grid computing. Both grid and cloud computing involve using remote compute resources to get things done, but the two computing paradigms are quite distinct from each other. So, what exactly are the differences between grid and cloud computing?
Origins of the Cloud
Before the cloud, many people expected the future of computing to be application services. Specifically, organizations would subscribe to applications that were run by application hosters or application service providers (ASPs). Different ASPs would specialize in hosting one or more applications, as well as offering services such as configuration and customizations.
ASPs struggled to take off for a number of reasons, but the idea evolved into cloud-native applications, along with what we now think of as the cloud: huge generic compute and storage resources that can be provisioned as needed and released when they are no longer needed, and paid for on a usage basis. Rather than just being an enabler of applications as a service, cloud computing involves platform-as-a-service (PaaS), infrastructure-as-a-service (IaaS), and much more.
What is Grid Computing?
Whereas cloud computing involves renting generic compute resources — which may need to be scaled up or scaled down — to run different workloads or to provide platforms or infrastructure, grid computing makes use of unused or underutilized compute resources on a network of computers to perform large scale tasks. In effect, grid computing takes distributed compute resources and gets them to work together to form a kind of “virtual supercomputer”. Different tasks, or parts of tasks, are sent to different computers on the grid to get all the work done as quickly and efficiently as possible.
A grid network can be a corporate local area network with tens, hundreds, or possibly even thousands of computers connected to it to make up the grid. But a grid is not restricted to a single LAN, and global grids could be made up of millions or tens of millions of computers connected via the internet.
Grid computing is therefore ideally suited to particular types of workloads that can be split up into separate tasks that are not dependent on each other. For example, medical research involving examinations of the way proteins fold is hugely computationally intensive, because a large number of proteins have to be mathematically modelled. Grid computing is ideal for this because the job of modelling these proteins can be shared by many different computers which work on specific proteins and report back their results. Each protein is independent of all the others, so the processing can be done in any order.
World Community Grid
One of the largest public computing grids is the World Community Grid, which comprises almost 150,000 computers around the world. This grid is used to analyze data related to muscular dystrophy, cancer, influenza, ebola, and COVID-19, among other research areas. Although many of the computers that make up the grid are home desktop computers, the total computing power of the grid is over 600 TFLOPS, making it a significant virtual supercomputer in its own right.
The term “report back their results” begs the question of reporting back to whom. This introduces another important difference between cloud computing and grid computing. That’s because grid computing usually involves some sort of grid middleware which has a number of parts. First, there is usually client software on each of the computers that are part of the grid. Its role is to request individual jobs to process and manage this processing when there are spare resources available on the computer. Finally, it reports back the results to more middleware running on an end-user computer, which is managing the project and allocating jobs to individual computers on the grid.
One subset of grid computing is in-memory data grid computing. This is usually carried out on a local area network, and involves storing data in the random access memory (RAM) of a large number of computers that make up the grid. Rather than creating a virtual supercomputer, this creates a virtual memory superpool that can be used to hold large databases and then to access this data with minimal latency — perhaps for data analysis purposes.
An interesting side effect of the design of grid computing is that it is, by its nature, more redundant than cloud computing. Cloud service providers deal with redundancy by having multiple data centers and different regions and availability zones. That means that if a cloud data center becomes unavailable then workloads have to be moved to resources in other data data centers, where possible. But in a computer grid, if one of the computers on the grid fails or loses its connection to the grid, then jobs can be reallocated to other computers on the grid that are available. Alternatively, uncompleted jobs can simply wait until the computer does become available again.
The Future is Cloudy
Although grid computing can be tremendously powerful for specific tasks, the cloud computing paradigm is generally far more useful. For that reason, it’s likely that grid computing will continue to remain relatively obscure, while cloud computing will increasingly become the de-facto standard for all but the most specialist computing tasks that need to be handled by organizations in-house.