Today's scientific experiments are increasingly becoming digital. Different complex experiments are performed in science experiments, which necessitate the use of a powerful computing system, and a single computer cannot solve those complex problems in a timely manner. As a result, various computing techniques such as cluster computing, distributed computing, grid computing, network computing, and so on have been developed.
Today, in this article, we will discuss what Grid Computing is, an example of it, how HPC can be achieved using Grid Computing, the benefits of grid computing, the barriers to grid computing, and much more. So let's get started.
Table of Contents
Grid computing is a kind of distributed computing system formed by a large group of independent computers that might be located in different geographical locations and are connected via a network and all work together to reach set goals. Grid computing provides a large number of resources which might be storage resources, database resources, network resources, CPU resources, etc on demand to the users.
The goal of all the computers in the grid is to reach a common set goal that a single machine cannot achieve.
For a single machine or even a single supercomputer, it is difficult to do some of the computing themselves so computing like grid computing and cluster computing was introduced which do the task parallel and independently in a short period of time.
A grid is a collection of machines that includes nodes, resources, members, clients, hosts, and many others. So all the combines ultimately form a grid and if the computation is possible in the grid then we called it grid computing.
How Grid Computing Works?
Suppose say user requests some large task to solve to control server or grid server. There will be numerous groups of grid servers. This grid server acts as an administrator and guides the whole network. Grid Server splits the task into subtasks and assigns the subtask to the grid client that has idle resources.
It should be noted that not all grid clients will receive an equal number of tasks. The tasks are dependent on the resource's availability on the grid client. Grid Client (or grid node) uses its own resources and returns them to Grid Server, which aggregates and returns a response to the client.
To participate in grid computing each machine is running specialized software. A collection of computer software is called Middleware. It controls the network and its resources. Also, Middleware ensures that unwanted tasks are not performed on the network. So, middleware does the work of preventing security threats.
Example of Grid Computing
Grid Computing is generally used for scientific research via different organizations and offices. They are used for doing Genetics Researches, Cancer Research, Financial Analysis, Earthquake simulations and analysis,eCommerce back-office data processing task, motion-picture animation, protein folding, weather, climate modeling, oil exploration research, etc.
Types of Resources in Grid Computing
These are 5 common resources used in grid computing.
Computation: In order to compute, there must be a grid of processors, which are the computers that carry out the calculations for scientific research. There is a wide range of possible speeds and architectural configurations for processors. You can use a Processor to take advantage of the computation by running pre-existing applications in the grid; to split the work of applications into small parts that can be executed in parallel on different processors; to make an application run that needs to be run many times on different machines in a grid, and to split application work into small parts that can be executed on a single machine.
Data Storage: Grid provides a virtual view of the data storage where each machine on the grid provides some parts of its available storage (like HDD space) and eventually grid will have a large collection of data storage virtually connected by the grid software and managed by grid heads. This integrated view of data storage is also called a Data Grid.
Communication: Communication is one of the crucial resources in Grid Computing. Proper bandwidth is necessary for transferring tasks among the various nodes(machines) to do the computation. High-speed networks connecting the grids are necessary for transferring faster jobs to the machines in the grid.
Software and Licenses: Many software has licenses and is only allowed to install on a fixed number of machines and this software might be very expensive. So, with the help of grid computing, we can utilize licenses to use the software. But software companies mostly provide restrictions like only 100 clients can only use the software at a time.
Special Equipment, Architectures, and Policies: Grid machines has different heterogeneous machines with different architectures, OS, devices, and equipment. This kind of resource might help the grid in assigning jobs to machines. There might be some software that only works on particular OS and architectures. So, that task can be easily assigned to those machines only.
6 Grid Computing is very non-interactive.
Characteristics of Grid Computing
Grid includes some properties of distributed systems and parallel systems and added its own distinct characteristics. So it inherits some useful character from ancestors.
- Large Scale: Grid resources are scattered in different locations connected via a network. Resources can be storage or memory and they are scalable.
- Geographical Distribution: Grid nodes are located in different geographical locations which help to bear fault tolerations.
- Heterogeneity and Loosely Coupled: Grid machines are loosely coupled and they are heterogeneity in nature which means machines in a network are not having the same platform,
OS, and architecture.
- Resource Sharing: The grid allows resource sharing of various organizations in various grid machines.
- Multiple Administrations: Each organization's data and the process can administrators own resources in the grid machine.
- Resource Coordination: Each resource machine in grids coordinates with the host to complete common goals.
- Quality of Service (QoS): Grid Provides quality services at the desired level of performance to the clients by using large machine resources.
- Transparent Access: Although there are lots of things in the grid, clients can see the grid just as a single virtual computer doing its task at high performance.
Virtualization in Grid Computing
Grid computing provides various levels of virtualization like storage virtualization, network virtualization, application virtualization, CPU virtualization.
Types of Grid Computing
There are many types of Grids and they are divided into the following types:
Computational Grid Computing
A computational grid is a loose network of computers that are linked together and here large computational task is divided into individual machines doing parallel calculations and then returning final results.
Data Grid Computing
Data grid computing is popular in research.
It manages large amounts of distributed data and allows multiple users to manage (access, change, and transfer data) at the same time.
Collaborative Grid Computing
Collaborative Grid Computing is popular for doing collaborative work, and it is primarily used for tasks that require collaboration.
Manuscript Grid Computing
Manuscript grid computing is a type of grid computing that is used when dealing with large amounts of image and text blocks. It is a single-column grid.
Modular Grid Computing
It is a type of grid computing that governs the placement and cropping of pictures as well as text. A modular grid divides the page vertically and horizontally column and rows basis, resulting in modules and more layout control.
Benefits of Grid Computing
Some of the benefits/advantages of grid computing are :
Making use of Underutilized resources: In the organization, a large amount of resources remains idle in such a scenario grid computing provides a framework for utilizing resources optimally.
Resource Balancing: Grid computing provides resource balancing by routing grid jobs to low-utilization machines. Each grid node's subtasks are not distributed equally. It monitors the available resources on each node and assigns tasks accordingly. If a machine has a lot of resources, it is more likely that the machine will get more tasks to process. If the machine experiences unexpected traffic, it is routed to a relatively idle computer in the grid.
Parallel CPU Capacity: This is one of the best features of grid computing as the job is divided into small parts and each part is executed in a different machine in the grid. Suppose you do 1 task yourself then it takes 1 hour, if you use a grid then you can do it in 5 minutes.
Virtual Resources and Virtual organization of collaboration: In the grid, multiple organizations can collaborate to share their unused resources with each other to make the grid more efficient and effective. And they might be located in different locations.
Access to additional Resources: Suppose you are using storage resources and later need additional storage and network resource then you can use them.
Reliability: In grid computing, if one of the nodes fails to perform then grid software automatically reassigns the job to another machine that is in the idle stage.
Management: The main role of grid computing is to manage heterogeneous systems and distributes IT infrastructure from central locations.
Grid Computing is not client-server architecture. There is no server required. Grid Server is just for controlling but not for processing.
Challenges in Grid Computing
Grid computing has many barriers and challenges let's discuss a few of them.
Scalability: If the task cannot be broken down into smaller completely independent task then it can cause content and this limit scalability. Also if the algorithm can only split on a limited number of independent parts then this also causes a scalability barrier.
Message Communication Latencies: Message communication between hosts and nodes plays important role in Grid Computing. If there are latencies among the jobs then this may create a problem
Network Communication Capacities: Sometimes network communication capacities can also be barriers. Network devices use different protocols for communication with other devices and network device capacities also play an important role.
Input and Output Bandwidth to storage and other devices
Synchronization Protocol: Proper sync should be maintained between Grid Server and Grid Client nodes to properly utilize the resources.
What is Grid Security Model?
The grid security model is an abstraction of enterprise security services presented as a single model. This makes it possible for organizations to make use of their already established security infrastructure while simultaneously communicating with other businesses that employ a variety of technologies.
Ans: The answer is No. If your application or research tasks cannot be broken down into smaller independent parallel tasks then you cannot use grid computing. Also, note that there are no practical tools for splitting the task to run in parallel forms in a grid. This depends on the skilled application programmers and architects to write a parallel grid application. These skilled people may require intensive mathematics and programming talents.