The Multicore Association is an industry-sponsored group that aims to provide standard approaches to multicore programming. Although I am an avid proponent of standardization, it pains me to see an industry association actively promoting parallel computing standards and practices that are designed to favor only one group, multicore processor and programming tool makers. In other words, the Multicore Association does not have the interest of customers in mind but that of their members, i.e., the vendors. On the association’s site, we read the following:
In no way, of course, does the effort to establish standard APIs intend to limit innovation in multicore architectures. APIs that reflect the intrinsic concurrency of an application are in no sense a restriction on the creativity and differentiation of any given embodiment.This is pure BS, of course, because as soon as a given set of parallel programming standards are accepted and established, the industry becomes pretty much locked into one type of multicore architecture or another. As an example, take a look at their Multicore Programming Practices Group. Their goal is to see how the C and C++ programming languages can best be used to create code that are multicore ready. How can anybody maintain that the use of last century’s programming languages does not limit innovation in multicore architectures? Who are they kidding? That is precisely what it does. It encourages vendors to continue to make and sell multicore processors that use the thread-based model of concurrency. How else are you going to use C or C++ to implement concurrency in a multicore processor without threads or something similar? There is no escaping the fact that the Multicore Association is really a society created for the benefit of thread monkeys. Why? Because the current crop of multicore chips being put out by the likes of Intel, AMD, IBM and the others are worthless without threads. These folks are desperate to find a way to future-proof their multicore technology and they figure that the Multicore Association can help. Now, if you object to being called a thread monkey, that is too bad. I really don’t want to hear about it.
What the Market Wants
You know, this is getting really tiresome. How many times must it be repeated to the industry that the only thing worse than multithreading is single threading? Is the Multicore Association what the computer industry really needs? I don’t think so. It may be what Intel or AMD or Freescale needs but this is not what the customers need. And by customers, I mean the multicore processor market, the people who buy and program multicore computers. The market wants super fast, fine-grain, self-balancing, parallel computers that are easy to program. People want to create parallel programs that scale automatically when more cores are added. They want a programming environment that is better than last century’s technology. They don't even want to think about cores other than as a technology that they can buy to increase performance. Does Intel, or AMD, or Freescale, or IBM or any of the other multicore vendors sell anything that even comes close to delivering what the market wants? I don’t think so. The only board member listed on the Multicore Association's site that can claim to be truly innovative is Plurality Ltd of Israel. Even so, Plurality’s programming model sucks (see my article on Plurality’s Hypercore Architecture) because its task-oriented model is just multithreading in disguise.
We Ain’t Buying this Crap
What is needed is an association that has the interests of multicore customers in mind. Multicore customers must make themselves heard and the only way to do this is with their pocket books. IT directors and IT sponsors should refuse to buy the current crop of multicore processors for the simple reason that they suck. Am I calling for a boycott? You bet I am. The market should refuse to buy into the mediocrity that is the multithreading programming model. And the only way the market is going to get what it wants and change the course of computing in its favor is when those beautiful multicore chips begin to pile up at the fab, all dressed up with nowhere to go. The vendors may have their evangelists, their trade organizations and their snake oil salesmen. The market has something better, which is the power to say, “We ain’t buying this crap!” That would be a message heard loud and clear.
My Message to Marcus
My message to Marcus Levy is the following. I am not one to foment trouble just for the hell of it. It is just my nature to tell it like I see it. My main interest in multicore technology is that of a consumer and developer. My position is that it is not in the interest of the multicore industry to be the purveyors of mediocrity. In the end, this kind of attitude will come back to haunt you and the members of your association. But it does not have to be that way. The whole thing can be a win-win situation if the leaders of the multicore industry are willing to listen to wisdom and realize their folly. Their approach to parallel programming is crap. I know it, you know it, and they know it. They know it because, no matter how much time and money they spend on trying to make it all work, it is still a royal pain in the ass. They know it because their researchers have visited my blog countless times since I wrote my “Nightmare on Core Street” series. Now I perfectly understand the not-invented-here syndrome but that is no excuse.
As the head of an influential and rapidly growing organization, you have two options, in my opinion. You can choose to take the cowardly route and play along with the mediocrity bunch or you can step up to the plate like a hero and let the industry know in no uncertain terms that it is full of shit. Zero or hero, take your pick. But then again, it may not matter in the grand scheme of things. If the current players refuse to change their ways and do the right thing, some unknown entity may just sneak behind them and steal the pot of gold.