This is the readme file for the simulation code accompanying the paper
"Democratic population decisions result in robust policy-gradient
learning: a parametric study with GPU simulations" by Paul Richmond,
Lars Buesing, Michele Giugliano and Eleni Vasilaki, PLoS ONE
Neuroscience

To compile the code place the model directory into the CUDA SDK
 examples directory and compile using the visual studio 2008 project
 file provided. On a Linux environment it is possible to modify the
 CUDA SDKS 'template' example makefile to build the models CUDA files
 (*.cu).

The code has been written using a NVIDIA GTX480 (Fermi) GPU and as
such has been optimised and tested on this hardware using the visual
studio 2008 project and template files provided. In order to run the
simulations on older (non Fermi) hardware it may be necessary change
the THREADS_PER_BLOCK, SM_BLOCK_SIZE (model.cuh) and ind_configs
parameters (paramaters.h) to ensure the maximum number of thread
blocks does not exceed those supported by your hardware.

The following arguments can be used with the application executable:
	--profile : Profile the simulation only (i.e. no learning just analysis)
	--graph_analysis: Creates analysis graphs i.e. delta W and eligibility trace
	  (see paper). No learning takes place.
	--extended anlaysis: Same as -- graph_analysis however learning also takes 
	   place the graph analysis being performed before each learning step takes
	   place.
	--print_weight_plot: Prints the final weight values to a 3D plot after the 
	  simulation has run. Cannot be used with --graph_analysis as no learning 
	  takes place. If used with --extended_analysis then the weight plot is 
	  output after each learn step.
	--dyn_sys: only perform the simulation for the system with lateral 
	  connections
	--no_dyn_sys: only perform the simulation for the system with withou lateral
	  connections
	--device: usual CUDA device argument to specify the GPU device to use for 
	  simulation