A Conversation with James Reinders

By Tiffany Trader and John Russell

January 21, 2016

As Chief Evangelist of Intel Software Products, James Reinders spends most of his working hours thinking about and promoting parallel programming. He’s essentially a professor at large, attuning himself to the needs of software developers with an interest in parallel programming so he can offer guidance on techniques, ways of learning, and ways to “think parallel” – all with a strong Intel bent, naturally.

As Intel moved from a multicore paradigm to a manycore one with the introduction of Xeon Phi in 2010, Reinders’ parallel programming evangelizing went into overdrive. In the next half-decade, Reinders and Intel colleague Jim Jeffers co-authored two books focused on demonstrating the computational potential of Phi’s 60+ cores: High Performance Parallelism Pearls volume 1 and 2. With the second-generation Phi, Knights Landing, on-deck for general availability in 2016, we spoke with Reinders about the implications of Intel’s design choices for Knights Landing, what that means for compatibility and performance and what the user community can do to get ready for the first self-hosted manycore Xeon. Read the first half of our in-depth interview below.

HPCwire: How are the various communities and stakeholders preparing for Knights Landing? Can you talk about the challenges relating to porting and exploiting parallelism?

James Reinders: One of the things that distinguishes Xeon Phi is it’s not challenging to port to at all. Being on a coprocessor or PCI card requires a lot of considerations because of the limitations in the size of memory and having to stage your algorithms and so forth. Anytime you are trying to target something that sits on a PCI card, you have a challenge, and we really felt that with Xeon Phi, but one of the huge design principles behind Xeon Phi that we’ve delivered very well on is there is no porting effort per se to Xeon Phi because it essentially looks like a very high-core count Xeon. So the porting is the easy part for Knights Landing since it will be a processor and not sitting on a coprocessor card — unless you design to buy it that way.

As a processor, we’ve gotten rid of what I would say is the number one headache with Xeon Phi, which is the coprocessor, and you’re not left with a porting challenge, you’re left with a challenge of scaling your application. You’re going to face that with any processor or any compute device of any sort. So that’s why we spent so much energy focused on evangelist work, teaching and code modernization. The real challenge for the entire industry for parallel programming is finding and exploiting parallelism, regardless of what compute device you want to use. And I think with Xeon Phi what we’ve done is eliminate the porting issues and purely made it an issue of parallel programming.

HPCwire: Is one potential downside of the manycore processor approach in contrast with the accelerator or coprocessor paradigm that there are no full-strength cores to handle the parts of the code that don’t parallelize?

Reinders: You’re referring to Amdahl’s law, where the part of your program that’s serial is going to have a performance challenge. So you get bottlenecks around that. Anytime you have a system that has something highly parallel in it and you use that to speed up your parallel code, when you fall back to doing serial code, you’ve got a challenge. On Knights Corner, because it was a coprocessor, you try to divide your program between the coprocessor that’s highly parallel and your host, which is probably a very capable Xeon. So it is helpful to have a very capable host processor in that case. You’re not going to want to run something fast, accelerate it and have a weak processor coupled with it. For Knights Landing, we have much stronger serial performance than Knights Corner — and that’s on purpose.

If you take a look at Knights Corner, we have 61 cores and the performance difference between a Knights Corner core and a Xeon core is give or take 10X. Some people might tell you it’s 12 or 14X; it depends on the application — but it’s pretty severe. That means you really want to avoid having a lot of serial code run on the Knights Corner. It was pretty bad gap, owing to Amdahl’s effect. A well-parallelized program worked great; one that had serial regions had trouble.

On Knights Landing, we’ve reduced that to about a 3X difference. Of course, the only way to reduce this to a 1X is to become a Xeon. But that’s not the point of Xeon Phi, the point is to scale higher. But the fact that we’re at 3X, we’re seeing really good results with that, meaning that a system built with just Knights Landing as processors works pretty darn well.

HPCwire: Sounds like a balancing act.

Reinders: When you step back and look at computer architecture, there’s a lot of fun knobs you can turn when you are designing a machine and that’s what we as engineers do: we’re turning knobs. There are two main ones. One is big versus little cores, so when you go to a littler core, you can have more of them and you can scale further. But if you make them bigger, you can’t scale as much but you can handle a wider variety of code. We’ve turned that – that’s one knob.

Another knob you can turn is compatibility. If you take a look at a GPU design, including Intel’s GPUs, one of the design things you do is require a lot of the parallelism is to be done in lock-step, meaning the individual processing capabilities cannot do different code; they have to run exactly the same code at the same time. That has its pros and cons too. So for Xeon and Xeon Phi, we’ve made a very tight relationship between them in terms of compatibility. That’s our design decision. It has a lot of advantages and gives us the ability for Xeon Phi to scale higher than Xeon but to require that you are doing parallel programming. If you go and try to program our GPUs, you will find you don’t have that capability and are much more restricted in the programs you can run, and that gives the GPU certain capabilities that are useful for graphics units.

Compatibility with a processor also means an enormous amount of flexibility — which provides a large degree of preservation for code investment. Your code can keep working; you can decide how much to invest for performance, but you don’t have to go make the change in it just because you changed hardware generations.

HPCwire: Could you provide examples of codes that are best suited for Knights Landing and those that are not as well-suited?

Reinders: The one thing about Knights Landing is that it’s highly-parallel, so the Amdahl’s effect becomes a key consideration. So if your program is not parallel or not spending a significant amount of time doing things in parallel, then Knights Landing is not likely to be interesting.

There is an exception to that due to the aggregate bandwidth on Xeon Phi being higher than on Xeon, so we have seen some examples of codes that lean pretty high on bandwidth that see benefits on Xeon Phi even though that they aren’t as parallel as you might think. Because if your processor is waiting for bandwidth, feeding it more bandwidth can be helpful. Because aggregate bandwidth is high on Xeon Phi – it always has been – and you add in the high-bandwidth memory on Knights Landing, there are some applications that are a little less parallel than you’d expect that can get a boost on Knights Landing, but for the most part you are looking at programs that are parallel. So in the HPC domain, everything — that’s the easy part. Everything is a good target on Knights Landing but that’s simply because the HPC world has been parallel for so long that to be a successful code in HPC you need to be parallel. Outside of HPC, it’s less clear. There are certainly things in technical computing that might be outside what people call traditional HPC, and Knights Landing looks very good on the ones that are parallel there, including big data problems and machine learning. Now whether you consider these to be HPC, to me it’s kind of fuzzy.

HPCwire: Speaking of machine learning – do you expect the Knights Landing will get traction for neural networks?

Reinders: It’s quite a good device for the different neural nets both the training and the usage of them. Knights Landing in particular has some great attributes there. Because it’s not a coprocessor, we can talk about having large amounts of memory on it, which can be a huge advantage to many science problems and machine learning as well. That’s going to be an interesting thing to understand how to properly represent because you can choose your benchmarks carefully to fit in a small or select amount of memory, but a lot of times, with users, if their programs haven’t been as well conditioned, it would take effort if it’s even possible to condition an algorithm or application to run in too tight of a piece of memory. When you’re talking about a processor, like Knights Landing, that has a large amount of memory capability, you can build machines with an appropriate size of memory to fit your application, you’re not straddled by what happens to fit on a coprocessor code, which with KNC was a challenge for us sometimes. That constraint of more limited memory definitely limits some of the applications or algorithms you can run, including machine learning.

HPCwire: What can prospective Knights Landing users, most of whom do not yet have access to test systems or test systems of scale, do to prepare their codes?

Reinders: There are three keys for parallel programming: getting the program to scale, getting it to vectorize, and understanding data locality. With regard to vectorization and data locality, I’ve found there are a lot of machines out there that people can do their work on. Whether you’ve structured your code to vectorize or to be well-conditioned in memory, you can pick pretty much any Xeon or probably any other machine based on processors and you can focus on whether you’ve done the right things so that a compiler can do something for you there. I’d probably recommend a Xeon because then you are using an Intel compiler and if you are trying to see if it vectorizes, you are matched with the capabilities of the same compiler.

Scaling’s a more difficult one. Some people will ask me: can you just run on a high core-count Xeon? In my experience, it’s better if you run on a Knights Corner because you have 61 cores. Most people with Xeons tend to have machines that run up to 8 or 10 cores. As soon as I’ve said that someone holds their hand up and says they have access to a dual-socket 18-core Haswell machine. That’ll do just fine, although the price tag on that is a little bit higher than a Knights Corner card, but I’ll leave that to you to determine.

What I’ve found is — if you look at whether you scale well on 4 and 8 cores, you probably haven’t done the in-depth look to understand whether you’ve exposed enough parallelism to scale higher.

This is one of the two-edged swords we have with our programming techniques because we’re so compatible with Xeon that you don’t need to scale perfectly to run on a Xeon Phi. You do to get great performance, but you don’t have to do that. Whereas if you’re programming for a GPU, you need to decompose your problem in a way that scales; it’s just not possible to run there otherwise. It’s a different mode of thought and I think sometimes it’s tripped people up. They port code quickly to Xeon Phi and they’re not being forced to make their program scale. So the short answer here is you need to go force yourself to do something to scale your code. Figure out why it’s not scaling if it’s not. Fortunately, we have tools that can help in Parallel Studio and so forth, but there’s no substitute for that.

So as far as getting prepared, those are the mechanical things. Worry about scaling; worry about vectorization; worry about data locality. All three of those things can be a challenge and it’s a lot to think about, but there’s some great tools and different ways to learn. But I keep getting reminded by things that affect me in interfacing with customers that nothing’s more important than this catch phrase I use: “think parallel.” I could spend a lot of time describing what that means, but there’s no substitute as a programmer for really understanding where the parallelism is. Sometimes I run into examples where someone’s dove in a little too quickly and they’re trying to get their program to scale or trying to get an existing program to vectorize, and they haven’t stepped back, taken a deep breath, and thought about “where the heck is my parallelism.” Maybe they should think of the problem a little differently, structure the algorithm differently – that’s your most powerful tool. Instead of going and studying OpenMP, or CUDA or OpenCL or TBB, it’s useful to step back and study parallel programming as a general topic – the algorithms that work, understand what stencils are, understand what MapReduce means. Sometimes, when I’m talking to people who ask for advice, I’ll probe them and if they don’t know [these more basic elements], my strongest advice is to go learn these things before you start sprinkling in OpenMP commands; but if you already know these things, then the answer is to get your code to scale and vectorize.

Subscribe to HPCwire's Weekly Update!

Be the most informed person in the room! Stay ahead of the tech trends with industry updates delivered to you every week!

MLPerf Inference 4.0 Results Showcase GenAI; Nvidia Still Dominates

March 28, 2024

There were no startling surprises in the latest MLPerf Inference benchmark (4.0) results released yesterday. Two new workloads — Llama 2 and Stable Diffusion XL — were added to the benchmark suite as MLPerf continues Read more…

Q&A with Nvidia’s Chief of DGX Systems on the DGX-GB200 Rack-scale System

March 27, 2024

Pictures of Nvidia's new flagship mega-server, the DGX GB200, on the GTC show floor got favorable reactions on social media for the sheer amount of computing power it brings to artificial intelligence.  Nvidia's DGX Read more…

Call for Participation in Workshop on Potential NSF CISE Quantum Initiative

March 26, 2024

Editor’s Note: Next month there will be a workshop to discuss what a quantum initiative led by NSF’s Computer, Information Science and Engineering (CISE) directorate could entail. The details are posted below in a Ca Read more…

Waseda U. Researchers Reports New Quantum Algorithm for Speeding Optimization

March 25, 2024

Optimization problems cover a wide range of applications and are often cited as good candidates for quantum computing. However, the execution time for constrained combinatorial optimization applications on quantum device Read more…

NVLink: Faster Interconnects and Switches to Help Relieve Data Bottlenecks

March 25, 2024

Nvidia’s new Blackwell architecture may have stolen the show this week at the GPU Technology Conference in San Jose, California. But an emerging bottleneck at the network layer threatens to make bigger and brawnier pro Read more…

Who is David Blackwell?

March 22, 2024

During GTC24, co-founder and president of NVIDIA Jensen Huang unveiled the Blackwell GPU. This GPU itself is heavily optimized for AI work, boasting 192GB of HBM3E memory as well as the the ability to train 1 trillion pa Read more…

MLPerf Inference 4.0 Results Showcase GenAI; Nvidia Still Dominates

March 28, 2024

There were no startling surprises in the latest MLPerf Inference benchmark (4.0) results released yesterday. Two new workloads — Llama 2 and Stable Diffusion Read more…

Q&A with Nvidia’s Chief of DGX Systems on the DGX-GB200 Rack-scale System

March 27, 2024

Pictures of Nvidia's new flagship mega-server, the DGX GB200, on the GTC show floor got favorable reactions on social media for the sheer amount of computing po Read more…

NVLink: Faster Interconnects and Switches to Help Relieve Data Bottlenecks

March 25, 2024

Nvidia’s new Blackwell architecture may have stolen the show this week at the GPU Technology Conference in San Jose, California. But an emerging bottleneck at Read more…

Who is David Blackwell?

March 22, 2024

During GTC24, co-founder and president of NVIDIA Jensen Huang unveiled the Blackwell GPU. This GPU itself is heavily optimized for AI work, boasting 192GB of HB Read more…

Nvidia Looks to Accelerate GenAI Adoption with NIM

March 19, 2024

Today at the GPU Technology Conference, Nvidia launched a new offering aimed at helping customers quickly deploy their generative AI applications in a secure, s Read more…

The Generative AI Future Is Now, Nvidia’s Huang Says

March 19, 2024

We are in the early days of a transformative shift in how business gets done thanks to the advent of generative AI, according to Nvidia CEO and cofounder Jensen Read more…

Nvidia’s New Blackwell GPU Can Train AI Models with Trillions of Parameters

March 18, 2024

Nvidia's latest and fastest GPU, codenamed Blackwell, is here and will underpin the company's AI plans this year. The chip offers performance improvements from Read more…

Nvidia Showcases Quantum Cloud, Expanding Quantum Portfolio at GTC24

March 18, 2024

Nvidia’s barrage of quantum news at GTC24 this week includes new products, signature collaborations, and a new Nvidia Quantum Cloud for quantum developers. Wh Read more…

Alibaba Shuts Down its Quantum Computing Effort

November 30, 2023

In case you missed it, China’s e-commerce giant Alibaba has shut down its quantum computing research effort. It’s not entirely clear what drove the change. Read more…

Nvidia H100: Are 550,000 GPUs Enough for This Year?

August 17, 2023

The GPU Squeeze continues to place a premium on Nvidia H100 GPUs. In a recent Financial Times article, Nvidia reports that it expects to ship 550,000 of its lat Read more…

Shutterstock 1285747942

AMD’s Horsepower-packed MI300X GPU Beats Nvidia’s Upcoming H200

December 7, 2023

AMD and Nvidia are locked in an AI performance battle – much like the gaming GPU performance clash the companies have waged for decades. AMD has claimed it Read more…

DoD Takes a Long View of Quantum Computing

December 19, 2023

Given the large sums tied to expensive weapon systems – think $100-million-plus per F-35 fighter – it’s easy to forget the U.S. Department of Defense is a Read more…

Synopsys Eats Ansys: Does HPC Get Indigestion?

February 8, 2024

Recently, it was announced that Synopsys is buying HPC tool developer Ansys. Started in Pittsburgh, Pa., in 1970 as Swanson Analysis Systems, Inc. (SASI) by John Swanson (and eventually renamed), Ansys serves the CAE (Computer Aided Engineering)/multiphysics engineering simulation market. Read more…

Choosing the Right GPU for LLM Inference and Training

December 11, 2023

Accelerating the training and inference processes of deep learning models is crucial for unleashing their true potential and NVIDIA GPUs have emerged as a game- Read more…

Intel’s Server and PC Chip Development Will Blur After 2025

January 15, 2024

Intel's dealing with much more than chip rivals breathing down its neck; it is simultaneously integrating a bevy of new technologies such as chiplets, artificia Read more…

Baidu Exits Quantum, Closely Following Alibaba’s Earlier Move

January 5, 2024

Reuters reported this week that Baidu, China’s giant e-commerce and services provider, is exiting the quantum computing development arena. Reuters reported � Read more…

Leading Solution Providers

Contributors

Comparing NVIDIA A100 and NVIDIA L40S: Which GPU is Ideal for AI and Graphics-Intensive Workloads?

October 30, 2023

With long lead times for the NVIDIA H100 and A100 GPUs, many organizations are looking at the new NVIDIA L40S GPU, which it’s a new GPU optimized for AI and g Read more…

Shutterstock 1179408610

Google Addresses the Mysteries of Its Hypercomputer 

December 28, 2023

When Google launched its Hypercomputer earlier this month (December 2023), the first reaction was, "Say what?" It turns out that the Hypercomputer is Google's t Read more…

AMD MI3000A

How AMD May Get Across the CUDA Moat

October 5, 2023

When discussing GenAI, the term "GPU" almost always enters the conversation and the topic often moves toward performance and access. Interestingly, the word "GPU" is assumed to mean "Nvidia" products. (As an aside, the popular Nvidia hardware used in GenAI are not technically... Read more…

Shutterstock 1606064203

Meta’s Zuckerberg Puts Its AI Future in the Hands of 600,000 GPUs

January 25, 2024

In under two minutes, Meta's CEO, Mark Zuckerberg, laid out the company's AI plans, which included a plan to build an artificial intelligence system with the eq Read more…

Google Introduces ‘Hypercomputer’ to Its AI Infrastructure

December 11, 2023

Google ran out of monikers to describe its new AI system released on December 7. Supercomputer perhaps wasn't an apt description, so it settled on Hypercomputer Read more…

China Is All In on a RISC-V Future

January 8, 2024

The state of RISC-V in China was discussed in a recent report released by the Jamestown Foundation, a Washington, D.C.-based think tank. The report, entitled "E Read more…

Intel Won’t Have a Xeon Max Chip with New Emerald Rapids CPU

December 14, 2023

As expected, Intel officially announced its 5th generation Xeon server chips codenamed Emerald Rapids at an event in New York City, where the focus was really o Read more…

IBM Quantum Summit: Two New QPUs, Upgraded Qiskit, 10-year Roadmap and More

December 4, 2023

IBM kicks off its annual Quantum Summit today and will announce a broad range of advances including its much-anticipated 1121-qubit Condor QPU, a smaller 133-qu Read more…

  • arrow
  • Click Here for More Headlines
  • arrow
HPCwire