Twins Separated at Birth: Cloud Computing, HPC and How Microsoft Is Trying To Change How We Think About Scale
When Dan Reed joined Microsoft in late 2007, his writings and public appearances made it clear that he hadn’t totally abandoned HPC — on his blog he continued to feature issues important to our community. But in the stream of posts on everything from the rise of multicore processors to national science policy, he never said exactly what he was doing at Microsoft. I assumed he was doing something related to Windows HPC Server or the entry of Microsoft in the HPC market, but then why was he in the research group? Perhaps a new product.
We found out on Feb. 24 when Rick Rashid, the senior vice president of Microsoft Research, unveiled the Cloud Computing Futures (CCF) organization at TechFest, and pointed to Reed as its director.
The CCF complements Microsoft’s production cloud services, named “Windows Azure,” announced in late October of last year, but in a broader sense is aiming to transform the way we build and manage very large-scale computational resources. As Reed writes on his blog, he came to run the CCF to answer the challenge of constructing a reliable, purpose-built cloud infrastructure, one not cobbled together from parts built for other tasks:
Imagine a world where heterogeneous multicore processors are design and optimized for diverse workloads, where solid state storage changes our historical notions of latency and bandwidth, where on-chip optics, system interconnects and LAN/WAN networking simplify data movement, where scalable systems are resilient to component failures, where programming abstractions facilitate functional dispersion across devices and facilities, where new applications are developed more quickly and efficiently. This can be.
But as he points out, we have a long way to go to get to this future from where we are today:
If we built utility power plants the same way we build cloud infrastructure, we would start by visiting The Home Depot and buying millions of gasoline-powered generators. This must change.
Much of the press around the CCF announcement has been about the server research agenda, and CCF demonstrations at TechFest showed off low power, low footprint, cloud compute clusters built from netbook processors (like the Intel Atom; you might recall that SGI also showed an experimental Atom-based server at SC08) along with innovative power and capacity management software. Next-generation storage and memory, new processor architectures, networks, and programming models are all also on the table as part of the CCF research agenda.
At its core, cloud computing is about building (and managing) computationally-based services at a very large scale, and so it shares some of the basic issues that have motivated the supercomputing community for decades. But, other than scale, do HPC and the cloud have anything in common? What does HPC bring to the table from its comparatively long history that will be important as cloud infrastructure becomes an industry and research area of its own? HPCwire talked to Dr. Reed by email, and he shared some of his thoughts about the intersection of cloud computing and HPC.
HPCwire: What is the big picture view of the CCF?
Dr. Reed: The CCF story is about approaching cloud computing infrastructure as an integrated design problem, looking at the balance of support infrastructure, computing hardware and software, not only at a single site but across an international network of interconnected sites. The scale and scope of the problem means that some of our traditional design assumptions no longer hold, particularly if we want to enable a new class of applications.
Based on my background in high-performance computing, I believe clouds open exciting possibilities to rethink computational science and address some of the problems we face. We have successfully leveraged commodity hardware to create large clusters, but at considerable cost. Cluster programming remains difficult at scale. We have turned a generation of researchers into parallel programmers and system administrators; institutions are struggling with rising demands for machine space, power and cooling; and duplicated facilities make sharing expertise and data difficult. I helped make many of those things happen, so I feel some responsibility to help us find a new path.
The specific aspect relative to HPC is that cloud services are game changers, just as commodity clusters were a decade ago and graphics accelerators have been recently. This is not the future, this is the present.
HPCwire: HPC vendors have been mixing and matching off-the-shelf with custom-engineered components for a couple decades now to provide the hardware we need for HPC workloads. Is there an opportunity for some of that technology to be relevant as you look to develop the new computing infrastructure?
Dr. Reed: The design and construction of mega-scale datacenters has much in common with today’s petascale and tomorrow’s imagined exascale systems; I have called them “twins separated at birth.” Common design challenges include interconnects, memory and storage hierarchies and the future of non-volatile memories (flash, PCM and beyond), heterogeneous multicore processors, system reliability and resilience, packaging, cooling and energy efficiency and programming. However, mega-datacenters exist today, and there are already hardware and software lessons applicable to future exascale design.
One of the key differences, though, is that the cloud infrastructure market can influence hardware designs in ways that the HPC market cannot. Thus, the goal of CCF is to draw on new and emerging hardware and software technologies for future cloud infrastructure. Our design philosophy is to treat the datacenter as an integrated system, exploring design tradeoffs that balance many axes. Some of these can be drawn from the HPC environment; others are different.
HPCwire: Is there any overlap in workloads for cloud computing and HPC, and how do you think this will evolve over time?
Dr. Reed: Clouds are absolutely not a substitute for purpose-built, apex computing systems. If your science demands petascale computation with very low latency inter-task communication, today’s clouds are not for you. However, for the vast majority of researchers who use smaller scale facilities, clouds are a very attractive alternative.
There is a deeper question behind this, however. What are the attributes of future cloud workloads and how similar or different will some of them be to HPC workloads? My hypothesis is that some will be quite similar. A hosted, graphics-intensive game involving millions of players looks very much like a molecular dynamics simulation, with local and global interactions at differing temporal and spatial scales and with load balancing challenges.
HPCwire: Is the shift to service delivery in enterprise computing something that you think is relevant to HPC service providers? HPC centers have nearly always had a service-oriented relationship with their users, because very few users had Y-MPs at home.
Dr. Reed: It’s important to remember the Branscomb pyramid (text of the original report, figure reproduced in a later critique) and the diverse types of technical computing that exist. We tend to focus on the apex of the pyramid, now exemplified by petascale systems intended to support only a handful of applications and users. However, most science is conducted using desktop computers, laboratory clusters and university computing infrastructure. Clouds are not a replacement for HPC — at least not at the very high end — but rather a mechanism to support the rest of the pyramid more effectively.
A decade ago, inexpensive clusters “democratized” high-performance computing by allowing individual researchers and small research groups to acquire computing that was previously the domain of national facilities. However, the paradox of proliferating, inexpensive clusters is that universities and laboratories now face ever-rising energy costs, physical plant provisioning to house computing hardware and ongoing software maintenance and operations costs, together with the ever-present security implications of distributed operations. In technical computing, we have been overly focused on what is the truly inexpensive part of computing — the hardware itself. University CIOs and chief research officers, along with research funding agencies, are struggling with the rising total cost of ownership, many aspects of which are not obvious to the individual researchers who buy computing systems.
HPCwire: In what ways might cloud computing, or at least the technologies that you are helping to develop, transform computational science?
Dr. Reed: Clouds can not only address these problems but also catalyze new kinds of research. First, the economies of scale from mega-datacenter provisioning mean that the capital and operating costs can be lower for each storage and compute unit than is true with smaller, replicated facilities and even compared to our national facilities. This means universities, laboratories and federal agencies can devote a larger fraction of precious funding to research rather than infrastructure.
Second, the truly large-scale data analysis, particularly multidisciplinary studies, can be simplified and conducted routinely. Consolidation and co-location enable new approaches, and we tend to forget that cloud datacenters have many, many petabytes of disk storage — not the predominantly “write only” tertiary storage we have historically experienced in the HPC domain. It really is possible to query multiple petabytes of data on a routine basis using intuitive, easy-to-use desktop tools.
Third, clouds enable interesting time-space tradeoffs. It is just as cost-effective to run 100,000 individual jobs simultaneously as sequentially (e.g., for a parameter study), something that our batch queuing strategies strongly discourage on high-performance computing systems. The elasticity of clouds, a consequence of multiplexing many users and workloads, means that the resources are always available without waiting.
Fourth, I also believe that the cloud will offer HPC services at increasing scale, beginning with that typified by today’s laboratory clusters. This is already happening, and as virtualization continues to improve, communication latencies will decrease and tightly-coupled computations will be attractive at ever larger scale.
Finally, it’s important to remember that most people view computing as a means to an end, not an end itself. Clouds can provide seamless extension of familiar desktop tools and interfaces, allowing computing and analysis to scale within the same environment that researchers use every day. We can leverage consumer software, just as we have leveraged consumer hardware.