Cloud computing and multicore chips have a similar problem: There just aren't enough programmers out there who know how to do parallel programming.
Frankly, it's a bit of a chicken-and-egg problem. Why use multicore chips or move to parallel computing when you don't have anyone who can design the applications to take advantage of their strengths? And if the technologies aren't used, why bother learning parallel programming?
That's exactly why it's good news that IBM and Google are teaming up to promote parallel programming at six U.S. universities.
According to this InfoWorld article, parallel programming requires you to examine tasks and break them into hundreds to thousands of smaller pieces, which then will run on various servers at the same time. Michael Suess, a researcher associate at the University of Kassel who writes the blog Thinking Parallel, said it best in a recent blog post on the topic:
The very first step in every successful parallelization effort is always the same: you take a look at the problem that needs to be solved and start splitting it into tasks that can be computed in parallel. This sounds easy, but I can see from my students reactions that at least for some of them it is not.
I'll have to take his word on it, and - from what I've read about the shortage of parallel programmers - so will you.
Currently, there's not a lot of demand for cloud computing - or multicore chips, for that matter. But there will be, particularly online, where experts say parallel computing could help speed up interactive Web 2.0 applications. It's also expected to be huge in mobile computing.
So, you can sort of see why Google and IBM would be interested in promoting parallel programming. And why, according to the BBC report, they've invested more than $30 million in the project, which involves building data centers capable of holding 1,600 computers.
So far, Carnegie Mellon, MIT, Stanford University, the University of California at Berkeley, the University of Maryland and the University of Washington have signed on for the project.