• Pages

  • Recent Posts

  • Recent Comments

  • Archives

  • Mon 6 Nov 2006

    Valve goes multicore

    Published at 17:44   Category Game development  

    An interesting article at Gamasutra about how the makers of Half-Life 2 are using multicore systems to improve their Source engine :

    “The first was called “coarse threading” (…). The idea is to put whole subsystems on separate cores. (…) The problem with this approach is that some subsystems are less demanding on CPU time than others.”
    (…)
    “The second approach was fine-grained threading, which separates tasks into many discrete elements and then distributes them among as many cores as are available. For example, a loop that updates the position of 1,000 objects based on their velocity can be divided among, say, four cores, with each core handling 250 objects apiece. The drawback with this approach is that not all tasks divide neatly into discrete components that can operate independently.”
    (…)
    “The approach that Valve finally chose was a combination of the coarse and fine-grained, with some extra enhancements thrown in. Some systems were split on multiple cores using coarse threading. Other tasks, such as VVIS (the calculations of what objects are visible to the player from their point of view) were split up using fine-grained threading. Lastly, whenever part of a core is idle, work that can be precalculated without lagging or adversely affecting the game experience (such as AI calculations or pathfinding) was queued up to be delivered to the game engine later.”

    No Comments »

    No comments yet.

    RSS feed for comments on this post. TrackBack URI

    Leave a comment

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>