High Performance Computing is used increasingly in Product Development as digitization increases. Companies tend to perform an increased amount of testing digitally and simulation is increasingly becoming mainstream. For a number of years grid computing has been used to address the computational needs to run such algorithms. Over the last couple years, people have start using cloud computing and some have run grid type workloads on cloud computing.
So, are these two different needs to address similar problems? Actually not. The first element to point out is that they are optimized for different type of activities.
Cloud computing (and I am talking here about IaaS, as this is where the comparison makes sense) focuses on making available virtual machines (VM) to run a specific program. Typically, it's one virtual machine for one program. In most instances, the program will execute in the VM for a certain period of time. Cloud is all about provisioning a large number of VM's to many customers, helping them achieve a variety of tasks.
Grid computing on the other hand implies parallelization, the execution of a single task across many computers. This is typically used for operational research (OR) and other computation intensive tasks. Operational Research lends itself very well for such tasks as you search an optimal through approximation. Calculating the value of a particular objective in a number of situations with slightly evolving parameters to obtain a maximum or minimum, is what OR is all about. It is used increasingly for simulations, planning and scheduling and other compute intensive tasks. By executing the same model with different variables on a large number of machines, and then identifying the maximum or minimum, one can speed up the process drastically. That's what parallelization is all about.
So, is IaaS a good platform to run grid computing tasks on? And here the opinions differ. In an interesting podcast, Mike Vizard, the CEO of Parabon Technologies, a grid software and service provider, explains the differences, but at the same time points out they are very complementary. In an article, titled "Grid Computing and the future of Cloud Computing", Jennifer Schiff describes the differences and points out no one technology will take over.
My take on this is that it depends. Indeed, as Grid Computing is all about computational intensive tasks, the less overhead in the execution of the task, the better. So, running compute intensive tasks on a cloud reduces the CPU bandwidth available for actual computation as some cycles will be used for managing the virtualized environment, delaying the computational task, and as a result, slowing down the overall problem solving. So, if you have a regular need for such compute intensive tasks, and computer idle time in your datacenter, a grid is probably better. You may even think about a HPC cluster. It will give you the best efficiency.
On the other end, if you are only an occasional user of such environments and do not want to have to manage/provision a separate software stack, you might want to run such compute intensive tasks in a cloud environment. But you should realize you run it in a sub-optimal way.
Simulations, operational research, planning and other computational intensive tasks are increasingly used in organizations. Parallelization is becoming easier and more effective. So, companies are starting to look at environments where such workloads can be executed.
So, should cloud service providers also provide specific environments for grid computing, or will we see separate grid service providers appear on the market. Future will tell, but it is clear companies will be on the look-out for high performance computing types of environments. Due to the importance of such computation workloads in manufacturing, they will be amongst the first ones.