Cluster Computing / Computer Clusters
Definition
Cluster computing is the technique of linking two or more computers into a network (usually
through a local area network) in order to take advantage of the parallel processing power of those computers.
An eternal struggle in any IT department is in finding a method to squeeze the maximum processing
power out of a limited budget. Today more than ever, enterprises require enormous processing power in
order to manage their desktop applications, databases and knowledge management (case study: Rolls Royce
- pdf).
Many business processes are extremely heavy users of IT resources, and yet IT budgets struggle to keep pace
with the ever growing demand for yet more power.
IT Limitations
Unfortunately, though some of the largest enterprises require the processing power of a supercomputer,
few enterprises can rustle up supercomputer-sized IT budgets. While there have been significant advances
in mainframe computing in recent years, investment in a single large source of processing power may be
the most cost-effective or flexible solution.
Instead, many enterprises are now choosing to invest their IT budgets in computer clusters – networks
of high-powered, low-cost desktop computers – that provide an attractive alternative to mainframe computers.
Types of Computer Clusters
There are several different varieties of computer clusters, each offering different advantages to the user.
These varieties are:
* High Availability Clusters
HA Clusters are designed to ensure constant access to service applications. The clusters are designed to
maintain redundant nodes that can act as backup systems in the event of failure. The minimum number of
nodes in a HA cluster is two – one active and one redundant – though most HA clusters will use considerably more nodes.
HA clusters aim to solve the problems that arise from mainframe failure in an enterprise. Rather than
lose all access to IT systems, HA clusters ensure 24/7 access to computational power. This feature is
especially important in business, where data processing is usually time-sensitive.
* Load-balancing Clusters
Load-balancing clusters operate by routing all work through one or more load-balancing front-end nodes,
which then distribute the workload efficiently between the remaining active nodes.
Load-balancing clusters are extremely useful for those working with limited IT budgets. Devoting a few
nodes to managing the workflow of a cluster ensures that limited processing power can be optimised.
* High-performance Clusters
HPC clusters are designed to exploit the parallel processing power of multiple nodes. They are most
commonly used to perform functions that require nodes to communicate as they perform their tasks –
for instance, when calculation results from one node will affect future results from another.
The best known HPC cluster is Berkeley’s
Seti@Home Project, an HPC cluster consisting of over 5 million
volunteer home computers devoting processing power to the analysis of data from the Arecibo Observatory radio telescope.
Benefits of Computer Clusters
Computer clusters offer a number of benefits over mainframe computers, including:
* Reduced Cost
The price of off-the-shelf consumer desktops has plummeted in recent years, and this drop in price has
corresponded with a vast increase in their processing power and performance. The average desktop PC
today is many times more powerful than the first mainframe computers.
* Processing Power
The parallel processing power of a high-performance cluster can, in many cases, prove more cost effective
than a mainframe with similar power. This reduced price per unit of power enables enterprises to get a
greater ROI from their IT budget.
* Improved Network Technology
Driving the development of computer clusters has been a vast improvement in the technology related to
networking, along with a reduction in the price of such technology.
Computer clusters are typically connected via a single virtual local area network (VLAN), and the network
treats each computer as a separate node. Information can be passed throughout these networks with very
little lag, ensuring that data doesn’t bottleneck between nodes.
* Scalability
Perhaps the greatest advantage of computer clusters is the scalability they offer. While mainframe
computers have a fixed processing capacity, computer clusters can be easily expanded as requirements
change by adding additional nodes to the network.
* Availability
When a mainframe computer fails, the entire system fails. However, if a node in a computer cluster fails,
its operations can be simply transferred to another node within the cluster, ensuring that there is no
interruption in service.
A review of the cluster computing field from Syracuse University can be found
here, and a discussion on
the future of the field can be found at Cornell University (pdf).
|