Cloud Computing: Revolutionary technology for high performance computing or partly cloudy with a chance of "we've heard this one before?"
Several years ago I was walking around the annual supercomputing exposition and noticed that many products were now Grid Enabled. This merited had a good laugh. To me, it was funny for two reasons: First, it seems there is no consensus on the definition of a grid. Of course, Ian Foster had defined a computing grid, but others took liberties with the concept of a non-local distributed computing network. Often it was associated with utility computing (i.e. you get you computing like electricity by plugging into the “grid”). Examples ranged from a cellphone network, a LAN, the Internet, even a cluster.
The lack of a concise definition did not stop the market from “enabling” everything for grid computing. All you had to do was add the phase “Grid Ready” or “Grid Enabled” to your product literature and you were “on the grid” so-to-speak. My second chuckle came from the overly obvious messaging; somewhat like labeling a car “road enabled.”
I always believed the grid concept was a good idea, but like anything else, it seemed to be oversold and misunderstood at many levels. Of late, the grid thing seems to have given way to the latest buzz word: cloud computing. Because I don’t have a good definition of grid computing, I really don’t know the difference between grid and cloud computing. Are they the same? Can you have a grid of clouds, or cloud of grids? And, let’s not forget to ask, is it green? Should I be buying products that are green cloud enabled? Somehow that sounds a little ominous.
Which brings us to today’s weather forecast. Partly cloudy with an Amazon Elastic Compute Cloud (Amazon EC2) forming quickly and a cloud from flexiscale moving in from across the ocean. There is also the Sun Grid Compute Utility at Network.com front moving in, but it has Grid in the name so maybe it’s not a cloud after all. There are others forming to be sure. Virtualization plays a big role in the cloud concept. Maybe cloud computing is grid computing with virtualization. Or, maybe it is really grid computing, but just easier to use. In any case, from what I have read, cloud computing should solve all our problems and revolutionize the computer industry. Yippee, maybe that is all that needs be said on the topic.
Ah, but not so fast. When ever anyone talks to me about “remote” anything, the first thing that pops into my mind is security. I would have no problem running recreational software in a cloud, but doing legal and financial things beyond my little router firewall requires a bit of trust. I use on-line banking with an encrypted browser and the bank does computation for me (balances, computing the enormous interest on my savings account, etc). Does that mean my bank is cloud enabled? There is always the implied promise of security but, you know, when you have root privileges in the cloud you can rain on a lot of picnics.
If I’m a big company, I probably want my private VPN-Cloud. I seriously doubt I would allow anything into the wild. I find it interesting that companies spend all kinds of money on securing their corporate IT networks only to allow laptops with anything on them to be taken out the door and lost at the airport by the truckload. Maybe that corporate cloud isn’t a bad idea from a security standpoint. Would I use cloud computing to design my next product? I would have to think about that one.
I think cloud, like grid, computing must address and ensure security or it is bound to be one of those interesting things that never quite catches on.
Then there is the performance myth. You know, the if we could use the latent PC cycles in our company at night we would have the world fastest supercomputer bit. I have been hearing about that good idea for years. One question for those HPC in the office cubicle mavens, how is it going? Of course, like any other concept it was born of good intentions. As most anyone who has run an MPI program will tell you, a bunch of PC’s and a network do not a supercomputer make. Unless you want to render a new action movie, or do many repetitive single process runs, that corporate network supercomputer is pretty much a non-starter.
As I mentioned, the cloud approach often relies on virtualization. In HPC, there has been a non-trivial amount of work to get the applications as close to the hardware as possible. Virtualization tends to move in the opposite direction. Running a cluster application in a cloud would probably not be a productive exercise. The supercomputing cloud is nice idea, but like most most good ideas, the devil lives in the details.
With all that said, there is still something I find attractive about the grid/cloud idea. The ability to tap into a huge computing resource only when you need it is attractive. Beyond running a sequential (single process) application, the challenge is software. (When is this ever not the case.) My belief is that for a cloud to be effective in HPC, software needs be dynamic adapting to resources (slow/fast and processors/interconnects) as they become available (and fail). Most HPC applications don’t have this ability. I have discussed dynamic execution before and here is yet another reason to consider this approach.
Finally, some interesting clouds are forming. I just read about a company called CherryPal that plans to sell a box and presumably a cloud. As far as I can tell, the box provides a Linux “desk top” environment (iTunes, OpenOffice, instant messenger, media player, etc.) that is maintained in the cloud. There is also 50 GB of cloud Internet storage. All this for “much less than an Asus Eee” and a claimed power draw of only 2 watts (which is why I put this announcement into the “wait and see” category). The approach does make some sense in a managed mainframe kind of way.
Finally, all the cloud goodness depends on broadband (or better) Internet access. For most companies and home owners this is not a an issue, but just to be sure, you may wan to check that your Internet connection is cloud enabled otherwise you might miss all the fun.