Notice: Undefined index: bBcomment in /project/eecs/parlab/www/view/blog/index.php on line 5 Multithreading and Games - View

Multithreading and Games

Posted by Bryan Catanzaro on November 7, 2006

Anandtech put up an interesting article today covering "Hardware Day" at Valve Software, makers of some popular games like Half-Life & Counter Strike.
Evidently the event was all about taking advantage of parallel CPUs for gaming.
There were several interesting points:
  • Multicore CPUs are bringing an end to the pretty but dumb era of computer games. From Valve's perspective, games recently have been very GPU driven, and have sported beautiful graphic effects, but the underlying worlds have been rather braindead.
  • From Valve's perspective, games should be able to use every CPU cycle, even on very parallel CPUs. There is always more reality that can be added - increase the number and especially the intelligence of objects in the scenery. They mentioned having non-playable characters play chess with each other, which is probably a less profitable way to spend CPU cycles, but illustrates the point that the potential for smart objects in games is near limitless.
  • Valve believes the future will require what they term "hybrid" threading - meaning both Coarse and Fine grained threading. They have looked at OpenMP for some fine grained threading, and they are structuring their applications to take advantage of coarse grained threading by putting different pieces of the application on different cores.
  • They feel the OS and compiler threading like OpenMP gets in the way for various reasons, so they are implementing their own, domain-specific "Game Threading Infrastructure" which will allow game developers to use n-way parallelism without making them muck about in low level details.

I found it interesting that from Valve's perspective, parallel CPUs (not GPUs) are going to drive the future of gaming. Also, their choice to produce their own gaming specific infrastructure for parallel programming is another confirmation of the value of domain specific programming environments for parallel programming.


RSS feed for comments on this post.

Leave a Comment

Sorry, Comments have been disabled for this post