Could the “C” in HPC Stand for “Cloud”?
By Chris Porter
Now that “Cloud Computing” has become the IT buzzword du jour for professionals and vendors looking to cash in on the next big change in datacenters, many in the HPC community are evaluating whether HPC workloads are appropriate for cloud environments. At least a portion of this debate is associated with questions such as “What is cloud computing?” and “What qualifies a workload as HPC?”.
It’s generally accepted that HPC workloads are simply not amenable to “one size fits all” categorizations. This was clearly demonstrated in the early 2000’s when the world started converting from centralized big iron to distributed computing clusters. Such an approach brought with it commodities of scale and COTS hardware, but also something else—choice. An HPC consumer could spend money on HPC in ways that benefited the bottom line and only had to spend it on HPC. Therefore, some HPC systems were small in node count, large in memory per core, narrow in bandwidth or high in latency between nodes, while other systems were designed using different sets of parameters. All were tailored to the applications being run and limited only by the creativity of their architects and the budgets those architects were constrained to work within.
But, increasingly, the pressure to reduce the cost of doing business is an unrelenting theme for most companies and IT departments. Budgetary concerns are a constant concern for every company, so the cloud computing model of pay-as-you-go is increasingly appealing. However, not all types of computing have been well validated on cloud infrastructures.
In addition, most infrastructure as a service (IaaS) vendors such as Rackspace, Amazon, Savvis and others use various virtualization technologies to manage the underlying hardware upon which they build their offerings. Unfortunately the virtualization technologies used tend to vary from vendor to vendor and are sometimes kept secret (as in the case of Amazon’s EC2). Despite the misconception in the market that “cloud=virtualization”, virtualization is often a key component to cloud infrastructures. Therefore, the question about virtual machines vs. physical machines for HPC applications is also germane to the discussion of HPC in the cloud.
The virtualization question
HPC architects have been slow to adopt virtualization technologies for two primary reasons:
1) The common assumption that virtualization impacts application performance significantly enough that any gains in flexibility are far outweighed by the loss of application throughput.
2) Utilization on traditional HPC infrastructure is very high (usually between 80-95 percent). Therefore, the typical driving business case for virtualization (e.g. utilization of hardware, server consolidation or license utilization) lack sufficient merit to justify the added complexity and expense of running workload in virtualized resources.
In many cases, however, many HPC architects would be willing to lose up to 5 percent of application performance to achieve the flexibility and resilience that virtual environments offer. But there are several reasons HPC users may make this compromise, including:
- Security – Virtual machines (VMs) can be added and subtracted from VLANs as part of their instantiation/destruction process. Some HPC environments require data and host isolation between groups of users or even between the users themselves. Traditionally, VLANs are used with physical servers, creating silos of resources. In any variable load environment, silo creation results in lower utilization of the resources. VMs and VLANs can be used in consort to isolate users from each other and isolate data to the users who should have access to it.
- Application Stack Control – Many applications require certain OS versions, updates, libraries, configurations, etc. In a mixed application environment where multiple applications share the same physical hardware, such specific stack requirements can be difficult to satisfy. Using virtualization makes that task easier since the whole stack can be deployed as part of the application.
- High Value Asset Maximization – In a heterogeneous HPC system, the newest (and thereby fastest) machines are often in highest demand. To handle this demand, some organizations use a reservation system to minimize conflicts between users. Unfortunately, such reservations often go underutilized. In comparison, when using virtual machines for computing, the migration facility available within most hypervisors allows opportunistic workloads to use high value assets even after a reservation window opens for a different user. If the reserving user eventually submits workload against his reservation, then the opportunistic workload can be migrated to lower value assets to continue processing without losing any CPU cycles.
- Large Execution Time Jobs – Several HPC applications offer no checkpoint restart capability. VM technology can capture and checkpoint the entire state of the virtual machine, however, allowing for checkpoint of previously non-checkpointable applications. If jobs run long enough to be at the same MBTF for the solution as a whole, then the checkpoint facility available within virtual machines may be very attractive. Additionally, if server maintenance is a common or predictable occurrence, then checkpoint migration or suspension of a long running job within a VM could prevent loss of compute time while removing any barriers to performing regular server maintenance.
A business case for HPC clouds
The economic advantages a cloud-style infrastructure offers—paying only for the IT resources consumed—has been the end goal of “utility”-style computing for nearly a decade. It’s also an extremely attractive option for HPC datacenters because workloads can vary so much—going from heavy use to idling at any giving time.
There are several key drivers for considering a cloud implementation:
- Pay-per-use – customers pay by the hour for services such as compute instances or at the consumption level for services such as storage and data transfer
- Near infinite infrastructure – available in near real time, as well as the contra positive—infrastructure can scale back to near zero when there is no workload
- Provisioning based on workload –operating systems or server types can be allocated at any time based on workload, providing significant improvements in provisioning flexibility
Under the correct conditions, these factors can present major opportunities to cut costs and better serve internal users.
Barriers to cloud
Despite the advantages of cloud, there are also a number of barriers to consider when thinking about whether cloud will fit into an HPC environment.
- Security and Intellectual Property –The data in the cloud very often represents core intellectual property for the commercial enterprise. The possibility that commercial competitors could be using the same shared computing resource, which could lead to espionage, cannot be ignored. From a legal standpoint, published contracts for IP protection and indemnification offer potential adopters little recourse if a leak occurs.
- Licensing – Most commercial enterprises employ third-party software from an ISV to run or manage their HPC simulations. With each of these applications comes a legal agreement about where the application can be executed, and often these agreements restrict applications to a customer’s site. If legal issues are not barriers then licenses being consumed in the cloud and locally in a datacenter offer technical challenges for keeping the licenses available to all application instances that require them.
- Data Movement – Until an organization adopts cloud computing and abandons their own datacenters, models for simulations (or methods for creating them) and results must be transferred between the cloud provider and the customer’s datacenter. This is complicated, however, as Internet bandwidth is very limited for transferring large files, and for most IaaS providers, all data moved in and out of the cloud is a “for charge” service by the gigabyte.
Pricing Model – The pay-per-use model often sounds very enticing to customers because prices are based on an hour of compute time. However, for long term usage public cloud prices are typically two to three times more expensive than owning the hardware and maintaining it yourself over the course of two years. Companies should strategically balance when it is advantageous to use the public cloud versus local servers.
Cloud for HPC
HPC datacenters must consider both the business case and the barriers that come with cloud computing to determine whether the model can fit into their organization and which model can best work for them. Achieving HPC in a cloud environment requires a few well-chosen tools, an adequate hypervisor platform, workload manager and an infrastructure management toolkit. A management toolkit should provide policy definition, enforcement, provisioning management, resource reservations, and reporting. The hypervisor platform should provide a good foundation for the virtual portion of your cloud resources. Finally, the workload manager should provide task management.
For most large HPC environments, users will want to consider either a private cloud or hybrid solution where external public clouds can be used during peak demand, otherwise known as “cloud bursting.” Smaller HPC use environments may want to consider pure, or public, cloud where all the resources will be consumed in the cloud. No matter which flavor of cloud is used, it will be particularly important to make sure infrastructure includes a management layer that can take advantage of both physical and virtual resources since HPC applications are still primarily housed on physical machines. Ideally, the management layer should be able to unite the hypervisor and physical environments into a single, dynamically shared infrastructure to support a heterogeneous environment, as well as multiple operating systems.
A hybrid approach can be very advantageous for HPC environments because it can provide the extra power boost needed to complete jobs. In particular, a cloud bursting approach should be considered for the following:
- When local job pend time estimates for a job get very large.
- When local time elapsed run time is large. A corollary to this condition is when the job can be parallelized, but there are insufficient resources locally to run the job quickly—then cloud bursting the job may return results to users sooner than allowing the job to run on insufficient resources.
- When the job’s data transfer requirements into and out of the cloud are small.
Once the best cloud implementation for an organization has been determined, IaaS vendors can be evaluated based on a number of different methods, including benchmarking, to see which provider is best suited for that organization’s application and workload needs. Evaluations should include factors such as:
- Pure performance
- Instantiation speed
The negotiation and pricing process and policies of each IaaS provider should also be considered, as well as evaluating the reliability against SLAs. Considering each of these factors should go a long way toward helping an organization choose the best provider for their purposes.
HPC users should move beyond the “one size fits all” notion when it comes to HPC environments. There are still lots of choices available to HPC users today, and one of those choices is cloud computing. Under the right conditions with the right management software, the cloud can be very useful for HPC applications.
Chris Porter is Product Manager, HPC Cloud, for Platform Computing. Chris will be speaking at SC’11 on Nov 17th 10:30 – 11 am and he’ll asking the question ‘To Burst or not to Burst?’ and weighing the benefits HPC application in the cloud. Chris is the author of numerous whitepapers, including a recent benchmarking evaluation that compared three major providers of public cloud resources for HPC, “Harnessing public clouds in HPC: Are all infrastructure providers created equal?”
Platform Computing will be at SC’11 in Seattle, November 12-18, 2011 at Booth 1117. www.platform.com