A Call to Arms for Parallel Programming Standards

By Nicole Hemsoth

November 16, 2010

Although the parallel programming landscape is relatively young, it’s already easy to get lost in. Beside legacy frameworks like MPI and OpenMP, we now have NVIDIA’s CUDA, OpenCL, Cilk, Intel Threading Building Blocks, Microsoft’s parallel programming extensions for .NET, and a whole gamut of PGAS languages.

And according to Intel’s Tim Mattson, that’s not necessarily a good thing. Mattson, who is a principal engineer (and parallel programming evangelist) at the company’s Visual Applications Research Lab, says all these software frameworks are leading to what he calls “choice overload” and this concerns him greatly.

From his point of view, the road to parallel programming need to be paved with open industry standards. And today then means MPI, OpenMP, and OpenCL. Given that some of Intel’s parallel software offerings such as the Cilk Plus and Array Building Blocks are proprietary, that viewpoint sometimes puts him at odds with his own company. But Mattson’s role as an Intel researcher forces him to look beyond the one or two-year timeframe of product cycles. He’s in it for the long-term, and that means Mattson is looking at what is best for the ecosystem ten years out. “First and foremost, we have to make sure that the right standards exist and they run best on Intel products,” he says.

At SC10 this year, Mattson will be in full software evangelist mode, speaking at seven different tutorials, BoFs and panels on various parallel programming topics. Three of these are geared to fire up the troops for OpenCL, an open standard parallel programming framework for heterogeneous multicore architectures. HPCwire spoke with Mattson shortly before the conference about the importance of open standards, his unapologetic enthusiasm for OpenCL, and his open animosity for the CUDA programming language.

HPCwire: What is the significance of OpenCL and why are you devoting so much time talking about it at SC10?

Tim Mattson: I think OpenCL is perhaps the most important development in the last five, if not the last ten years. The reason I make such an over-the-top statement is that I believe the core to solving the parallel programming challenge is standards. Only an idiot software developer would write code using a propriety API. Since I don’t like to work with idiots (laughs), I want to support good software developers out there by making sure they have the full suite of standards that they need.

So we have message passing covered: MPI. It’s great. We have shared memory covered: OpenMP. It’s great. The glaring hole — because frankly I don’t think any of us saw it coming in the early 2000s — is heterogenous platforms. So we have to fill that hole, and that’s what OpenCL does. So I think it’s incredibly important because now with MPI, OpenMP and OpenCL we’ve got the space covered with these low-level basic programming standards that are required to move things forward.

HPCwire: Well as far as openness goes, NVIDIA’s CUDA programming API is available for any vendor to implement for their particular parallel hardware architecture. For example, AMD could support CUDA for their x86 and GPU platforms. So couldn’t CUDA be adopted as a standard as well?

Mattson: Well, just think about it. I can’t speak for AMD, but why would Intel put resources into an API or language that we have absolutely no say in over how it’s going to evolve? To call CUDA a standard is just insulting. It’s not a standard until the various players can all have a voice in it. It’s ridiculous. If NVIDIA was serious about it, they would create an industry working group that owns the development of CUDA’s API and languages and that has a full voice in what happens with it. Oh, by the way, that’s what OpenCL is.

HPCwire: But there is at least one example of a standard language that emerged from a vendor initiative. Java was controlled by Sun Microsystems for many years and was adopted as a commercial standard because it became so popular across the industry. Don’t you think CUDA could follow that model?

Mattson: Well I know that’s what NVIDIA would like to see happen. And yes, Java is the one instance that would call into question how absolute my statement is. Java though was coming into a very different market and was tightly associated with the Web browser — a platform that cut across the industry. And Sun showed very early on that they were willing to support it as a cross-platform language. They had Java available on x86 and Sparc and showed a willingness to work across the vendors. NVIDIA — rationally, by the way — isn’t doing this with CUDA.

When you look closely at OpenCL, it covers everything CUDA can do and more. OpenCL has all the key vendors and covers a much wider space than CUDA. We’ve got the embedded people, the cell phone vendors, and game vendors all involved. So OpenCL is the right way to go; CUDA is the wrong way to go.

HPCwire: In the high performance computing community, though, there has been criticism that OpenCL doesn’t deliver the kind of performance required for HPC codes. Do you think that’s a fair assessment?

Mattson: That’s a statement that’s both true and false. There’s nothing pathological in the definition of OpenCL that prevents it from being every bit as efficient as CUDA. The thing about OpenCL is that it’s young; it just hasn’t been out very long. So it really comes down to the vendors as far as the quality of their implementations.

I think it’s important for the programmers out there — and let’s face it, they are the end user community for these technologies — to steer things in the right direction by insisting on standards. Look at how MPI and OpenMP came into existence. In both those cases, the user community insisted that these standards be the foundation of the software ecosystem, and the vendors stood behind them. We need people to do the same thing here and not get caught up with point solutions.

If NVIDIA engineers spent as much time optimizing OpenCL, it would run as fast as CUDA. So the performance arguments don’t hold a lot of sway with me, except when someone can say this feature of the language as defined is fundamentally going to be inefficient regardless of the quality of implementation. When people find those, we in the OpenCL group take it very seriously.

We’re roughly on a two-year cadence of coming out with new releases of the OpenCL spec, and we’re very focused on finding the weakness in OpenCL and aggressively evolving the language and to stay right in line with the latest hardware trends.

HPCwire: There are plenty of other languages that address multicore parallelism, some of which have been introduced by Intel. How does OpenCL fit in?

Mattson: Let me be really clear. There are three distinct standards that address multicore. MPI, for example, works great on multicore. OpenMP, if you have a shared address space, works really well too. And OpenCL covers heterogenous architectures. It’s really the trio that I’m pushing and Intel is 100 percent behind them.

On the other hand, yes, there is a trend that I find deeply disturbing of vendors wanting to distinguish themselves by creating new languages and proprietary APIs. It’s disturbing because time spent on a new language or proprietary API is time not spent on improving and establishing these standards. So this is where I’m kind of at odds with some of my colleagues at Intel. That’s just the way it goes.

Let’s face it. Vendors, left to their devices, want people to adopt a proprietary API that lock them into their platform. That’s not bad. NVIDIA is completely rational in wanting to lock people into their platform with CUDA. If I was working at NVIDIA, I’d probably be trying to do the same think. I think it’s up to the user community to refuse to let users get away with that game. They can do that by insisting on standards or open source solutions.

The three standards I mentioned are where I think most of the resource should go. But Intel did release Task Building Blocks –TBB — as open source. That was a very responsible thing to do. I was very excited, as was the TBB team, when that happened.

HPCwire: Another language is Ct, which started as a research project at Intel and has now been commercialized. How does that fit in to this parallel language ecosystem?

Mattson: Ct, which by the way, is now called Array Building Blocks, is a higher level abstraction of parallelism. While I’m a huge supporter of what they are doing with Array Building Blocks, [as for] how useful it will be in the marketplace, I’m not sure because it is proprietary. But I think some of the optimizations it does under the covers is very important. There are a lot of really important things about that project.

But I think we should distinguish creating good technologies versus confusing the market by having too many options out there. In 2004, if you wanted to do parallel programming you had Windows threads, pthreads on Linux, OpenMP, and MPI. Five options was fine. Now there are a dozen or more parallel programming languages out there. So I think we’re losing ground. I think choice overload is real. And that concerns me deeply.

HPCwire: Do you think parallelizing established languages like Java and Python is a positive development?

Mattson: Let me tell you where I think things are going and where we’ll be in 10 years. The question is do we get there cleanly or do we get there with messy detours along the way. Ultimately I think we have to raise the level of abstraction, which is what you see with these efforts around building parallelism into Python. We need to focus on the higher level frameworks that people are increasingly using to write software.

This is really what I spend the bulk of my time doing in my personal research, and with a group at UC Berkeley — to define patterned languages from which we can derive the frameworks, which then map down to the lower-level languages. I really want to make it so that only a small number of performance-oriented, efficiency layer programmers worry about these low-level languages — OpenCL, MPI, OpenMP, or TBB. But beyond that, people need to have some higher level framework they can work with. A parallel Python project like Copperhead is such an example. I’m very excited about it because I think that’s clearly the direction things are moving.

I learned this most clearly looking at the gaming industry, because that industry has been the leader in adopting multicore, and I mean adopting multicore as a successful business venture. Researchers have been playing with it for a long time, but in terms of creating multicore software, selling it, and building a profitable businesses around it, the gaming industry has led the charge.

They have these separations of concerns very sharply defined, and it works extremely well for them. Most of their programmers work in a higher level scripting language or with collections of libraries written in C++. And then they have a small number of “technology programmers” which are on the order of 10 percent of their software developers. They’re the guys who do the low-level stuff. And I think that kind of separation of concerns is what’s absolutely critical.

HPCwire: So you think higher level frameworks will be key to enabling these low-level parallel programming APIs you’re talking about?

Mattson: When we were sitting around creating OpenCL, we explicitly talked about that as our goal. In fact, you’ll find some places in the spec where we describe OpenCL as a hardware abstraction layer. We’re perfectly aware that OpenCL is obnoxiously low-level. It exposes so many details of the underlying platform. We achieve extreme portability by exposing everything and abstracting as little as we can. The reason we think that’s the right thing to do is because we view OpenCL ultimately as being a target for higher level frameworks. It’s young, so those higher level frameworks don’t exist yet, but I think they will and I think that will be the long range trend, not just for OpenCL, but for all these parallel languages.

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!

Hyperion: HPC Server Market Ekes 1 Percent Gain in 2020, Storage Poised for ‘Tipping Point’

May 12, 2021

The HPC User Forum meeting taking place virtually this week (May 11-13) kicked off with Hyperion Research’s market update, covering the 2020 period. Although the HPC server market had been facing a 6.7 percent COVID-re Read more…

Finland’s CSC Chronicles the COVID Research Performed on Its ‘Puhti’ Supercomputer

May 11, 2021

CSC, Finland’s IT Center for Science, is home to a variety of computing resources, including the 1.7 petaflops Puhti supercomputer. The 682-node, Intel Cascade Lake-powered system, which places about halfway down the T Read more…

IBM Debuts Qiskit Runtime for Quantum Computing; Reports Dramatic Speed-up

May 11, 2021

In conjunction with its virtual Think event, IBM today introduced an enhanced Qiskit Runtime Software for quantum computing, which it says demonstrated 120x speedup in simulating molecules. Qiskit is IBM’s quantum soft Read more…

AMD Chipmaker TSMC to Use AMD Chips for Chipmaking

May 8, 2021

TSMC has tapped AMD to support its major manufacturing and R&D workloads. AMD will provide its Epyc Rome 7702P CPUs – with 64 cores operating at a base clock of 2.0GHz – implemented in HPE's single-socket ProLian Read more…

Supercomputer Research Tracks the Loss of the World’s Glaciers

May 7, 2021

British Columbia – which is over twice the size of California – contains around 17,000 glaciers that cover three percent of its landmass. These glaciers are crucial for the Canadian province, which relies on its many Read more…

AWS Solution Channel

FLYING WHALES runs CFD workloads 15 times faster on AWS

FLYING WHALES is a French startup that is developing a 60-ton payload cargo airship for the heavy lift and outsize cargo market. The project was born out of France’s ambition to provide efficient, environmentally friendly transportation for collecting wood in remote areas. Read more…

Meet Dell’s Pete Manca, an HPCwire Person to Watch in 2021

May 7, 2021

Pete Manca heads up Dell's newly formed HPC and AI leadership group. As senior vice president of the integrated solutions engineering team, he is focused on custom design, technology alliances, high-performance computing Read more…

Hyperion: HPC Server Market Ekes 1 Percent Gain in 2020, Storage Poised for ‘Tipping Point’

May 12, 2021

The HPC User Forum meeting taking place virtually this week (May 11-13) kicked off with Hyperion Research’s market update, covering the 2020 period. Although Read more…

IBM Debuts Qiskit Runtime for Quantum Computing; Reports Dramatic Speed-up

May 11, 2021

In conjunction with its virtual Think event, IBM today introduced an enhanced Qiskit Runtime Software for quantum computing, which it says demonstrated 120x spe Read more…

AMD Chipmaker TSMC to Use AMD Chips for Chipmaking

May 8, 2021

TSMC has tapped AMD to support its major manufacturing and R&D workloads. AMD will provide its Epyc Rome 7702P CPUs – with 64 cores operating at a base cl Read more…

Fast Pass Through (Some of) the Quantum Landscape with ORNL’s Raphael Pooser

May 7, 2021

In a rather remarkable way, and despite the frequent hype, the behind-the-scenes work of developing quantum computing has dramatically accelerated in the past f Read more…

IBM Research Debuts 2nm Test Chip with 50 Billion Transistors

May 6, 2021

IBM Research today announced the successful prototyping of the world's first 2 nanometer chip, fabricated with silicon nanosheet technology on a standard 300mm Read more…

LRZ Announces New Phase of SuperMUC-NG Supercomputer with Intel’s ‘Ponte Vecchio’ GPU

May 5, 2021

At the Leibniz Supercomputing Centre (LRZ) in München, Germany – one of the constituent centers of the Gauss Centre for Supercomputing (GCS) – the SuperMUC Read more…

Crystal Ball Gazing at Nvidia: R&D Chief Bill Dally Talks Targets and Approach

May 4, 2021

There’s no quibbling with Nvidia’s success. Entrenched atop the GPU market, Nvidia has ridden its own inventiveness and growing demand for accelerated computing to meet the needs of HPC and AI. Recently it embarked on an ambitious expansion by acquiring Mellanox (interconnect)... Read more…

Intel Invests $3.5 Billion in New Mexico Fab to Focus on Foveros Packaging Technology

May 3, 2021

Intel announced it is investing $3.5 billion in its Rio Rancho, New Mexico, facility to support its advanced 3D manufacturing and packaging technology, Foveros. Read more…

Julia Update: Adoption Keeps Climbing; Is It a Python Challenger?

January 13, 2021

The rapid adoption of Julia, the open source, high level programing language with roots at MIT, shows no sign of slowing according to data from Julialang.org. I Read more…

AMD Chipmaker TSMC to Use AMD Chips for Chipmaking

May 8, 2021

TSMC has tapped AMD to support its major manufacturing and R&D workloads. AMD will provide its Epyc Rome 7702P CPUs – with 64 cores operating at a base cl Read more…

Intel Launches 10nm ‘Ice Lake’ Datacenter CPU with Up to 40 Cores

April 6, 2021

The wait is over. Today Intel officially launched its 10nm datacenter CPU, the third-generation Intel Xeon Scalable processor, codenamed Ice Lake. With up to 40 Read more…

CERN Is Betting Big on Exascale

April 1, 2021

The European Organization for Nuclear Research (CERN) involves 23 countries, 15,000 researchers, billions of dollars a year, and the biggest machine in the worl Read more…

HPE Launches Storage Line Loaded with IBM’s Spectrum Scale File System

April 6, 2021

HPE today launched a new family of storage solutions bundled with IBM’s Spectrum Scale Erasure Code Edition parallel file system (description below) and featu Read more…

10nm, 7nm, 5nm…. Should the Chip Nanometer Metric Be Replaced?

June 1, 2020

The biggest cool factor in server chips is the nanometer. AMD beating Intel to a CPU built on a 7nm process node* – with 5nm and 3nm on the way – has been i Read more…

Saudi Aramco Unveils Dammam 7, Its New Top Ten Supercomputer

January 21, 2021

By revenue, oil and gas giant Saudi Aramco is one of the largest companies in the world, and it has historically employed commensurate amounts of supercomputing Read more…

Quantum Computer Start-up IonQ Plans IPO via SPAC

March 8, 2021

IonQ, a Maryland-based quantum computing start-up working with ion trap technology, plans to go public via a Special Purpose Acquisition Company (SPAC) merger a Read more…

Leading Solution Providers

Contributors

Can Deep Learning Replace Numerical Weather Prediction?

March 3, 2021

Numerical weather prediction (NWP) is a mainstay of supercomputing. Some of the first applications of the first supercomputers dealt with climate modeling, and Read more…

AMD Launches Epyc ‘Milan’ with 19 SKUs for HPC, Enterprise and Hyperscale

March 15, 2021

At a virtual launch event held today (Monday), AMD revealed its third-generation Epyc “Milan” CPU lineup: a set of 19 SKUs -- including the flagship 64-core, 280-watt 7763 part --  aimed at HPC, enterprise and cloud workloads. Notably, the third-gen Epyc Milan chips achieve 19 percent... Read more…

Livermore’s El Capitan Supercomputer to Debut HPE ‘Rabbit’ Near Node Local Storage

February 18, 2021

A near node local storage innovation called Rabbit factored heavily into Lawrence Livermore National Laboratory’s decision to select Cray’s proposal for its CORAL-2 machine, the lab’s first exascale-class supercomputer, El Capitan. Details of this new storage technology were revealed... Read more…

African Supercomputing Center Inaugurates ‘Toubkal,’ Most Powerful Supercomputer on the Continent

February 25, 2021

Historically, Africa hasn’t exactly been synonymous with supercomputing. There are only a handful of supercomputers on the continent, with few ranking on the Read more…

GTC21: Nvidia Launches cuQuantum; Dips a Toe in Quantum Computing

April 13, 2021

Yesterday Nvidia officially dipped a toe into quantum computing with the launch of cuQuantum SDK, a development platform for simulating quantum circuits on GPU-accelerated systems. As Nvidia CEO Jensen Huang emphasized in his keynote, Nvidia doesn’t plan to build... Read more…

New Deep Learning Algorithm Solves Rubik’s Cube

July 25, 2018

Solving (and attempting to solve) Rubik’s Cube has delighted millions of puzzle lovers since 1974 when the cube was invented by Hungarian sculptor and archite Read more…

The History of Supercomputing vs. COVID-19

March 9, 2021

The COVID-19 pandemic poses a greater challenge to the high-performance computing community than any before. HPCwire's coverage of the supercomputing response t Read more…

HPE Names Justin Hotard New HPC Chief as Pete Ungaro Departs

March 2, 2021

HPE CEO Antonio Neri announced today (March 2, 2021) the appointment of Justin Hotard as general manager of HPC, mission critical solutions and labs, effective Read more…

  • arrow
  • Click Here for More Headlines
  • arrow
HPCwire