Geek Speak — HabitableZone

Geek Speak » in reply to How does the software have to catch up?

Multi-core limitations

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

Log in or register to post.

The whole thread (40 posts)