This blog has seen a sharp increase in visitor activity since I began writing my Nightmare on Core Street series. That a high proportion of the visits came from organisations like Intel, AMD, Microsoft, Texas Instruments, Freescale Semiconductor, Mentor Graphics and even UC Berkeley did not escape my notice. Do I expect anything to come out of it? Not at all. I perfectly understand the reluctance of anybody in this business to acknowledge outside contributions. After all, if you are being paid handsomely to work on a solution to a pressing problem, why should you tell your employers that someone else might have already found the solution? The answer is obvious: you shouldn’t, because if you did, you would be putting yourself out of a job. The logical (if not cowardly) thing to do is to keep quiet about it in the hope that your employers will not notice.
All About the Money
I have understood the solution to the parallel programming problem for over twenty years. During all those years, I have tried to explain it to anybody in the business who would listen but nobody would. And why should they? Everybody was making lots of money and there was no economic reason to rock the boat, so to speak. Besides, I am just a self-taught programmer, a nobody. But, as they say in the American south, I knew all along that, sooner or later, the chickens would come home to roost. Yes, the chickens will soon come home to roost because they sense something bad approaching, something nasty and mean and dangerous. It is all about the money, you see. If the computer industry does not figure out a way to solve its parallel programming crisis real soon, some very rich and not so very rich folks are going to lose a lot of money, real fast. They can’t let that happen.
The Impotent Wizards Of Multicore
What do rich folks do when they have a nasty problem that threatens to take away their source of income? Well, they do what they’ve always done in the past; they get their hands on all the known experts and wizards in the field, throw money at them and tell them to come up with a solution. However, this time around, the wizards are powerless. In fact, they are the cause of the problem. They are the ones who created the problem in the first place. As a case in point, let us consider Dan Reed, the recently hired Director of Microsoft Research’s scalable and multicore computing. Here is what Reed had to say about the parallel programming problem (source: embedded.com):
Twenty-plus years ago, the research space in parallel computing was looking toward the end of Moore's Law, and so there were bases that were built there to exploit parallelization […] The challenge has been that long-term research had been required to support this. There is no silver bullet there. Some of it is going to be incremental advances; some is going to be new languages.Any time an expert says things like "there is no silver bullet" or "incremental advances" or "long-term research", you can be absolutely certain that it is a veiled admission of failure, cluelessness and impotence. Besides, "long-term research" implies long-term funding, which is what Reed, after all is said and done, is really concerned about. I have made this point before. Twenty years is a long time in this business. The wizards have been trying for over twenty years to make multithreaded programming easy and they have failed. And they have failed miserably. One would think that, by now, it should have occurred to at least one of them that, maybe, just maybe, threads are not the way to go. Don’t hold your breath. In this business, if something has been good to one’s career in the past, the common wisdom is to hold on to it as much as possible whether or not it works. According to cio.com, “Reed believes that multithreading over time will become "part of the skill set of every professional software developer".” How can anybody still talk about multithreading after spending so many years researching parallel computing? It is enough to make a grown man cry.
No More Excuses
When it comes to understanding the true nature of the parallel programming problem, Daniel Reed of Microsoft Research is as clueless as they come but he is not alone. The computer science community and the industry are crawling with experts like Reed who make a comfortable living out of not finding solutions to pressing problems. They figure that, as long as the problems persist, and as long as they can convince their employers of the need for continued long-term research, their services will continue to be in demand. They are in what I have called in the past, the perpetual research project business. The bad news is that, recently, the game has changed abruptly. Now there is a lot of fear and panic in the air. Very big money is at stake and some very important people are beginning to demand actual and dramatic results. It is no longer business as usual. Another twenty years of fruitless long-term research is out of the question. What is a multicore wizard to do?
In my opinion, the experts (they know who they are) no longer have any excuses. Many of them have visited my blog and the Project COSA site in the last few days and many times over the years. They know what COSA is all about. At this stage of the game, they have only one course of action, in my opinion; either they acknowledge that the COSA software model is the answer to the parallel programming and multicore problem or they will all be fired for incompetence. It is 'shape up or ship out' time. Twenty years of failure is enough and the free ride will come to an end sooner or later. And from the looks of it, it going to be sooner rather than later. As they say, money talks and bullshit walks. In the meantime, I’ll be waiting patiently for the knock on my door. I can wait.
As always, I tell it like I see it.