Wednesday, October 3, 2012

Cluster vs Grid vs Cloud - Faces of HPC


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).