One of today's main technical features, written by senior engineers at Intel, deals with the emergence of dual-core processors and the expectation that multi-core processors will eventually become the norm, this article, presenting some of the pitfalls to threading games, along with possible solutions.
As the introduction to the piece explains:
"The inherent complexity of game engines makes them more difficult to thread than other applications. Various subsystems [e.g., artificial intelligence (AI), physics, character animation, collision detection, rendering, audio, etc.] manage aspects of the game engine. As a player moves through the virtual world of the game, a video forms. However, there is no predefined sequence of events. The actions of the player are effectively random from the game's perspective. The game is a real-time, event-driven process.
This creates a problem for threading – the frame sequence is inherently sequential. In other words, each frame depends on the preceding frame. Therefore, multiple frames cannot be computed independently and in parallel to boost frame rates and improve performance. Techniques to predict more than a frame in advance would introduce latency and negatively impact the player experience.
Since it is impossible to exploit inter-frame parallelism, one must look within a frame for potential threading targets. Simultaneously computing the AI, character animation, collision detection, etc. would be ideal. However, most of today's engines were designed without considering parallel computation. As a result, dependencies exist among the subsystems that limit the effectiveness of threading."
You can now read the full Gamasutra feature on the subject
, including more information on possible pitfalls and ways to overcome them (no registration required, please feel free to link to the article from external websites).