You will be parallelizing/optimizing Conway’s “Game of Life” (GoL), a famous, simple algorithm for computing artificial life (cellular automata), that through very simple rules can generate very complex and interesting behavior. You can read more about the history and details of GoL here: http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life You can also play with a GoL emulator here: http://www.bitstorm.org/gameoflife/ GoL should build by simply typing make. Input and output files are in a simple image format called .pbm. The executable initboard can create an arbitrary-sized input file by running: initboard > The executable gol is run as follows: gol for example: /usr/bin/time -f "%e real" ./gol 10000 inputs/1k.pbm outputs/1k.pbm executes and times your program in seconds. If you want to visualize an input or output file, you can convert it to a jpg for viewing in a browser with the command: convert filename.pbm filename.jpg Visualizing can potentially help you think of opportunities for optimization. Given some input file and some number of iterations, your program must produce the identical output file as the original unmodified GoL program.