by Will Damon. Intel Corp.
Multiprocessor machines are becoming more commonplace on the desktop with the introduction of Hyper-Threading Technology to the Intel® Pentium® 4 processor. While multithreaded programming is not new to games, the widespread adoption of multiprocessor machines means that programmers can seriously consider the threaded performance of algorithms, and software system design. This paper aims to introduce the two domains of threading methodology as they apply to game development, and address the most common pitfalls of game programming for Hyper-Threading Technology (HT) enabled systems.
Parallel models
Parallelism, the simultaneous processing of different data or tasks, is achieved through two models: data- and functional- decomposition (also known as data and task parallelism). As the names imply, these two models represent very different yet complementary methods of applying multiple threads to achieve a higher level of performance within a single process (like a game). Each parallel model has its own section below; data decomposition is covered first, followed by functional decomposition.
Data decomposition
Data decomposition means that the same independent operation is applied to different data. Compute-intensive loops, like those found in game physics simulation solvers, for example, are good candidates for data parallelization. Each game has different situations in which data parallelism applies, but just for illustration, here is a short list that is by no means exhaustive:
- Generating procedural terrain, textures, or geometry
- Physics solvers (for collision, behavior, and even sound)
- Skinning and/or animation
- Various artificial intelligence algorithms
- Path finding
- Audio processing
![]()
If you're interested in this topic, these articles may be helpful:
![]() | Persistence pays off, part 1: the server by Michael L. Perry, president and consultant, Mallard Software Design... |
![]() | The 64-bit tipping point from Intel Corp. For more than a decade, 64-bit architectures have ... |
![]() | PJO: persistent data objects 1.1 - complex objects and PJO by Tony Walker, Datamorphics Ltd. Object orientation and persistenc... |
![]() | Threading basics for games by Jeff Andrews, application engineer, Intel Corp. Take advantage o... |
![]() | Online: HT Technology on the Desktop This course describes Intel® Hyper-Threading Technology and introd... |
![]()
Related Jobs:

