Researchers at the Reliable Adaptive Distributed Systems Laboratory (RAD Lab) at UC Berkeley have released a 23-page white paper, Above the Clouds [PDF], that provides an in-depth analysis of the emerging cloud computing model. The paper is one of the first academic treatises on the subject to offer a critical profile of the cloud computing landscape today.
We asked two of the paper’s authors, David Patterson, Professor in Computer Science at UC Berkeley, and Armando Fox, Adjunct Associate Professor at UC Berkeley’s RAD Lab, to elaborate on the findings and offer their perspective on how the cloud will impact high performance computing.
HPCwire: Cloud computing has come to mean a variety of things. For the purpose of our discussion here, how would you define it?
David Patterson: Cloud computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services. The services themselves have long been referred to as Software as a Service (SaaS). The datacenter hardware and software is what we will call a cloud. When a cloud is made available in a pay-as-you-go manner to the general public, we call it a “public cloud”; the service being sold is utility computing. We use the term “private cloud” to refer to internal datacenters of a business or other organization, not made available to the general public. Thus, cloud computing is the sum of SaaS and utility computing, but does not include private clouds.
We don’t use terms such as “X as a service” (XaaS); values of X we have seen include infrastructure, hardware, and platform, but we were unable to agree, even among ourselves, what the precise differences among them might be.
Armando Fox: The key ingredient is having tremendous computing resources instantly available on-tap with no advance arrangements needed and pay-as-you-go billing. Especially relevant is the fact that once you release unused resources, you don’t have to pay for them anymore. This property of “elasticity” shifts many risks from the users of that equipment to the provider of the equipment, creating new economic models that can change the way that startups, researchers, and even established enterprises think about IT spending.
HPCwire: Cloud computing is arguably the biggest paradigm shift in IT since the PC. Although similar concepts like utility computing and grid computing have been around for some time, they never attained widespread commercial success. What pieces of technology have come together to make cloud computing viable today?
Fox: While there are many technical factors, we believe the most important is the existence of extremely large datacenters built from tens of thousands of commodity computers. It turns out also that there are cost advantages of a factor of five to seven in capitalizing a datacenter at this scale compared to, say, a medium-sized enterprise datacenter of hundreds of computers. And the huge growth of the Internet drove companies such as Google, Amazon, eBay, and others to build such datacenters, to develop infrastructure software for them, such as Google File System or Amazon Dynamo, and to develop the operational expertise to armor them against the hostile environment of the public Internet.
Patterson: These technical advances were matched by a business model that offers three key features: 1) The illusion of infinite computing resources available on demand; 2) The elimination of an up-front commitment by cloud users, thereby allowing companies to start small; and 3) The ability to pay for use of computing resources on a short-term basis as needed and to release them when unneeded. Past efforts at utility computing failed because one or two of these three critical characteristics were missing. For example, Intel Computing Services in 2000-2001 required negotiating a contract and longer-term use than per hour.
Alas, grid computing created protocols that offered shared computation and storage over long distances and did not lead to a software environment that grew beyond the HPC community.
HPCwire: There are some prominent people in the industry like Richard Stallman — quoted in the paper — who portray cloud services as marketing hype and who are wary of becoming dependent on cloud and service providers. Is this just resistance to new paradigms or do people like Stallman have a valid point?
Fox: While we believe that cloud computing is definitely more than just “marketing hype,” we agree that the uncertainty of having one’s data and applications “locked in the cloud” may be a potential obstacle to cloud adoption. As we describe in the paper, cloud offerings may differ in the level of management and functionality offered in the cloud. For example, Amazon’s offering relies heavily on the appeal of a robust open-source software ecosystem and provides relatively little in the way of “built-in” functionality; whereas, Microsoft Azure allows deployed applications to run in a managed .NET environment and make use of the .NET framework and libraries, making those applications (and potentially, the data they manage) more difficult to move to another cloud provider that might not offer .NET.
Patterson: We think there is a potential danger to business continuity if you are dependent on a single cloud computing provider. We argue that such concerns can be addressed by standardizing APIs so that multiple providers can offer the same service, so that cloud computing users can move their application if a provider offers poor service or goes out of business.
The obvious fear is that this would lead to a “race-to-the-bottom” and would flatten the profits of cloud computing providers. We offer two arguments to allay this fear. First, the quality of a service matters as well as the price, so customers will not necessarily jump to the lowest cost service. Some Internet service providers today cost a factor of ten more than others because they are more dependable and offer extra services to improve usability. Second, standardization of APIs enables a new usage model in which the same software infrastructure can be used in a local datacenter and in a public cloud. Such an option could enable “surge computing,” in which the public cloud is used to capture the extra tasks that cannot be easily run in the datacenter (or private cloud) due to temporarily heavy workloads. We think surge computing could significantly expand the size of the cloud computing market.
HPCwire: The paper lists ten obstacles to cloud computing. Can you point to one or two that seem the most important overall, and also for high performance computing in particular?
Fox: It was really hard to rank-order these, and even the order in the paper is only a partial order. But we all agreed that cloud computing needs standardized APIs that would work across cloud vendors. This would help address TWO obstacles, namely maintaining high availability and preventing data lock-in. As far as technical obstacles, we observed that just as in the past, the cost of long-haul network bandwidth is falling more slowly than all other hardware costs, so we would like to see novel ways that cloud providers could address this high cost of data transfer, such as allowing customers to FedEx a box of disks directly to the cloud datacenter.
For HPC, we think some basic software infrastructure, such as gang scheduling for clouds, would help a lot; but in general, the HPC community has not had to go through the process of re-architecting software that the Web community went through in the 90s. We think there are plenty of opportunities for innovation if HPC steps up to the plate, and an early demonstration would go a long way toward jump starting that area. We’re discussing some possibilities at the Berkeley Par Lab, just upstairs from the RAD Lab.
HPCwire: The paper also describes some new application opportunities. Can you outline these and talk about why they are particularly suitable for cloud computing?
Fox: A major new area is allowing desktop apps to extend seamlessly into the cloud; for example, the popular analysis software MATLAB and Mathematica both support this now. Also, because of the “cost associativity” of the cloud — using 1,000 computers for an hour is the same price as one computer for 1,000 hours — it is great for apps that parallelize well, like document conversion, photo or video rendering, and so on. Of course, because of the relatively high cost of data transfer, the key is applications for which a lot of computing can be done on each byte transferred into the cloud — an observation made by Jim Gray in 2003 — and for which the latency to transfer that data is small compared to the time during which the data will remain “useful” in the cloud.
We also see the cloud supporting surge computing, where a private datacenter can temporarily overflow into a public cloud to support unexpected surges in workload.
HPCwire: Where do you think cloud computing will fit into the HPC application space?
Patterson: If technical issues like gang scheduling of VMs and higher network bandwidth within the datacenter are addressed, we think many users of HPC applications would love to take advantage of the cloud’s new cost associativity: no extra charge for using 20 times as many computers to get your results back in 1/20th the time. We’re conditioned to buying a set of computers and then trying to keep them uniformly busy. This elasticity of resources, without paying a premium for large scale, is unprecedented, so it will take a while for clever people to exploit this opportunity.
When HPC users don’t have to pay the costs of operating their computers — someone else pays for the building space, electricity, air conditioning, and so — they may conclude that on average they can get their work done for less than commercial cloud computing, but that seems more like bad accounting than good science.
HPCwire: How does future hardware and software need to be built to take advantage of the cloud model?
Fox: For software, one key approach is focusing on horizontal scalability — the ability to accommodate more users by adding more servers. At the level of storage systems and databases, this remains elusive, as evidenced by the various offerings such as Google AppEngine’s MegaStore, Amazon’s S3 and SimpleDB, and other scalable storage services. Also, to take advantage of elasticity means that software must automatically be able to adapt to unexpected workload changes, machine failures, and eventually, even whole-datacenter outages. Looking at the spectrum of clouds today, Amazon doesn’t provide any built-in service like this (though third parties such as RightScale are stepping in to fill that gap) but allows the developer to architect anything he wants; whereas, Google AppEngine severely constrains the software architecture of your app, but in return you get a lot of that automatic management for free.
Patterson: Hardware systems should be designed at the scale of a container (at least a dozen racks), which will be the minimum purchase size. Cost of operation will match performance and cost of purchase in importance, rewarding energy proportionality, which puts idle portions of the memory, disk and network into low power mode. Processors should work well with VMs; flash memory should be added to the memory hierarchy; and LAN switches and WAN routers must improve in bandwidth and cost.
For more discussion of Berkeley’s cloud computing research, go to the Above the Clouds Web site.