We have just had a new paper accepted for the journal Neuroinformatics, entitled "Code generation: a strategy for neural network simulators". You can download a provisional PDF here. Abstract included below:
We demonstrate a technique for the design of neural network simulation software, runtime code generation. This technique can be used to give the user complete flexibility in specifying the mathematical model for their simulation in a high level way, along with the speed of code written in a low level language such as C++. It can also be used to write code only once but target different hardware platforms, including inexpensive high performance graphics processing units (GPUs). Code generation can be naturally combined with computer algebra systems to provide further simplification and optimisation of the generated code. The technique is quite general and could be applied to any simulation package. We demonstrate it with the "Brian" simulator (http://www.briansimulator.org).The code generation features are already available in the current version of Brian, although undocumented as yet (see the Preferences section of the documentation for information on how to activate code generation).