Catherine Crawford asks: "Where's The Software To Catch Up To Multicore Computing?". Indeed, parallel hardware requires new software concepts.

Today I read about PLINQ, Parallel LINQ on Joe Duffy's weblog. He also links to a new book on Transactional Memory.

As I have posted here before, I believe in parallel concepts that avoid using exclusive locks.
atomic {
  // do something in parallel
  // restart, if prerequisites changed by other thread
}

Rodrigo has had a very nice idea. Even before Software Transactional Memory becomes mainstream, we could take the concept to the database. Any database transaction could work this way.

Parallel hardware could completely change the way we write software. We will need smart people and new ideas. This research paper gives a nice introduction to the wide range of problems we will be facing and summarizes current research.