For today's Gamasutra feature, Computer Systems Science student and educational game designer and programmer Ville Mönkkönen discusses his views on development of game engines for multicore platforms, including game engine parallelism on an architecture level.
Using a variety of sources, Mönkkönen breaks down the mysteries surrounding multithreaded software development, and offers models that he feels could serve as starting points for developing “specialized game engine architectures”.
As Mönkkönen explains in his introduction:
"Even though multicore processors have been available for the PC for well over a year, and the Xbox 360 has already sold millions, there is still a lack of knowledge regarding the development of game engines for multicore platforms. This article will attempt to provide a view to game engine parallelism on an architecture level.
As shown by Gabb and Lake, instead of looking at multithreading on the level of individual components, we can find better performance by looking for ways to add parallelism to the whole game loop. We will be looking at three different threading supported architecture models for the basic game loop, and comparing them with regards to qualities such as scalability, and expected performance.
There are two main ways to break down a program to concurrent parts: function parallelism, which divides the program to concurrent tasks, and data parallelism, which tries to find some set of data for which to perform the same tasks in parallel. Of the three compared models, two will be function parallel, and one data parallel."
You can now read the full Gamasutra feature on the topic
, including more insight from Mönkkönen on multithreaded development (no registration required, please feel free to link to this feature from external websites).