Today's science experiments are increasingly becoming digital. In science experiments, different complex experiments are performed which requires a high computing system and a single computer cannot solve those complex problems in a short time. So, for this different types of computing techniques were developed like Cluster computing, Distributed Computing, Grid Computing, Network Computing, etc. Today in this article we will discuss what is Grid Computing, its example, how HPC can be achieved using Grid Computing, what are the benefits of grid computing, the barrier of grid computing, and many more. So let's start.
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, cluster computing was introduced which does 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 group 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 where have idle resource.Note that each grid client maynot get an equal number of tasks. The tasks depend upon the availability of the resource on the grid client.Grid Client(or grid node) utilizes its own resources and gives them back to Grid Server, it aggregates and gives a response back 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 organization 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, and climate modeling, oil exploration researches, etc.
Types of Resources in Grid Computing
These are 5 common resources used in grid computing.
Computation: For computation, processors on the grid are needed which do the actual calculation of scientific research. Processors can be a variety of speed and architecture. You can use a Processor to exploit the computation by running existing applications in the grid, to split applications work into small parts to execute in parallel on different processors, to make run an application that needs to be run many times on different machines in a grid.
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 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(machine) 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: Grids machines has different heterogeneous machines with different architectures, OS, devices, and equipment. This kind of resource might help the grid for 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.
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: 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 of 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.
Benefit 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 a resource balancing feature by routing the grid jobs on machines with low utilization. Each subtask is not equally divided on each grid node. It tracks available resources on each node and gives the task accordingly. If some machine has large resources available then it has more chance that the machine will get more tasks to process. If unexpected traffic on the machine is also routed to the 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 devices 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.
Ans: 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.