By: Charles (rwt.delete@this.icemx.net), July 3, 2008 1:54 am
Room: Moderated Discussions
Following the progression of processors it is clear that we will soon have 16 .. 64 .. 256 .. 1024-core processors.
So far so good.
The question is, how long can we [software developers] pretend that we have SMP?
We've already got Opterons that are NUMA, although their SMP 'simulation' is fast enough that the NUMA aspects can be ignored most of the time. And we've already got Cell...
How long can we assume that there is no performance impact when sharing immutable data across threads [because cache coherency protocol allows shared data as long as it isn't modified]?
How long until we have to switch to a more functional style of programming to prevent shared mutable data [because it will become really expensive]?
How long until we are forced to switch to explicit message passing like in Erlang for inter-thread communication?
Or is there any other viable alternative?
Regards, Charles
So far so good.
The question is, how long can we [software developers] pretend that we have SMP?
We've already got Opterons that are NUMA, although their SMP 'simulation' is fast enough that the NUMA aspects can be ignored most of the time. And we've already got Cell...
How long can we assume that there is no performance impact when sharing immutable data across threads [because cache coherency protocol allows shared data as long as it isn't modified]?
How long until we have to switch to a more functional style of programming to prevent shared mutable data [because it will become really expensive]?
How long until we are forced to switch to explicit message passing like in Erlang for inter-thread communication?
Or is there any other viable alternative?
Regards, Charles