Showing posts with label opinion. Show all posts
Showing posts with label opinion. Show all posts

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.

January 24, 2011

Disruptive Technology


disrupt:
 to interrupt the normal course or unity of


With somewhat regular frequency, I get into discussions about whether GPUs are a "disruptive technology" in HPC (I hang out with nerds). Often this is in response to articles like this. As someone who now covers HPC for NVIDIA, but was working for LLNL through most of the last decade, I have some decidedly strong opinions on this topic.

The disruptive part is the upset in the top500 performance curve. If you plot the up-and-to-the-right performance of the top500 list, IBM BlueGene/L was above the curve as it existed at the time -- same outlay of cash/power/time, lots more performance. As the first massively parallel processing machine based on embedded processors, it was assumed that subsequent improvements in PPC (or other) embedded processors would provide a series of increasingly faster MPP systems. This has been mostly true, though the follow-on machines have not been large enough to capture the number 1 position.

Going back further in time, I don't think I ever heard the Earth Simulator referred to as disruptive technology. Though it captured the and held the "worlds fastest computer" title by a larger margin and for a longer time that BG/L would, most viewed it as the last gasp of vector technology. Distributed memory clusters like IBM SP had already won the mind-share at most sites, and though Earth Simulator was able to remain at #1 for over two years, it was pretty clear that it's dominance would come to an end. More vector machines were built, but HPC codes continued to move from vector to distributed memory.

Getting back to the question, with BlueGene/Q poised to re-take the top500 crown, are GPUs a temporary disturbance of embedded MPP march to dominance, or a permanent shift?

My answer is that disruption isn't a zero-sum game, and embedded MPP doesn't have to fail for GPUs to succeed. GPUs provide the "same slope, higher intercept" disruption of the top500 curve that embedded MPP did. Like embedded MPP, advances in the underlying technology will continue to provide GPU computing with performance improvements for years to come. And like embedded MPP, GPUs are leveraging a robust consumer market to achieve those advancements.

Where GPUs hold a significant advantage is barrier to entry. There are millions of CUDA-capable GPUs in systems today, and hundreds of universities teaching CUDA. Moreover, GPU clusters can be constructed entirely of common off-the-shelf hardware and software, putting the cost within reach of individual researchers and small teams. It's instructive to remember that Nebulae and Tianhe-1A were designed and built in months, while most of the embedded MPP designs have taken years to go from powerpoint to power-on.

There is room for both. In the upper range of the top500, embedded MPP will continue to leverage specialized networks and OS stacks to achieve performance through high node counts. At the same time, GPUs are already delivering systems with over 1TF of peak double-precision per node on everything from desktops to petaflop clusters. Both have been disruptive, and either could grow to dominate HPC in years to come. I've adjusted my career path accordingly for the next five years or so.