Is multi-core programming still hot?

This is an idea that has been bugging me for a while: just how critical and hot multi-core programming is? Or, better phrased: is it relevant for the programmer at large or is it just a niche issue for some domains?

What triggered me to write this post is a recent business development workshop I attended in Gothenburg, organized as part of the HiPEAC Computing Systems Week. The goal was to draw up the business canvas for research ideas in order to facilitate moving them into mainstream – and this is where I saw the question emerge again: given a technology that helps you parallelize your software, who will really be interested in buying it?

It has been argued for a while that end user device applications and PC software won’t really need to bother beyond a few cores: multi-tasking will make sure that cores are used efficiently. Talking with web developers and those writing software for cloud platforms, the conclusion was the same: they haven’t seen the need to bother about anything: all this is happening at so low level from their perspective that it’s irrelevant.

With all this out of the scope, what is really left?

High performance computing for sure is in dire need of good programming models for many-core chips, in light of the search for the teraflops machine. But, this is a quite niche domain, as are some other, such as OS development or gaming platforms. Honestly, I have to admit: beyond these, I haven’t seen much interest or buzz about multi-core programming, a bit as if the whole hype would have vanished and settled into a stable state. To be honest, it’s as it should be: given the level of sophistication and performance reached for single cores, any but the most demanding applications will find that just one core – or maybe a few, using functional partitioning – will just be enough.

What will this mean?

I think the research community will have to come out and make it clear that the whole area shall be specialized, instead of shooting for a holistic solution that no-one will need. Yes, we will have to fix the needs of specific domains – high performance computing, gaming, perhaps telecoms – but beyond that further efforts will have little practical applicability. Other domains: power efficient computing and extreme, cloud based scalability will be the ones that will matter and it’s where research efforts shall be focused.

With this, I think it’s time for me to leave multi-core programming behind – on this blog and in professional life and focus on those things that can make a broader difference.

One Response to “Is multi-core programming still hot?”

  1. Hi Andras, I totally agree with you. When I started to focus on Multicore Programming, everyone said every programmer need to know it. However, currently, multicore programming is still not in the mainstream. Think out of the box is very important in this case, since the thing that you believe is important may in fact be irrelevant (yes, if you have worked on Computer Architecture for a long time, then Multicore is definitely a big thing). To really build a success business on new technology, we really need to think about what are really needed by the customers.