February 7, 2011

To the Cloud or Something

I cover both high performance computing and cloud computing for NVIDIA. I have to confess that, like most HPC people, I hated "cloud" as an adjective. It seemed to be a pointless renaming of previously existing technologies. I now use it several times a day.

In the absolute sense, there are some pretty comprehensive definitions of cloud computing. The various types of cloud computing are well-specified, as are the mix of technologies required. That combination of technologies differs from other models. Operating a service in Amazon's EC2 is significantly different that standing up an IMAP server at a small campus, even if both ultimately involve computers and networks.

It also means something in the relative sense. CTO's and CIO's understand what "moving a service to the cloud" refers to, even if they can't repeat the NIST or wikipedia definitions from memory. This is similar to "high performance computing", which means something specific to most of us in HPC, even if looks like "servers connected to a network" to non-HPC folks.

Now that that is out of the way, why not try it? Amazon's Elastic Compute Cloud is available to anyone with an Internet connection and a credit card. I was heavily involved in getting EC2 enabled with GPUs, and the resulting service works smoother than I could have imagined when the project began. It also provides nearly bare-metal performance.

I gave a talk on getting started with EC2 at Supercomputing 2010. The process is easy enough that anyone with 30min and the previously mentioned Internet connection and credit card should be able to do it. If you're too impatient to sit though the slide deck and/or video, the summary is:

  1. Create an AWS Account at http://aws.amazon.com/
  2. Sign into the EC2 console at http://aws.amazon.com/console
  3. Create a Key Pair for ssh
  4. Add SSH to a Security Group to open the firewall
  5. Launch (instance) a GPU-ready image using cg1.4xlarge
  6. Enjoy root access to a 1TF system

The final point is not a typo. The Amazon GPU offering is a system with two Tesla m2050 GPUs, each of which provides 515 gigaflops of double-precision computing performance. Currently, Amazon is charging $2.10/hour for a system that would have easily placed in the top 50 of the world's computer systems ten years ago. It's really an amazing amount of double-precision computing power, and I've already seen some interesting uses.

It's also a good technique to have in your back pocket if you're reading this blog to follow the CUDA programming examples. My test machines generally have one or two Tesla cards, which have many features that the GeForce consumer cards lack (higher double-precision floating point performance, dual DMA engines, ECC, more memory, etc). My examples will usually work on GeForce, but EC2 provides a way to get access to higher performance Tesla devices when it is required.

And you don't have to call it cloud computing if you don't want to.

No comments: