For now we can use this place to post links to articles about concurrency in game design. Hopefully in the future some of those articles will actually be from this wiki.
Concurrent programming in game design, is going to become more and more relevant in the near future considering CPU makers are increasing the number of cores on their CPU’s (currently 2 but soon 4, 8, 32 who knows!!), so programmers need to start thinking multithreaded if they want to be able to harness the power of the next-gen systems (3 cores for the XBOX 360 and 7 cores for the PS3 , and the graphics card GPU’s already contain many parallel pixel and vertex processing pipelines).
To harness the multiple CPU cores new architecture has to be developed, which basically means that game engines need to evaluate what in the game simulation can be scalably parallelized (scalability is essential because it’s easy to break game simulation into 2 or 3 synchronized tasks but if it doesn’t scale to 32 processors then it’s very limited).
-
-
-
Javolution's ConcurrentContext - The
Javolution high performance real-time library provides a ConcurrentContext which allows a programmer to develop parallel algorithms that fully utilize a multicore, multiprocessor system (with speedup
benchmarks of up to 1.85x on a dual-core system, for highly parallelized algorithms).
-
-
-
-
-
-
-
Software Transactional Memory - The idea is very similiar to atomic transactions in the database world, STM optimistically assumes that any concurrent transaction that is made on shared memory is going to be done without another thread trying to access that shared memory. The key idea is that it makes the concurrent code developer not have to write explicit synchronization to perform actions, but once that threads transaction is submitted then the application will validate that no other thread has accessed that shared memory, and then commit it. If it fails then the transaction is retried, in real practice this transaction retry mechanism has proven more efficient because actual conflicts are rare, rather than having threads explicitly acquire locks per transaction. In the end STM provides a way of creating a highly concurrent application (it will scale to N processors/cores).
-
-
-
-
-
-