Talk:NEST (NEural Simulation Tool)
Please could the authors edit this page to give their responses to the issues raised, or point out where they have been addressed in revisions of the article.
- (1) "On single computers, NEST distributes the network over the available processors, each executing one part. This reduces the simulation time at least proportional to the number of processors."
Presumably supralinear speedup on an individual computer is because each processor has its own cache, but since they are sharing RAM, there must be times when the speedup is sub-linear?
Reply The reviewer points out an important thing: supralinear speed-up is not an automatic effect of using more than one prosessor. In fact most multi-threaded programs tend to scale sub-linearly, because it is quite difficult to avoid cache thrashing.
The revised paragraph sentence therefore reads:
To reduce the simulation time at least proportionally to the number of processors, NEST carefully exploits that each processor contributes its own fast cache memory.
- (2) "However, for most neuron models integration steps of h~0.1 ms are sufficient. Thus event-driven update would need one order of magnitude more updates than time-driven update; see Morrison et al. (2007) for details."
I disagree that 0.1 ms is sufficient for 'most' neuron models. This may hold true for I&F models, but not for compartmental HH models. Also, how do you define sufficient? Even in going from 0.001 to 0.0005 you will almost certainly get differences in spike times, missing spikes, etc. 0.1 may just be sufficient for no change in the statistical properties of the network, but I doubt it. One order of magnitude seems like a best-case scenario for the superiority of time-grid communication over event-driven communication. More discussion and qualification is needed here.
Reply: This paragraph has been deleted, following the reviewer's suggestion in item (6) below.
- (3) Exact Integration (Rotter and Diesmann, 1999)
I guess this is the earliest paper applying exact integration to computational neuroscience, but I presume there must be earlier references from the physics literature, in which case it would be useful to cite one.
Reply: The reviewer is right that the reference may be misleading without further specification. We have changed the text accordingly and added an online reference to the general context. In the revised version of the article the bullet item reads: For a large class of neuron models, NEST integrates the dynamic equations with machine precision, using a technique termed Exact Integration in the context of pulse coupled neuronal systems (Rotter and Diesmann, 1999). The technique exploits the idea to use the matrix exponential to integrate systems of linear time-invariant differential equations.
- (4) Exact Integration has been implemented in FPGA hardware (Guerrero-Rivera et al. 2006).
This does not seem relevant to an article on NEST.
Reply: We agree with the reviewer that the sentence in the original version of the article is misplaced. In addition, by being to narrow in scope it is not accurately expressing what we would like to say. The intention was to provide a link between methods of software simulation of neural systems and hardware emulations. The two fields of research are converging and the importance of hardware methods is reflected in the fact that the encyclopedia of Computational Neuroscience has a section title "Hardware" on its top level of organization.
In the revised version of the article the original sentence is removed and we have added a new paragraph to the end of the section on "Parallel network update and communication". The new text contains an internal link to hardware section of the encyclopedia of Computational Neuroscience. Once in analog to the subsection "VLSI Implementation of Neural Networks", a subsection "FPGA Implementation of Neural Networks" exists, the link can be made more specific.
The new paragraphs reads: Aspects of NEST's update algorithm are available (Guerrero-Rivera et al. 2006) for FPGA [http://www.scholarpedia.org/article/Hardware hardware implementations] of neural networks.
- (5) As a side effect of U(S_t), nodes create events that are delivered to their targets after a delay that depends on the connection.
Surely, creation and delivery of events is central to the functioning of NEST, hardly a side-effect.
Reply The reviewer is right that this term is misleading, however it is a terminus technicus from computer science. In the new version we have replaced "as side-effect of" by "as part of".
- (6) Although NEST uses a discrete event framework, it does not use global event-driven update (Fujimoto 2000, Brette et al. 2006). Event-driven simulation assumes that communication between nodes is rare and the update of a node is expensive. This does not hold for biological networks, however: If a typical cortical neuron receives spikes from ~104 other neurons at a rate of ~10 Hz, the average interval between spike arrivals is ~0.01 ms. However, for most neuron models integration steps of h~0.1 ms are sufficient. Thus event-driven update would need one order of magnitude more updates than time-driven update; see Morrison et al. (2007) for details.
- This is often used to argue for event-driven simulation (Brette et al. 2006), where events can occur at arbitrary times, but it is equally possible to handle spikes in continuous time in time-driven simulations (Morrison et al. 2007), and NEST does so.
The comparison between event-driven and clock-driven simulations does not seem sufficiently objective for an encyclopedia article. The conclusion changes depending on which numbers you pick, e.g. Brette et al quote 1 Hz as the average rate for cortical firing (Olshausen and Field, 2005) and consider the case where update of neurons is computationally expensive (which seems reasonable if we assume 1000-compartment HH models, for example).
Reply: The reviewer is right in that we have only described a specific example. A more thorough discussion would require a comparison of different update schemes also for the case of distributed computing.
In the revised version of the manuscript we have therefore reduced the paragraph "Although NEST uses a discrete ..." to just the first sentence, reading: Although NEST uses a discrete event framework, it does not use global event-driven update (Fujimoto 2000, Brette et al. 2006).
I suggest the authors simply point out that clock-based communication does not necessarily imply clock-based solution of differential equations (in fact, this is pointed out elsewhere in the article, but could be reiterated), and that clock-based communication does not necessarily imply that spike times are bound to time-step boundaries.
To clarify this we have changed the last paragraph of the "Accuracy" section to read:
Further integration errors occur if spikes are constrained to times that are integral multiples of the simulation step \Delta. This is often used to argue for event-driven simulation (Brette et al. 2006), where spikes can occur at arbitrary times. NEST solves this problem by handling spikes in continuous times within a globally time-driven simulation (Morrison et al. 2007).
(7) "NEST evaluates the network model with the following algorithm". For NEST to "evaluate" a model, it would have to be capable of abstract reasoning. In any case, the algorithm presented is one for simulation, not for evaluation.
Reply: The sentence now reads: NEST simulates a neural system with the following algorithm: