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 industy updates delivered to you every week!

SC17 Student Cluster Competition Configurations: Fewer Nodes, Way More Accelerators

November 16, 2017

The final configurations for each of the SC17 “Donnybrook in Denver” Student Cluster Competition have been released. Fortunately, each team received their equipment shipments on time and undamaged, so the teams are r Read more…

By Dan Olds

Student Clusterers Demolish HPCG Record! Nanyang Sweeps Benchmarks

November 16, 2017

Nanyang pulled off the always difficult double-play at this year’s SC Student Cluster Competition. The plucky team from Singapore posted a world record LINPACK, thus taking the Highest LINPACK Award, but also managed t Read more…

By Dan Olds

Student Cluster LINPACK Record Shattered! More LINs Packed Than Ever before!

November 16, 2017

Nanyang Technological University, the pride of Singapore, utterly destroyed the Student Cluster Competition LINPACK record by posting a score of 51.77 TFlop/s at SC17 in Denver. The previous record, established by German Read more…

By Dan Olds

HPE Extreme Performance Solutions

Harness Scalable Petabyte Storage with HPE Apollo 4510 and HPE StoreEver

As a growing number of connected devices challenges IT departments to rapidly collect, manage, and store troves of data, organizations must adopt a new generation of IT to help them operate quickly and intelligently. Read more…

Hyperion Market Update: ‘Decent’ Growth Led by HPE; AI Transparency a Risk Issue

November 15, 2017

The HPC market update from Hyperion Research (formerly IDC) at the annual SC conference is a business and social “must,” and this year’s presentation at SC17 played to a SRO crowd at a downtown Denver hotel. This w Read more…

By Doug Black

SC17 Student Cluster Competition Configurations: Fewer Nodes, Way More Accelerators

November 16, 2017

The final configurations for each of the SC17 “Donnybrook in Denver” Student Cluster Competition have been released. Fortunately, each team received their e Read more…

By Dan Olds

Student Clusterers Demolish HPCG Record! Nanyang Sweeps Benchmarks

November 16, 2017

Nanyang pulled off the always difficult double-play at this year’s SC Student Cluster Competition. The plucky team from Singapore posted a world record LINPAC Read more…

By Dan Olds

Student Cluster LINPACK Record Shattered! More LINs Packed Than Ever before!

November 16, 2017

Nanyang Technological University, the pride of Singapore, utterly destroyed the Student Cluster Competition LINPACK record by posting a score of 51.77 TFlop/s a Read more…

By Dan Olds

Hyperion Market Update: ‘Decent’ Growth Led by HPE; AI Transparency a Risk Issue

November 15, 2017

The HPC market update from Hyperion Research (formerly IDC) at the annual SC conference is a business and social “must,” and this year’s presentation at S Read more…

By Doug Black

The Betting Window is Closed: Final Student Cluster Competition Betting Odds are in!

November 15, 2017

The window has closed and the bettors are clutching their tickets, anxiously awaiting the results of the SC17 Student Cluster Competition. We’ve seen big chan Read more…

By Dan Olds

2017 Student Cluster Competition Benchmarks, Workloads, and Pre-Planned Disasters

November 15, 2017

The students competing in the 2017 Student Cluster Competition in Denver are facing a grueling 48 hour marathon of HPC benchmarks and real scientific applicatio Read more…

By Dan Olds

Nvidia Focuses Its Cloud Containers on HPC Applications

November 14, 2017

Having migrated its top-of-the-line datacenter GPU to the largest cloud vendors, Nvidia is touting its Volta architecture for a range of scientific computing ta Read more…

By George Leopold

HPE Launches ARM-based Apollo System for HPC, AI

November 14, 2017

HPE doubled down on its memory-driven computing vision while expanding its processor portfolio with the announcement yesterday of the company’s first ARM-base Read more…

By Doug Black

US Coalesces Plans for First Exascale Supercomputer: Aurora in 2021

September 27, 2017

At the Advanced Scientific Computing Advisory Committee (ASCAC) meeting, in Arlington, Va., yesterday (Sept. 26), it was revealed that the "Aurora" supercompute Read more…

By Tiffany Trader

NERSC Scales Scientific Deep Learning to 15 Petaflops

August 28, 2017

A collaborative effort between Intel, NERSC and Stanford has delivered the first 15-petaflops deep learning software running on HPC platforms and is, according Read more…

By Rob Farber

Oracle Layoffs Reportedly Hit SPARC and Solaris Hard

September 7, 2017

Oracle’s latest layoffs have many wondering if this is the end of the line for the SPARC processor and Solaris OS development. As reported by multiple sources Read more…

By John Russell

Nvidia Responds to Google TPU Benchmarking

April 10, 2017

Nvidia highlights strengths of its newest GPU silicon in response to Google's report on the performance and energy advantages of its custom tensor processor. Read more…

By Tiffany Trader

Google Releases Deeplearn.js to Further Democratize Machine Learning

August 17, 2017

Spreading the use of machine learning tools is one of the goals of Google’s PAIR (People + AI Research) initiative, which was introduced in early July. Last w Read more…

By John Russell

GlobalFoundries Puts Wind in AMD’s Sails with 12nm FinFET

September 24, 2017

From its annual tech conference last week (Sept. 20), where GlobalFoundries welcomed more than 600 semiconductor professionals (reaching the Santa Clara venue Read more…

By Tiffany Trader

Graphcore Readies Launch of 16nm Colossus-IPU Chip

July 20, 2017

A second $30 million funding round for U.K. AI chip developer Graphcore sets up the company to go to market with its “intelligent processing unit” (IPU) in Read more…

By Tiffany Trader

Amazon Debuts New AMD-based GPU Instances for Graphics Acceleration

September 12, 2017

Last week Amazon Web Services (AWS) streaming service, AppStream 2.0, introduced a new GPU instance called Graphics Design intended to accelerate graphics. The Read more…

By John Russell

Leading Solution Providers

Reinders: “AVX-512 May Be a Hidden Gem” in Intel Xeon Scalable Processors

June 29, 2017

Imagine if we could use vector processing on something other than just floating point problems.  Today, GPUs and CPUs work tirelessly to accelerate algorithms Read more…

By James Reinders

EU Funds 20 Million Euro ARM+FPGA Exascale Project

September 7, 2017

At the Barcelona Supercomputer Centre on Wednesday (Sept. 6), 16 partners gathered to launch the EuroEXA project, which invests €20 million over three-and-a-half years into exascale-focused research and development. Led by the Horizon 2020 program, EuroEXA picks up the banner of a triad of partner projects — ExaNeSt, EcoScale and ExaNoDe — building on their work... Read more…

By Tiffany Trader

Delays, Smoke, Records & Markets – A Candid Conversation with Cray CEO Peter Ungaro

October 5, 2017

Earlier this month, Tom Tabor, publisher of HPCwire and I had a very personal conversation with Cray CEO Peter Ungaro. Cray has been on something of a Cinderell Read more…

By Tiffany Trader & Tom Tabor

Cray Moves to Acquire the Seagate ClusterStor Line

July 28, 2017

This week Cray announced that it is picking up Seagate's ClusterStor HPC storage array business for an undisclosed sum. "In short we're effectively transitioning the bulk of the ClusterStor product line to Cray," said CEO Peter Ungaro. Read more…

By Tiffany Trader

Intel Launches Software Tools to Ease FPGA Programming

September 5, 2017

Field Programmable Gate Arrays (FPGAs) have a reputation for being difficult to program, requiring expertise in specialty languages, like Verilog or VHDL. Easin Read more…

By Tiffany Trader

HPC Chips – A Veritable Smorgasbord?

October 10, 2017

For the first time since AMD's ill-fated launch of Bulldozer the answer to the question, 'Which CPU will be in my next HPC system?' doesn't have to be 'Whichever variety of Intel Xeon E5 they are selling when we procure'. Read more…

By Dairsie Latimer

IBM Advances Web-based Quantum Programming

September 5, 2017

IBM Research is pairing its Jupyter-based Data Science Experience notebook environment with its cloud-based quantum computer, IBM Q, in hopes of encouraging a new class of entrepreneurial user to solve intractable problems that even exceed the capabilities of the best AI systems. Read more…

By Alex Woodie

How ‘Knights Mill’ Gets Its Deep Learning Flops

June 22, 2017

Intel, the subject of much speculation regarding the delayed, rewritten or potentially canceled “Aurora” contract (the Argonne Lab part of the CORAL “ Read more…

By Tiffany Trader

  • arrow
  • Click Here for More Headlines
  • arrow
Share This