What Is High-Performance Computing and How Can Engineers Use It?

High-performance computing (HPC) has become increasingly more popular and important in the

Interconnected nodes of an HPC system.

world of engineering. But defining what HPC is and figuring out how it can be deployed to aid designers can be tricky. And, honestly, it shouldn’t be that way. In this article, I’m going to present a clear definition of what HPC is, how it can be effectively used in engineering and what kind of HPC solutions are on the market today. By the end of this article, you should have clear view of how HPC can help your engineering practice and what HPC options will best suit your needs.

What Is HPC?

What constitutes a HPC system is a difficult thing to pin down. Some would say that a HPC system is the exact same as a traditional supercomputer, and others disagree, saying that a HPC can be a cluster of machines linked together across a fast local area network. What's more, now ideas like the cloud have entered into the HPC conversation begging the question, does a firm even need to own a HPC system?

In the end, HPC is all about the aggregation of computing resources to solve complex problems that can’t be tackled by a workstation. Following on that definition, some of you will say, doesn’t that mean that all high-performance computers are supercomputers? To which I'd have to answer, no.

Supercomputers are a specialized subset of HPC that are set aside from ordinary clusters of machines. Sure, supercomputers like those on the TOP500 list aggregate computing power to make short work of some of the world's most complicated problems, but they're also governed by customized software, oftentimes purposefully written for each problem being addressed. Add to that the fact that supercomputers contain, in the most powerful cases, millions of cores and can cost millions of dollars to run each year, and you begin to see a gulf in class between supercomputers and other high-performance computer systems. For our purposes, those supercomputers aren't the same as the HPC systems that most engineers would use to speed up their design cycles or optimize their designs. Still, it has to be noted that many engineers working on today's most difficult problems are vying for time on the world's most powerful computers.

So, what would a high-performance computer system that an everyday engineer would use look like?

To begin with, most HPC systems are built around a processor and one or more GPUs in a RAID array. GPUs play a critical role in HPC performance because they can take on the most extreme computation, leaving the CPU to do the yeoman's work of running applications. The reason behind this strategy comes down to the differences in how CPUs and GPUs are made. Traditionally, CPUs contain several cores that are optimized for serial processing. On the other hand, GPUs contain many more small cores that are built into a massively parallel architecture. Because each of these little cores can do a tiny bit of work in parallel with the thousands of cores around them, complex problems can be broken down and solved efficiently. But more on that later.

Types of HPC Systems

Now that we've got a basic understanding about the nuts and bolt of what drives a HPC system, it’s time to look at some common HPC configurations.

It might come as a surprise, but a HPC scheme might not appear too alien. Instead, a HPC scheme might just look like a cluster of workstations, distributed across an office and linked together via a fast LAN. Of course, aside from each of these machines (called nodes in the world of HPC), there'd also be a master machine that would run a piece of off-the-shelf simulation software and marshal the unused resources of a cluster to handle the job of solving the day's most fiendish design problem.

A cluster computer.

Similar to the networked node schema, another HPC configuration revolves around a centralized server rack or racks that can be tied together to crunch big calculations. Aside from being located in a central place, a server can be used as a HPC system that’s solely dedicated to solving complex problems with all of its processing might.

In addition to machines that are physically located at a firm, high-performance computers can also be called down from the cloud in a variety of different configurations. In fact, cloud-based HPC is quickly becoming one of the more popular HPC options because of its low cost and ease of use. With cloud-based HPC, massive and scalable amounts of computing power can be called down from a Web browser and used when and where a company needs it.

While workstation-, server- or cloud-based HPC configurations are the norm today, in the near future, HPC might just branch out and begin to take advantage of the tiny processors that run our phones. Given the ubiquity of phones across the globe, it doesn’t seem too far a stretch to imagine a generous cell phone owner downloading an app that can control a cellphone and use its processing power when it enters a certain mode or during a certain user-specified time of day. In fact, this type of computing has already been done.

Still, it'll likely be a while before cellphone owners begin sharing their computing power. However, I can definitely imagine a time in which some industrious programmer (or even a behemoth like Amazon) develops an app that allows phone owners to earn credits or small amounts of cash for each equation that his or her phone solves.

Now think about that kind of computing power being lassoed together on a million-processor, possibly even billion-processor, scale. That could be a truly incredible HPC configuration.

Where Can HPC Be Used by Engineers?

When it comes to engineering uses for HPC, the most obvious answer is, of course, simulation. Computer simulation is a numbers game in which digital models are pitted against simulated physics to determine the model's viability. Of course, many calculation have to be solved for a simulation to be valid, making simulation a prime candidate for HPC.

While most workstations today can handle FEA calculations and some degree of multivariable design queries, when it comes to the higher end, multiphysics simulations, there’s just no substitute for a HPC scheme.

But, why exactly can HPC schemes make a difference when it comes to complex multiphysics or computational fluid dynamics calculations? The answer comes down to parallel computing.

Parallel computing is a fairly straightforward concept. With parallel computing, large or complex problems are broken down into smaller pieces so that more manageable calculations can be made to solve the larger whole. In an HPC scheme, a central, or master, computer breaks down a complex problem and assigns a portion of that problem to a node. Once the node receives its portion of the problem, it will crunch the data it’s given and return a result to the master computer. That process will continue across every node in a HPC scheme until the larger problem is ultimately solved.

Computational fluid dynamics help engineers make design decisions. (Image courtesy of Wikipedia.)

But before we get too far down that rabbit hole, let's return to simulation, one of the best ways that engineers can leverage HPC. 

As you can tell from its name, multiphysics simulation is a complex subject. For the most part, multiphysics simulation attempts to determine how two or more closely related natural phenomena will affect a design. For example, multiphysics simulations might take into account how a fluid will flow through a channel based on its chemical composition and viscosity or how turbulence will be created by a surface as it moves through a fluid. Usually, multiphysics simulation requires solving paired partial differential equations, a degree of math that is time consuming for some and might be impossible for others (i.e. me). Rather than breaking the brains of an engineer, HPC systems can be used to tackle these types of equations in short order, speeding up design cycles and making an engineering team more efficient.

A subset of simulation (though it also borders on design) that also benefits from HPC is generative design. Generative design combines parametric modeling with an evolutionary model to explore design permutations. Guided by rules and constraints that are prescribed by a designer, generative design can iterate through several hundred or even thousands of design solutions, learning from each one on its way to building an optimized (or multiple optimized) geometric solution.

Airbus' generatively designed aircraft partition. (Image Courtesy of Airbus)

In practice, generative design has been used extensively in architecture; however, today, engineers are beginning to leverage the technology. For example, Airbus has an ambitious project to reimagine the commercial airliner as a whole. Through the use of generative design, Airbus engineers have already taken the first step in this multidecade project.

In its first attempt to change the way that airplanes are built, Airbus decided to reduce the weight and structure of its compartment partitions while still retaining their overall strength. By using generative design, Airbus found that its partitions could be made 30 percent lighter while also becoming stronger. Given that Airbus' generative algorithm created several hundred iterations of its partition, it's no wonder why HPC, in the form of cloud computing, was employed to crunch this massive task.

Though simulation and generative design are two of the most obvious avenues for engineers to use HPC, the Internet of Things (IoT) may have the biggest impact on HPC's future.

At this very moment, companies across the globe are packing their products and factories full of sensors meant to collect data and report on user and machine behavior. Companies that have bought into the IoT revolution believe that the more data they collect, the better they can optimize product development (by having a better understanding of what customers want), product design (by understanding how customers are using a product) and production (by knowing how a machine is operating, optimizing material supply and much more).

With all of this new data being generated by products flung all over the world, reliable and powerful HPC systems will be needed to collect that information, sort through it and make sense of what it's saying.

Because IoT is coming on so strong and consumers seem to be interested in connected products, it would be a shock if HPC use didn't begin to grow at an unprecedented rate—which leads me to my final point.

HPC and Infinite Computing

Since the microprocessor’s invention in the 1970s, computing has become less expensive and more ubiquitous. In fact, in an article written for Wired, Autodesk's CEO Carl Bass said, “We are on the verge of a revolution. It’s a technological, social and cultural revolution called infinite computing. Infinite computing is the confluence of three trends: an exponential increase in available computing power, access to that power and the precipitous fall in the cost of that power. Today, computing is the least expensive resource we can throw at a problem. And when one combines these trends with the scalability that we can now access via the cloud, we can deploy hundreds, even thousands, of computers to help solve the growing number of challenges we face as designers, engineers and artists today.”

In my opinion, Bass is right. Computing is becoming so inexpensive that it's absolutely necessary for engineers to begin engaging it as a partner in the design process and not just a tool used to build a design. To do this, HPC, especially cloud-based HPC, will need to be tapped into at a level that just isn't being seen at the moment. However, I think that the rise of IoT integration in product design will lead engineering teams to start using HPC on a regular basis. With that experience, engineers and their managers will begin to look for more avenues to exploit HPC—and the most obvious candidate for HPC expansion is design.

But what will a partnership with HPC bring to an engineering firm? Well, aside from being more efficient at solving problems, HPC could bring greater complexity to a product, making it more capable and more valuable. HPC and properly tuned generative algorithms and software could imagine designs that would never occur to the human mind. Eventually, HPC and ever-evolving generative design programs could make excellent designers out of anyone, and a future where good design comes from everywhere would be an excellent future in which to live and work.