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!

Geospatial Data Research Leverages GPUs

August 17, 2017

MapD Technologies, the GPU-accelerated database specialist, said it is working with university researchers on leveraging graphics processors to advance geospatial analytics. The San Francisco-based company is collabor Read more…

By George Leopold

Intel, NERSC and University Partners Launch New Big Data Center

August 17, 2017

A collaboration between the Department of Energy’s National Energy Research Scientific Computing Center (NERSC), Intel and five Intel Parallel Computing Centers (IPCCs) has resulted in a new Big Data Center (BDC) that Read more…

By Linda Barney

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 week the cloud giant released deeplearn.js as part of that in Read more…

By John Russell

HPE Extreme Performance Solutions

Leveraging Deep Learning for Fraud Detection

Advancements in computing technologies and the expanding use of e-commerce platforms have dramatically increased the risk of fraud for financial services companies and their customers. Read more…

Spoiler Alert: Glimpse Next Week’s Solar Eclipse Via Simulation from TACC, SDSC, and NASA

August 17, 2017

Can’t wait to see next week’s solar eclipse? You can at least catch glimpses of what scientists expect it will look like. A team from Predictive Science Inc. (PSI), based in San Diego, working with Stampede2 at the Read more…

By John Russell

Microsoft Bolsters Azure With Cloud HPC Deal

August 15, 2017

Microsoft has acquired cloud computing software vendor Cycle Computing in a move designed to bring orchestration tools along with high-end computing access capabilities to the cloud. Terms of the acquisition were not disclosed. Read more…

By George Leopold

HPE Ships Supercomputer to Space Station, Final Destination Mars

August 14, 2017

With a manned mission to Mars on the horizon, the demand for space-based supercomputing is at hand. Today HPE and NASA sent the first off-the-shelf HPC system i Read more…

By Tiffany Trader

AMD EPYC Video Takes Aim at Intel’s Broadwell

August 14, 2017

Let the benchmarking begin. Last week, AMD posted a YouTube video in which one of its EPYC-based systems outperformed a ‘comparable’ Intel Broadwell-based s Read more…

By John Russell

Deep Learning Thrives in Cancer Moonshot

August 8, 2017

The U.S. War on Cancer, certainly a worthy cause, is a collection of programs stretching back more than 40 years and abiding under many banners. The latest is t Read more…

By John Russell

IBM Raises the Bar for Distributed Deep Learning

August 8, 2017

IBM is announcing today an enhancement to its PowerAI software platform aimed at facilitating the practical scaling of AI models on today’s fastest GPUs. Scal Read more…

By Tiffany Trader

IBM Storage Breakthrough Paves Way for 330TB Tape Cartridges

August 3, 2017

IBM announced yesterday a new record for magnetic tape storage that it says will keep tape storage density on a Moore's law-like path far into the next decade. Read more…

By Tiffany Trader

AMD Stuffs a Petaflops of Machine Intelligence into 20-Node Rack

August 1, 2017

With its Radeon “Vega” Instinct datacenter GPUs and EPYC “Naples” server chips entering the market this summer, AMD has positioned itself for a two-head Read more…

By Tiffany Trader

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

Nvidia’s Mammoth Volta GPU Aims High for AI, HPC

May 10, 2017

At Nvidia's GPU Technology Conference (GTC17) in San Jose, Calif., this morning, CEO Jensen Huang announced the company's much-anticipated Volta architecture a Read more…

By Tiffany Trader

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

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

Quantum Bits: D-Wave and VW; Google Quantum Lab; IBM Expands Access

March 21, 2017

For a technology that’s usually characterized as far off and in a distant galaxy, quantum computing has been steadily picking up steam. Just how close real-wo 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

Russian Researchers Claim First Quantum-Safe Blockchain

May 25, 2017

The Russian Quantum Center today announced it has overcome the threat of quantum cryptography by creating the first quantum-safe blockchain, securing cryptocurrencies like Bitcoin, along with classified government communications and other sensitive digital transfers. Read more…

By Doug Black

HPC Compiler Company PathScale Seeks Life Raft

March 23, 2017

HPCwire has learned that HPC compiler company PathScale has fallen on difficult times and is asking the community for help or actively seeking a buyer for its a Read more…

By Tiffany Trader

Trump Budget Targets NIH, DOE, and EPA; No Mention of NSF

March 16, 2017

President Trump’s proposed U.S. fiscal 2018 budget issued today sharply cuts science spending while bolstering military spending as he promised during the cam Read more…

By John Russell

Leading Solution Providers

Groq This: New AI Chips to Give GPUs a Run for Deep Learning Money

April 24, 2017

CPUs and GPUs, move over. Thanks to recent revelations surrounding Google’s new Tensor Processing Unit (TPU), the computing world appears to be on the cusp of Read more…

By Alex Woodie

CPU-based Visualization Positions for Exascale Supercomputing

March 16, 2017

In this contributed perspective piece, Intel’s Jim Jeffers makes the case that CPU-based visualization is now widely adopted and as such is no longer a contrarian view, but is rather an exascale requirement. Read more…

By Jim Jeffers, Principal Engineer and Engineering Leader, Intel

Google Debuts TPU v2 and will Add to Google Cloud

May 25, 2017

Not long after stirring attention in the deep learning/AI community by revealing the details of its Tensor Processing Unit (TPU), Google last week announced the Read more…

By John Russell

MIT Mathematician Spins Up 220,000-Core Google Compute Cluster

April 21, 2017

On Thursday, Google announced that MIT math professor and computational number theorist Andrew V. Sutherland had set a record for the largest Google Compute Engine (GCE) job. Sutherland ran the massive mathematics workload on 220,000 GCE cores using preemptible virtual machine instances. Read more…

By Tiffany Trader

Six Exascale PathForward Vendors Selected; DoE Providing $258M

June 15, 2017

The much-anticipated PathForward awards for hardware R&D in support of the Exascale Computing Project were announced today with six vendors selected – AMD Read more…

By John Russell

Top500 Results: Latest List Trends and What’s in Store

June 19, 2017

Greetings from Frankfurt and the 2017 International Supercomputing Conference where the latest Top500 list has just been revealed. Although there were no major Read more…

By Tiffany Trader

IBM Clears Path to 5nm with Silicon Nanosheets

June 5, 2017

Two years since announcing the industry’s first 7nm node test chip, IBM and its research alliance partners GlobalFoundries and Samsung have developed a proces Read more…

By Tiffany Trader

Messina Update: The US Path to Exascale in 16 Slides

April 26, 2017

Paul Messina, director of the U.S. Exascale Computing Project, provided a wide-ranging review of ECP’s evolving plans last week at the HPC User Forum. Read more…

By John Russell

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