By: Rachel Pruitt, Product Marketing Manager, Azure HPC, AI Infrastructure
When I first started my role in marketing for high performance computing (HPC), I knew very little about what HPC was and how it was used. I came from a business background in the lending industry for SMB companies, who were not using this technology. It’s been a steep learning curve, and I’m grateful to have incredible engineering and technical sales counterparts that were willing to be patient and take the time to educate me.
Little did I realize that I would love learning about HPC as I dove into how it was being used by our customers. If you have some time, I encourage you to check out our customer stories. The work they are doing (regardless of the platform used), is phenomenal, and allows you to quickly see how HPC is enabling almost every aspect of our lives… from simulating the perfect product design, to creating safer vehicles, to developing the next medical advancement, and even to powering the AI in your lives. This all comes from using HPC.
A little about my journey
As mentioned previously, I came from a lending background at banks and credit unions. This role was half helping people get the loans and credit cards, half about streamlining the lending processes. I went back to school for a while once we moved to Seattle, worked some interim jobs, and then landed at Microsoft as a consultant where I was introduced to the product marketing manager role. I remember the first day I was working with the people from HPC, and I had to google the term to figure out what I had gotten myself into.
The problem with not coming from a technical background, at least for me, was this constant feeling that I wasn’t starting from the beginning. I would google HPC, and then get a lot of technical content around virtual machines, storage, and networking. I googled virtual machines, but then I didn’t know what a CPU was and a GPU was, so I felt like I had to back up more. The problem was, I never felt like I got to the beginning.
So here we are – a couple years later and most definitely more knowledgeable, but there’s still a lot to learn. I wanted to start this series to talk about what HPC really is, and how it’s being used. Over the next several months, let’s take a journey together and learn about the different use cases. Join me as I dive into each use case and for some of them, I’ll even try my hand at the workload for the first time (hint: #1 is rendering). We’ll talk about what went well, and any what issues I ran into. And maybe, you’ll get to hear a little about our customers and partners along the way.
So, what is HPC?
High performance computing is the use of advanced systems and techniques to solve complex computational problems, that require significant processing power and memory. The beauty of HPC is using parallel processing and supercomputers to perform these calculations at incredibly high speeds. Typically, each workload is split into tasks, and these tasks are all performed in parallel where possible to complete them faster.
A term often used in HPC is called embarrassingly parallel. This refers to tasks that can be broken apart into many smaller tasks with little to no dependency on each other. A great example of this is a painting that is being reproduced. The color of one pixel is not dependent on the color of another pixel. So, imagine if instead of one painter, you had 500 painters, and their only job is to fill in one pixel. By leveraging more painters to work in parallel, the job time is reduced to a fraction of what it would have been with one painter.
HPC is most often used in scientific research, weather, engineering, finance, and other industries to perform simulations, data analysis, and other computations that would be impossible with traditional methods. Figure 1 shows some of the most common use cases where HPC is used.
Tim Carroll, a Director at Microsoft working in weather and climate, made this incredible video to explain high-performance computing. One of my favorite points he makes is that high-performance computing is a capability, not a thing. Ultimately HPC is a way to solve these complex computational problems, using a full set of products – virtual machines if you’re in the cloud, networking, storage, and even orchestration services. It’s not about the specific components that are being used, but instead about the way these problems are being solved.
As another analogy, I like to think of HPC in terms of ants. They work harmoniously together. Sometimes, they must communicate together, and sometimes their work is dependent on the work of another ant. Sometimes the work of one ant is really large, and sometimes it’s very simple. But in the end, the power is in having hundreds of ants, all doing their part in parallel.
Now that we understand the basics of what high-performance computing is, we'll move on to talk about the main workloads that use this capability and the different hardware that enables these. We’ll learn more about virtual machines, what they are, and the difference between CPUs and GPUs. Soon I’ll start trying my hand at the different use cases as we learn about them together.
I hope you enjoyed reading about high-performance computing! Please comment below if you have any input or if you have a use case you want me to try out. Remember I don’t have a PHD though. ;)
Interested in learning more about high performance computing?