What is High Performance Computing? (HPC)
March 27, 2017
If you’re new to all of this, you probably have a really basic question: “Just what is high performance computing (HPC) anyway?” First, a definition to get things started:
High Performance Computing most generally refers to the practice of aggregating computing power in a way that delivers much higher performance than one could get out of a typical desktop computer or workstation in order to solve large problems in science, engineering, or business.
It turns out that defining “HPC” is kind of like defining the word “car” — you probably know what a car is, but I bet you’d be hard pressed to write a concise, simple definition of one that means anything. Also, note that HPC is actually used in two ways: it can either mean “high performance computing” or “high performance computer.” It’s usually pretty clear from the context which sense is being used.
You don’t have to be a rocket scientist
You may have heard of supercomputing, and monster machines from companies like Cray and IBM, that work on some of mankind’s biggest problems in science and engineering. Origins of the universe, new cancer drugs, that sort of thing. These are very exotic machines by virtue of the technologies inside them, and the scale at which they are built: sometimes 10,000 of thousands of processors make up a single machine. For this reason supercomputers are expensive, with the top 100 or so machines in the world costing upwards of $20M each.
This kind of computing is related to the HPC you might consider for your business in the way that Formula One racers are related to your Camry. They are both cars, but that’s about where the similarity ends.
Supercomputers, like race cars, take vast sums of money and specialized expertise to use, and they are only good for specialized problems (you wouldn’t drive a race car to the grocery store). But a high performance computer, like the family sedan, can be used and managed without a lot of expense or expertise. If you’ve never done this before, you will need to learn new things. An HPC machine is more complex than a simple desktop computer — but don’t be intimidated! The basics aren’t that much more difficult to grasp, and there are lots of companies (big and small) out there that can provide as much or as little help as you need.
The anatomy of a high performance computer
A helpful way to help understand what high performance computers are is to think about the what’s in them. You have all of the elements you’d find on your desktop — processors, memory, disk, operating system — just more of them. High performance computers of interest to small and medium-sized businesses today are really clusters of computers. Each individual computer in a commonly configured small cluster has between one and four processors, and today’s processors typically have from two to four cores. HPC people often refer to the individual computers in a cluster as nodes. A cluster of interest to a small business could have as few as four nodes, or 16 cores. A common cluster size in many businesses is between 16 and 64 nodes, or from 64 to 256 cores.
The point of having a high performance computer is so that the individual nodes can work together to solve a problem larger than any one computer can easily solve. And, just like people, the nodes need to be able to talk to one another in order to work meaningfully together. Of course computers talk to each other over networks, and there are a variety of computer network (or interconnect) options available for business cluster (see here for an overview of cluster interconnects).
Software makes the cluster go ‘round
Just like your desktop or laptop, your HPC cluster won’t run without software. Two of the most popular choices in HPC are Linux (in all the many varieties) and Windows. Linux currently dominates HPC installations, but this in part due to HPC’s legacy in supercomputing, large scale machines, and Unix. Your choice of operating system should really be driven by the kinds of applications you need to run on your high performance computer. If you are using Excel to run option calculations in parallel, you’ll want a Windows-based cluster, and so on. In fact the first thing to know when you are considering buying or building an HPC cluster is what you want to do with it. This sounds obvious, but having a clear sense of what your cluster will, and won’t, be required to run will make sure that the decisions you make later are ones you won’t regret.