Multi-Core Software

It’s a known fact that CPU cores are not going to see high increases in their singular power. The alternative chip-makers have come up with is multi-core – the poor man’s SMP. It seems like future CPUs will be trying to maintain Moore’s law using more cores rather than more singular power.

Does this change the game? does it pose an opportunity?

It certainly forces hard-core programmers to focus on parallel-ability. Most programmers don’t deal with stuff that needs to be optimized (writing on_click handlers for buttons anybody?) but the core that writes our OSs‘, implements STL for us, writes graphic drivers, and the algorithmic type will have to keep up on their multi-threading skills.

The more popular programming languages have done a good job of not introducing multi-threaded concepts into their language structure. I say good because it has been generally unnecessary until now. What happens though if our PCs are suddenly all multi-core by definition? Do we expose this in high-level languages such as C#?

I wonder if we can reuse ideas from the distributed computing move of the past 10 years. I remember how in ’98 I was thinking about the potential growth of distributed computing and how this growing field lacked tools to write parallel-able code…

3 thoughts on “Multi-Core Software

  1. “The more popular programming languages have done a good job of not introducing multi-threaded concepts into their language structure. I say good because it has been generally unnecessary until now”

    What?

    Where have you been in the last 10 years?

  2. into their programming languanges.
    most languages have multi-threaded libraries that implement e.g. POSIX threads.

    think about programming languages introducing constructs to support multi-threading, SMP, etc. that’s much bigger. i think only java has something similar and barely used.