John Hennessy (of Stanford University) and David Patterson (of the University of Berkeley), authors of the extremely well known Computer Architecture: A Quantitative Approach book talk about the challenges of Parallel Processing in an excellent interview in this month’s ACM Queue magazine.
Quoting David Patterson,
“I think today this shift toward parallelism is being forced not by somebody with a great idea, but because we don’t know how to build hardware the conventional way anymore.
This parallelism challenge involves a much broader community, and we have to get into applications and language design, and maybe even numerical analysis, not just compilers and operating systems. God knows who should be sitting around the table — but it’s a big table.
[Computer] Architects can’t do it by themselves, but I also think you can’t do it without the [computer] architects.”
Answering a question about the possibility of having one de-facto solution for developing parallel software, John Hennessy says:
“The fundamental problem is that we don’t have a really great solution.
[...] [H]ow we’re going to change our programming languages; what we can do in the architecture to mitigate the cost of various things, communication in particular, but synchronization as well.
Those are all open questions in my mind. We’re really in the early stages of how we think about this. If it’s the case that the amount of parallelism that programmers will have to deal with in the future will not be just two or four processors but tens or hundreds and thousands for some applications, then that’s a very different world than where we are today.”
to which David Patterson adds:
“On the other hand, there’s exciting stuff happening in software right now. In the open source movement, there are highly productive programming environments that are getting invented at pretty high levels. Everybody’s example is Ruby on Rails, a pretty different way to learn how to program. This is a brave new world where you can rapidly create an Internet service that is dealing with lots of users.
There is evidence of tremendous advancement in part of the programming community — not particularly the academic part. I don’t know if academics are paying attention to this kind of work or not in the language community, but there’s hope of very different ways of doing things than we’ve done in the past.”
and he concludes:
“I guess that’s the right question: What can we do to engage the open source community to get innovative people, such as the authors of Ruby on Rails and other innovative programming environments? The parallel solutions may not come from academia or from research labs as they did in the past.”
This is a fantastic appreciation of Ruby‘s and Ruby on Rails’ potential, isn’t it?
(Article quotes and image courtesy of ACM)