下载 (英语 PDF, 75KB)
The gaming industry has seen great strides in game complexity recently. Game developers are challenged to create increasingly compelling games. This series explores important Artificial Intelligence (AI) concepts and how to optimize them for multi-core.
Designing AI for Games. Intelligent agents need to identify points of interest in the game world. This article shows how to identify and optimize points of interest and provides ways of organizing them for multi-threading.
When confronted with nested loops, the granularity of the computations that are assigned to threads will directly affect performance. Loop transformations such as splitting and merging nested loops can make parallelization easier and more productive.
This topic introduces the concept of critical section size, defined as the length of time a thread spends inside a critical section, and its effect on performance.
Application programmers sometimes write hand-coded synchronization routines rather than using constructs provided by a threading API in order to reduce synchronization overhead or provide different functionality than existing constructs offer.
Currently, there are a number of synchronization mechanisms available, and it is left to the application developer to choose an appropriate one to minimize overall synchronization overhead.
Non-blocking system calls allow the competing thread to return on an unsuccessful attempt to the lock, and allow useful work to be done, thereby avoiding wasteful utilization of execution resources at the same time.
避免线程之间发生堆冲突 (PDF 256KB)