Moving HPC to the Cloud: A Guide for 2020
High performance computing (HPC) enables you to leverage parallel processing for performing complex calculations. You can do that on-premises or in the cloud. All top cloud vendors, like Azure, AWS, GCP, and IBM, provide HPC offerings. This article explains what is HPC, why it’s important, what is the difference between HPC services, and what are the benefits of using cloud-based HPC.
What Is HPC?
High performance computing (HPC) is a type of computing that uses parallel processing across clustered processors, to perform complex calculations. Companies use HPC to perform large scale analyses that cannot be performed by traditional computers or servers, or solve problems with high computational requirements.
HPC use cases include:
- Research labs—used for training Machine Learning (ML) algorithms, meteorological predictions, medical research, or interpreting astronomical data.
- Media and entertainment—used for film editing, special effects, or live video streaming.
- Oil and gas companies—used to detect oil or gas sources and increase oil well productivity.
- Financial services—used to track stock trends, automate trading, or identify fraud.
HPC systems are usually based on Linux, but you can also use Windows systems. You can host HPC systems on-premise or in the cloud. All major public cloud providers, as well as associated third-party companies offer services for managing HPC workloads.
Why Is HPC Important?
Technologies like Artificial Intelligence (AI), the Internet of Things (IoT), and 3-D imaging produce massive amounts of data. Some companies can throw this data into data lakes and cold archives. However, this is not a viable solution for all industries.
Live sport event streaming, for example, as well as stock trends analysis, require real-time processing. This is where HPC comes in. HPC is extremely useful for processing, analyzing, and storing large amounts of data.
Options for HPC in the Cloud
All major cloud vendors provide HPC services and support. The below sections review HPC services offered by the top main vendors—Microsoft Azure, Amazon Web Services (AWS), Google Cloud Platform (GCP), and IBM.
Microsoft Azure offers pay as you go HPC solutions for Software as a Service (SaaS) and Platform as a Service (PaaS) enterprise customers. These solutions are based on bare-metal or virtualized servers with optimized resources. You can integrate any Windows system with Azure to run HPC workloads in the cloud. Azure offerings are tailored solutions.
Amazon Web Services (AWS)
AWS offers an Infrastructure as a Service (IaaS) solution with large amounts of storage capacity. When using AWS HPC, you can rent computationally intensive workloads instead of purchasing. This can potentially, and if billing is properly managed, can help you cut back on expenses. However, you need to learn how to setup, manage, and optimize AWS resources.
Google Cloud Platform
Google Cloud Platform offers an IaaS solution, similar to AWS. However Google also offers a pay-per-minute strategy. Enterprise customers can choose between a Google cloud dataflow and an open source Hadoop system for data processing and storage.
IBM Spectrum Computing enables users to select from a variety of private, public, or hybrid cloud infrastructure. As a result, customers get a flexible, and remotely managed system. IBM offerings include IBM HPC service for computational tasks, HPC for Analytics, and many more.
How Does HPC Differ From Traditional Public Cloud Resources?
Public cloud providers offer on demand HPC solutions and lightweight HPC-like computing options capabilities. A few examples include:
- GPU machines—all major public cloud providers offer GPU-based machines, as part of their Infrastructure as a Service (IaaS) offering. GPU machines work in parallel to perform computing tasks with a large amount of processes of a similar nature. However, GPU machines are much more expensive than regular cloud resources.
- High performance machines—all clouds offer high performance machines such as strong traditional CPUs with a large number of cores, large instance sizes with a large amount of memory, and SSD drives. These machines cannot provide HPC-like performance, but they can handle many other demanding computing scenarios.
- Field-programmable gate arrays (FPGAs)—public cloud vendors are starting to offer FPGA hardware on demand. Amazon, for example, provides the F1 instance service. You can run FPGAs in parallel to the virtual machine resources for higher efficiency. FPGA provides an additional performance boost without putting extra load on the traditional CPU.
Why Move HPC to the Cloud?
Public clouds offer HPC capabilities like GPU solutions for running machine learning applications, advanced application development tools, virtual private networks, big data analytics, software management, and much more. There are also several business-related reasons for migrating HPC systems to the cloud, as explained below.
Sharing cloud HPC data with other business workflows
Cloud HPC systems can easily share data across many different cloud services, whereas traditional HPC systems are usually disconnected from other parts of the business. HPC systems usually receive data from cloud storage services like Azure Blob Storage, or Amazon S3.
These services can also be integrated with a host of other business processes. For example, you can have one team developing machine learning algorithms and another team running and testing those algorithms on HPC. You can also use cloud HPC to gain immediate access to the results of HPC calculations. Cloud HPC also provides extended resources during COVID-19.
Easy traceability and extensibility
HPC systems often process sensitive customer data. This means HPC users need to be aware of compliance standards, security policies, and IT operational processes. Fortunately, you can easily connect cloud-based HPC to standard organizational processes. Technically, cloud-based HPC systems look like any other cloud service. They are easier to standardize, visualize, and establish the necessary control structures.
HPC as a service offerings
Cloud HPC enables you to use HPC hardware without any upfront investment, and lets you run special HPC projects for a limited period of time without purchasing equipment. Due to the high cost of specialized HPC hardware, pay-as-you-go is especially useful for high performance workloads.
Cloud-based HPC provides data processing opportunities that were previously impractical or unavailable. Businesses of any size can leverage these aggregated resources with on-demand services and pay-per-use options. This ability to process and analyze big data at scale can substantially improve your innovative edge and competitive advantage.
Author Bio: Ilai Bavati
I'm a technology writer and editor based in Tel Aviv. I cover topics ranging from machine learning and cybersecurity to cloud computing and the Internet of Things. I'm interested in the real-world application of emerging technologies, and I see our increasingly connected reality as both disruptive and potentially life-saving.