For those who believe HPC is on the cusp of a revolution in terms of access and usability — especially for non-technical researchers — there are big, ever-lingering questions about how to make a general purpose cloud fit for HPC workloads. The end of most of these discussions comes when the topic of performance emerges because, let’s face it, there are not many appealing features to a large public cloud like Amazon for researchers with very specific compute demands. Having the power on demand is nice, but if the performance is the price to pay then it renders the idea useless.
If it’s a large public cloud we’re talking about — one that is most often used for scientific and large-scale enterprise computing — chances are it’s Amazon’s EC2. There are other public cloud providers, of course, but for the sake of argument, Amazon’s Elastic Compute offering is the poster child for cloud computing and often the first choice — if only because it has been around the longest. From startup cloud providers to big players, Amazon symbolizes the possibilities of cloud for everyone while it epitomizes the problems inherent to the cloud concept as it pertains to HPC.
Not to pick on EC2 here since there are several other public cloud providers to choose from, but it seems that most of the researchers who have made broader use of the public cloud, from large institutions down to individuals working on complex problems, have made this their premium choice. Will it stay this way forever? Probably not, especially since Microsoft and others are chomping at the bit for their share of the cloud movement with a direct focus on the HPC market. In fact, as it becomes clear that there might be benefits for scientific computing in the cloud at the same time that it is becoming glaringly obvious that the cloud-for-everyone will not apply for this specialized subset of users.
The Stagnant Public Cloud
It’s difficult to foster hope for greater use of the public cloud when it is not modified to any significant degree since its standard resources are providing enough to keep this end of the Amazon empire running.
Dr. Dieter Kranzlmuller in the German magazine Computer Woche suggested there are only very limited uses for the public cloud in HPC. “The effective use of a cloud is dependent on the applications. The cloud can be used appropriately when dealing with linear processes and independent, relatively small data volumes. For applications with larger storage requirements or closely coupled parallel processes with high I/O requirements, clouds are often useless.”
Way back in 2008, Edward Walker published a study entitled, “Benchmarking Amazon’s EC2 for High-Performance Scientific Computing” that provided results based on macro and micro comparison points to form a solid theory about the performance gap in the public cloud, even with equivalent processing power. This of course boils down to the MPI and interconnects issue — just as it still does today. The mere act of virtualization renders the cloud almost useless to many scientific HPC clusters, in other words.
According to Walker in his older yet still just-as-relevant report based on the benchmarking study, “the delivery of HPC performance with commercial cloud computing services such as Amazon EC2 is not yet mature…a performance gap exists between performing HPC computations on a traditional scientific cluster and on an EC2 provisioned scientific cluster. This performance gap is seen not only in the MPI performance of distributed-memory parallel programs but also in the single compute node OpenMP performance for shared-memory parallel programs. For cloud computing to be a viable alternative for the computational science community, vendors will need to upgrade their service offerings, especially in the area of high-performance network provisioning to cater to this unique class of users.”
Since the vendor in question here — Amazon — has not upgraded its service offerings, the time has come for others to pick up the slack and create specialized cloud environments that are in tune with the performance demands of HPC users if the cloud vision is to be realized for its cost benefits.
None of this portends well for strict HPC applications in a large public cloud offering like Amazon’s. EC2 and other public clouds designed to run everything from big commercial websites to outsourced large batch jobs might seem appealing on a cursory glance to many, but as William Fellows, analyst at the 451 Group, stated, “The main problem with running HPC tasks on conventional clouds is that conventional clouds are geared toward supporting general-purposes applications and services — short transactional workloads such as web applications and database tasks…theses are heavily dependent on the need to be processed serially and within an infrastructure geared toward supporting inter-process communication.”
In other words, the public cloud is designed for an admirably long list of workloads but HPC in general — not so much. But really, when you get right down to it, why should EC2 change its style to fit the needs of scientific users in the first place when it is doing just fine serving the needs of mainstream users? After all, other companies who already have some degree of HPC supremacy are making headway as they are better positioned to tailor their approach to coaxing researchers on to their clouds — in whatever form they’ve devised.
Bridges Across the Performance Chasm
When so many think about the cloud in general, the first thought is about large-scale cloud providers like Amazon, but the fact is, there are an increasing number of choices that remove the performance gap caused by virtualization or that have clouds that are tailored to the performance-driven needs of HPC users.
IBM, Microsoft, SGI, Penguin, Cycle and a handful of others that do not work directly to manage their clients’ push to the public cloud via a layer of cloud management software are doing so in part because they’ve realized that there is no broad appeal for true, traditional HPC users to move to EC2. They realize that the environment needs to be customized, that the performance is the most critical factor in gaining converts — and most importantly, that there is no public cloud that can beat the power of a cluster. So in a manner that screams “grid” they are renting specialized clusters that are specifically designed for HPC users.
In an effort to overcome the performance gap yet still provide users with the freedom of owning and managing their own clusters, Penguin On-Demand (POD) and others, including Cycle Computing, are taking the concept of the cloud for HPC and making it more attractive to HPC users by eliminating the virtualization and providing customized servers. This missing layer of virtualization adds some complication to the term “cloud” but it is a logical step for researchers who are attracted to the cost benefits of avoiding the expense of a cluster investment. Since many HPC users have found that large public clouds, most notably Amazon’s EC2, do not offer the service levels they depend on, it is reasonable to predict that there will be a host of new upstarts that seek to bring dedicated servers to researchers in an on-demand fashion versus creating a complex management layer that is tied to the public cloud.
This is not to say that EC2 is not being used with some success, but most often these are jobs are that are not necessarily HPC-like. As Kathy Yelick, director of NERSC, noted in a recent interview about current developments in the Magellan cloud, “there’s a part of the workload in scientific computing that’s well-suited to the cloud, but it’s not the HPC end, it’s really the bulk aggregate serial workload that often comes up in scientific computing, but that is not really the traditional arena of high-performance computing.”
If existing cloud providers with their eyes on the HPC market can better tailor their solutions to meet the broader range of HPC application needs with a distinct focus on performance, it stands to reason that the world of the public cloud will be out of reach to Amazon and other general purpose cloud providers.