Linked by Thom Holwerda on Fri 14th Jul 2006 21:01 UTC, submitted by DigitalDame
Thread beginning with comment 143136
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.





Member since:
2005-07-08
Most tech savvy poeple now realize that clock frequeny isn't everything. They know that performance per watt in important, and the microprocessor companies are telling them that, to these ends, having more cores is better. What they might not know about is the sorry state of task-level multithreading in the software world. And even if they do, they don't have any idea how this can be fixed in a 5-year timeframe.
It's clear that application vendors are not going to parallelize their code unless their competitors do it first, a catch 22 that results in nothing doing. Further, there are severe limits to how effectively programmers can parallelize legacy code. I conclude that if efficient threading is going to exist any time soon, it's going to have to happen through a combination of compiler/vm and CPU technologies.
The way I envision this is as follows: AMD (for example) adds zero-cycle instructions to their ISA that enable compilers to pass hints to the processor that identify chunks of code that can be parallized if there are available hardware threads. Implementing heuristics for optimal threading would be far easier to do at the compiler level than in hardware, although algorithms that make decisions based on dynamic runtime state must still be implemented in hardware (or in a hypervisor!).
Code written for virtual machine platforms could be even more effectively threaded through intelligent algorithms implemented in the virtual machine. I don't quite understand why Sun and Microsoft aren't devoting massive research dollars to developing this technology for Java and .NET, since this wouldn't require any special hardware support at all. They could put the "less than native speed" arguments to bed for good if they started beating the pants off natively compiled code on multicore processors.
Say what you want about the Gigahertz race, but back in those days, the AMD and Intel were offering complete solutions to the the performance problem. Without efficiently threaded applications, we are missing a piece of the performance puzzle that must fit in the empty space next to multicore architecture.