Tim O’Reilly posted pieces of a conversation about the wall that we have almost hit with processor speed. I just wanted to add that not only do most applications not take advantage of multi-core processors, the complexity of writing multi-threaded applications will mean that most applications will never see the advantages of multi-core processors. What is need are tools that enable the underlying operations to be parallelized without the programmer having to immerse himself in those details. There are already examples of this, web applications for instance. A webserver handles this problem beautifully. The programmer creates the site and it easily services multiple users and many can scale to the millions of users. Of course you get into other problems but that is not the point. Finally I want to point out that many problems will never be able to take advantage of multi-core processors since they are not operations that are easily broken into multiple paths of execution.