I have extended the implementation mentioned at http://code.msdn.microsoft.com/Samples-for-Parallel-b4b76364 to use the strategy design pattern. This uses a concurrent queue to implement an object pool. Object pools improve application performance in situations where you require multiple instances of a class and the class is expensive to create or destroy. When a client program requests a new object, the object pool first attempts to provide one that has already been created and returned to the pool. If none is available, only then is a new object created. The concurrent bag inherits from the IProducerConsumerCollection which defines methods to manipulate thread-safe collections intended for producer/consumer usage. The current implementation uses .NET Framework 4 support for parallel programming using System.Threading.Tasks.Parallel class, which includes parallel versions of For and ForEach loops. The attached implementation caters for all the 3 primary needs for the client: 1.	To improve the visual appearance of the simulation, for demonstration purposes. -> Uses an extended class FastBitmap to display the game in the picture box in a windows forms application. 2.	To be able to significantly increase the scale of the simulation in both of its dimensions. They are looking for advice on how to scale out the solution to achieve this, and what hardware or software they would likely need to cope with these demands. -> Uses .NET Framework 4 support for parallel programming using System.Threading.Tasks.Parallel class, which includes parallel versions of For.  The implementation uses the for loop which is run from a single thread. If IsParallel is checked on the form, we use the Parallel class which uses multiple threads.  The Parallel.For method is defined as Parallel.For Method (Int32, Int32, Action(Of Int32)). Here the first param is the start index (inclusive), the second param is the end index (exclusive) and the third param is the Action<int> delegate that is invoked once per iteration. This delegate is used to set the colour using the fastbitmap object. 3.	To be able to analyse different models by adapting and expanding the implemented rulesets themselves. The research establishment staff however have no coding skill, so will not be able to modify code directly. -> The establishment can extend analyse the different models by selected the required ruleset from the dropdown. The implementation can be extended further to add on more strategies.