Multi-threading isn't the issue. As you said, it's been implemented for years and it's no big deal to move an application from one core to the other to balance loads. The trick to effectively use multi-cores is in parallel processing.
Let's say you have an application that requires the processor to help create some virtual 3D landscape. One would think you could split up the creation of the polygons required to build the visual scene but you have to remember that those polys are all related to one another. One might shadow another. One might have to be displayed behind another or, because of the viewpoint, wouldn't even need to be displayed at all. One might have transparency and the polys behind it would be altered by diffusion. So, if those polys are created in separate cores, those processes still need to know what's going on in the other.
Now of course the example I used is greatly simplified by the use of graphics processors which figure out much of what I detailed but it's an easy to imagine analogy.
In a nutshell, multi-core processing is simple if the tasks you split up are unrelated and not dependent upon one another. Once a dependency or timing is established, you find the extra cores sitting idle until the other process is ready for the results.
Art
Geek Speak » in reply to How does the software have to catch up?
Multi-core limitations
The whole thread (40 posts)
- Advice needed: AMD or Intel?
- Update: Athlon X2 64 it is. Thanks et. (n/t)
- This is just effing ridiculous...
- but seriously....
- If you'd asked me a few months ago...
- BUy AMD AM2 socket with cheap single core (Athlon 64) processor now.
