Nowadays nearly every field require high performance computing for their
cutting-edge progress. With a general definition and outlook, HPC may seem to
be very expensive to afford in which point Cluster Computing (HPC with
commodity components) comes to play. Beowulf, HPVM are some of the participants
of cluster community. There are also two other HPC technologies which are Grid
and Cloud. By definition and with the general context all three technologies
seem to have a same meaning. “Get extraordinary computing power by combining
individual computing components together”. The main aim of writing this blog is
to give a clear picture on where did all these three HPC technologies stand
separated. Let’s start delving into a detail comparison starting from Cluster.
Cluster Computing:
You can perform HPC in your home with a Cluster. Yes (perhaps with some
effort). Cluster is a cheap way for gaining huge computing power. A cluster is
a collection of commodity computers connected together with a system of high
speed network such as Myrinet, SCM or Infiniband, a system which then
coordinate among themselves to act as one parallel machine pushing out enormous
HPC power. Putting in an easy context, a simple high speed LAN, with all the
nodes coordinating and communicating among them to solve a problem, is a
Cluster. All Cluster nodes are tightly coupled. No matter how many systems
participate in a cluster, they give a Single System Image (SSI). Clusters are
notorious for their high availability, load balancing along excellent compute
power. Also they comprise of redundant nodes which are used as backup nodes in
case of node failure. Tasks are distributed among all the standalone computers
to form a cluster in a balanced way. More emphasis is given to computational
load than concentrating on other ancillary activities. A unique layer known as
‘Middleware’ is required for provided the SSI. Application destined to run in a
cluster must be programmed separately with a task management routine that has
to be performed to divide a particular task between computers of cluster.
Clusters are used in various streams like fluid dynamics, life sciences,
nuclear simulations, data mining, image processing, aerodynamics and
astrophysics which are popularly known as grand challenging applications. They
are also used in lot of commercial applications too.
Condor, Nimrod, PARAMON, MPI and OpenMP are some of the Cluster projects
to achieve high performance in cluster computing.
Grid Computing:
Grid computing combines computers from multiple administrative domains
to reach a common goal, to solve a single task, and may then disappear just as
quickly. It is analogous to the power grid which gives power to your home
appliances on-demand. More than one cluster combines to form a Grid. For any
application, a middleware apportion tasks of that application to among several
compute nodes of the Grid. To put in simple context, HPC appears when needed
and disappears when completed. The Size of Grid may vary from small network
within a company to large collaborations of various enterprise networks across
the world. All the nodes participating in a Grid are loose-coupled and
heterogeneous in nature which makes programming grid applications a lot more
complex. Resources in Grid are owned by many organizations which also incurs a
burden to system administration.
Globus, EGI-InSPIRE(European Grid Infrastructure - Integrated
Sustainable Pan-European Infrastructure for Research in Europe), Information
Power Grid, GriPhyN, NEESGrid, National Technology Grid, Particle Physics Data
Grid are some of the Grid projects around the globe.
Cloud Computing:
Yes. Piracy is a Sin. But giving a heavy amount to buy software which is
used once or twice a month is not a fair deal. Isn’t it? Here comes
significance to Cloud Computing. We can use the required software by paying for
using it and not for buying it. A perfect analogy for using Cloud Computing
would be hiring a Taxi rather than buying a car, for a simple short travel. We
could agree to a SLA which consists of various pay schemes for using particular
software. This concept of Cloud Computing is known as Software as a Service
(SaaS). Likewise we can also use various processing power, storage and network
according to our use as Infrastructure as a Service (IaaS). High Level
Integrated Environment for building, testing and deploying of online
applications can be done using Platform as a Service (PaaS).