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!

Pfizer HPC Engineer Aims to Automate Software Stack Testing

January 17, 2019

Seeking to reign in the tediousness of manual software testing, Pfizer HPC Engineer Shahzeb Siddiqui is developing an open source software tool called buildtest, aimed at automating software stack testing by providing the community with a central repository of tests for common HPC apps and the ability to automate execution of testing. Read more…

By Tiffany Trader

Senegal Prepares to Take Delivery of Atos Supercomputer

January 16, 2019

In just a few months time, Senegal will be operating the second largest HPC system in sub-Saharan Africa. The Minister of Higher Education, Research and Innovation Mary Teuw Niane made the announcement on Monday (Jan. 14 Read more…

By Tiffany Trader

Google Cloud Platform Extends GPU Instance Options

January 16, 2019

If it's Nvidia GPUs you're after to power your AI/HPC/visualization workload, Google Cloud has them, now claiming "broadest GPU availability." Each of the three big public cloud vendors has by turn touted the latest and Read more…

By Tiffany Trader

HPE Extreme Performance Solutions

HPE Systems With Intel Omni-Path: Architected for Value and Accessible High-Performance Computing

Today’s high-performance computing (HPC) and artificial intelligence (AI) users value high performing clusters. And the higher the performance that their system can deliver, the better. Read more…

IBM Accelerated Insights

Resource Management in the Age of Artificial Intelligence

New challenges demand fresh approaches

Fueled by GPUs, big data, and rapid advances in software, the AI revolution is upon us. Read more…

STAC Floats ML Benchmark for Financial Services Workloads

January 16, 2019

STAC (Securities Technology Analysis Center) recently released an ‘exploratory’ benchmark for machine learning which it hopes will evolve into a firm benchmark or suite of benchmarking tools to compare the performanc Read more…

By John Russell

Google Cloud Platform Extends GPU Instance Options

January 16, 2019

If it's Nvidia GPUs you're after to power your AI/HPC/visualization workload, Google Cloud has them, now claiming "broadest GPU availability." Each of the three Read more…

By Tiffany Trader

STAC Floats ML Benchmark for Financial Services Workloads

January 16, 2019

STAC (Securities Technology Analysis Center) recently released an ‘exploratory’ benchmark for machine learning which it hopes will evolve into a firm benchm Read more…

By John Russell

A Big Data Journey While Seeking to Catalog our Universe

January 16, 2019

It turns out, astronomers have lots of photos of the sky but seek knowledge about what the photos mean. Sound familiar? Big data problems are often characterize Read more…

By James Reinders

Intel Bets Big on 2-Track Quantum Strategy

January 15, 2019

Quantum computing has lived so long in the future it’s taken on a futuristic life of its own, with a Gartner-style hype cycle that includes triggers of innovation, inflated expectations and – though a useful quantum system is still years away – anticipatory troughs of disillusionment. Read more…

By Doug Black

IBM Quantum Update: Q System One Launch, New Collaborators, and QC Center Plans

January 10, 2019

IBM made three significant quantum computing announcements at CES this week. One was introduction of IBM Q System One; it’s really the integration of IBM’s Read more…

By John Russell

IBM’s New Global Weather Forecasting System Runs on GPUs

January 9, 2019

Anyone who has checked a forecast to decide whether or not to pack an umbrella knows that weather prediction can be a mercurial endeavor. It is a Herculean task: the constant modeling of incredibly complex systems to a high degree of accuracy at a local level within very short spans of time. Read more…

By Oliver Peckham

The Case Against ‘The Case Against Quantum Computing’

January 9, 2019

It’s not easy to be a physicist. Richard Feynman (basically the Jimi Hendrix of physicists) once said: “The first principle is that you must not fool yourse Read more…

By Ben Criger

The Deep500 – Researchers Tackle an HPC Benchmark for Deep Learning

January 7, 2019

How do you know if an HPC system, particularly a larger-scale system, is well-suited for deep learning workloads? Today, that’s not an easy question to answer Read more…

By John Russell

Quantum Computing Will Never Work

November 27, 2018

Amid the gush of money and enthusiastic predictions being thrown at quantum computing comes a proposed cold shower in the form of an essay by physicist Mikhail Read more…

By John Russell

Cray Unveils Shasta, Lands NERSC-9 Contract

October 30, 2018

Cray revealed today the details of its next-gen supercomputing architecture, Shasta, selected to be the next flagship system at NERSC. We've known of the code-name "Shasta" since the Argonne slice of the CORAL project was announced in 2015 and although the details of that plan have changed considerably, Cray didn't slow down its timeline for Shasta. Read more…

By Tiffany Trader

AMD Sets Up for Epyc Epoch

November 16, 2018

It’s been a good two weeks, AMD’s Gary Silcott and Andy Parma told me on the last day of SC18 in Dallas at the restaurant where we met to discuss their show news and recent successes. Heck, it’s been a good year. Read more…

By Tiffany Trader

The Case Against ‘The Case Against Quantum Computing’

January 9, 2019

It’s not easy to be a physicist. Richard Feynman (basically the Jimi Hendrix of physicists) once said: “The first principle is that you must not fool yourse Read more…

By Ben Criger

US Leads Supercomputing with #1, #2 Systems & Petascale Arm

November 12, 2018

The 31st Supercomputing Conference (SC) - commemorating 30 years since the first Supercomputing in 1988 - kicked off in Dallas yesterday, taking over the Kay Ba Read more…

By Tiffany Trader

Contract Signed for New Finnish Supercomputer

December 13, 2018

After the official contract signing yesterday, configuration details were made public for the new BullSequana system that the Finnish IT Center for Science (CSC Read more…

By Tiffany Trader

Nvidia’s Jensen Huang Delivers Vision for the New HPC

November 14, 2018

For nearly two hours on Monday at SC18, Jensen Huang, CEO of Nvidia, presented his expansive view of the future of HPC (and computing in general) as only he can do. Animated. Backstopped by a stream of data charts, product photos, and even a beautiful image of supernovae... Read more…

By John Russell

HPE No. 1, IBM Surges, in ‘Bucking Bronco’ High Performance Server Market

September 27, 2018

Riding healthy U.S. and global economies, strong demand for AI-capable hardware and other tailwind trends, the high performance computing server market jumped 28 percent in the second quarter 2018 to $3.7 billion, up from $2.9 billion for the same period last year, according to industry analyst firm Hyperion Research. Read more…

By Doug Black

Leading Solution Providers

SC 18 Virtual Booth Video Tour

Advania @ SC18 AMD @ SC18
ASRock Rack @ SC18
DDN Storage @ SC18
HPE @ SC18
IBM @ SC18
Lenovo @ SC18 Mellanox Technologies @ SC18
NVIDIA @ SC18
One Stop Systems @ SC18
Oracle @ SC18 Panasas @ SC18
Supermicro @ SC18 SUSE @ SC18 TYAN @ SC18
Verne Global @ SC18

Summit Supercomputer is Already Making its Mark on Science

September 20, 2018

Summit, now the fastest supercomputer in the world, is quickly making its mark in science – five of the six finalists just announced for the prestigious 2018 Read more…

By John Russell

HPC Reflections and (Mostly Hopeful) Predictions

December 19, 2018

So much ‘spaghetti’ gets tossed on walls by the technology community (vendors and researchers) to see what sticks that it is often difficult to peer through Read more…

By John Russell

Intel Confirms 48-Core Cascade Lake-AP for 2019

November 4, 2018

As part of the run-up to SC18, taking place in Dallas next week (Nov. 11-16), Intel is doling out info on its next-gen Cascade Lake family of Xeon processors, specifically the “Advanced Processor” version (Cascade Lake-AP), architected for high-performance computing, artificial intelligence and infrastructure-as-a-service workloads. Read more…

By Tiffany Trader

Germany Celebrates Launch of Two Fastest Supercomputers

September 26, 2018

The new high-performance computer SuperMUC-NG at the Leibniz Supercomputing Center (LRZ) in Garching is the fastest computer in Germany and one of the fastest i Read more…

By Tiffany Trader

Houston to Field Massive, ‘Geophysically Configured’ Cloud Supercomputer

October 11, 2018

Based on some news stories out today, one might get the impression that the next system to crack number one on the Top500 would be an industrial oil and gas mon Read more…

By Tiffany Trader

Microsoft to Buy Mellanox?

December 20, 2018

Networking equipment powerhouse Mellanox could be an acquisition target by Microsoft, according to a published report in an Israeli financial publication. Microsoft has reportedly gone so far as to engage Goldman Sachs to handle negotiations with Mellanox. Read more…

By Doug Black

The Deep500 – Researchers Tackle an HPC Benchmark for Deep Learning

January 7, 2019

How do you know if an HPC system, particularly a larger-scale system, is well-suited for deep learning workloads? Today, that’s not an easy question to answer Read more…

By John Russell

House Passes $1.275B National Quantum Initiative

September 17, 2018

Last Thursday the U.S. House of Representatives passed the National Quantum Initiative Act (NQIA) intended to accelerate quantum computing research and developm Read more…

By John Russell

  • arrow
  • Click Here for More Headlines
  • arrow
Do NOT follow this link or you will be banned from the site!
Share This