Very often applications need more computing power than a sequential computer can provide. One way of overcoming this limitation is to improve the operating speed of processors and other components so that they can offer the power required by computationally intensive applications. Cluster computing is an increasingly popular high performance computing solution. Cluster computing is not a new area of computing. It is, however, evident that there is a growing interest in its usage in all areas where applications have traditionally used parallel or distributed computing platforms. The mounting interest has been fueled in part by the availability of powerful microprocessors and high-speed networks as off-the-shelf commodity components as well as in part by the rapidly maturing software components available to support high performance and high availability applications.
Overview of Cluster Computing
Cluster computing is best characterized as the integration of a number of off-the-shelf commodity computers and resources integrated through hardware, networks, and software to behave as a single computer. Initially, the terms cluster computing and high performance computing were viewed as one and the same. However, the technologies available today have redefined the term cluster computing to extend beyond parallel computing to incorporate load-balancing clusters (for example, web clusters) and high availability clusters. Clusters may also be deployed to address load balancing, parallel processing, systems management, and scalability. Each compute node (computer) may have different characteristics such as single processor or symmetric multiprocessor design, and access to various types of storage devices. The underlying network is a dedicated network made up of high-speed, low-latency switches that may be of a single switch or a hierarchy of multiple switches.
A computer cluster is a group of linked computers, working together closely so that in many respects they form a single computer. The components of a cluster are commonly, but not always, connected to each other through fast local area networks. Clusters are usually deployed to improve performance and/or availability over that provided by a single computer, while typically being much more cost-effective than single computers of comparable speed or availability.
Figure 1: Cluster Computing Demonstrating
Cluster is a widely used term meaning independent computers combined into a unified system through software and networking. At the most fundamental level, when two or more computers are used together to solve a problem, it is considered a cluster. Clusters are typically used for High Availability (HA) for greater reliability or High Performance Computing (HPC) to provide greater computational power than a single computer can provide.
As high-performance computing (HPC) clusters grow in size, they become increasingly complex and time-consuming to manage. Tasks such as deployment, maintenance, and monitoring of these clusters can be effectively managed using an automated cluster computing solution.
Benefits of Cluster Computing
The main benefits of clusters are scalability, availability, and performance. For scalability, a cluster uses the combined processing power of compute nodes to run cluster-enabled applications such as a parallel database server at a higher performance than a single machine can provide. Scaling the cluster’s processing power is achieved by simply adding additional nodes to the cluster. Availability within the cluster is assured as nodes within the cluster provide backup to each other in the event of a failure. In high-availability clusters, if a node is taken out of service or fails, the load is transferred to another node (or nodes) within the cluster. To the user, this operation is transparent as the applications and data running are also available on the failover nodes. An additional benefit comes with the existence of a single system image and the ease of manageability of the cluster. From the users perspective the users sees an application resource as the provider of services and applications. The user does not know or care if this resource is a single server, a cluster, or even which node within the cluster is providing services. These benefits map to needs of today’s enterprise business, education, military and scientific community infrastructures. In summary, clusters provide:
- Scalable capacity for compute, data, and transaction intensive applications, including support of mixed workloads.
- Horizontal and vertical scalability without downtime,
- Ability to handle unexpected peaks in workload,
- Central system management of a single systems image,
- 24 x 7 availability,
- Cost efficiency,
- Processing speed,
- Improved network infrastructure,
- High availability of resources.
 Baker, Mark, and Rajkumar Buyya. “Cluster computing at a glance.” High Performance Cluster Computing: Architectures and Systems 1, no. 3-47 (1999): 12.
 Elise De Doncker and Lina Hussein, “Parallel & Cluster Computing”, available online at: https://cs.wmich.edu/elise/courses/cs626/s09/hussein/Parallel_and_Cluster_Computing.pdf
 Kumar Kaushik, “Cluster Computing”, Seminar Report, Cochin University Of Science And Technology Kochi 2008
 “Computer Cluster”, available online at: https://www.techopedia.com/definition/6581/computer-cluster