Added information on spike exchange to documentation #612

Merged
merged 3 commits into from Jan 7, 2017

Conversation

Projects
None yet
3 participants
@heplesser
Contributor

heplesser commented Jan 2, 2017

Following @jougs' suggstion, this PR adds some information on spike exchange to the parallel simulation documentation. @steffengraber Can you make sure this becomes visible on the homepage once it is merged (I guess this happens automatically now?).

@jougs

I've reformulated your sentences to disentangle them. Can you please check if they still carry the message you intended and merge mine with yours? Thanks!

@@ -81,6 +81,24 @@ spike files and `dat` for analog recordings from the `multimeter`.
The `label` and `file_extension` of a recording device can be set like any other
parameter of a node using `SetStatus`.
+### Spike exchange and synapse updates
+

This comment has been minimized.

@jougs

jougs Jan 4, 2017

Contributor

Add something like "Spike exchange in NEST takes different routes depending on the type of the sending and receiving node. There are two distinct cases.

@jougs

jougs Jan 4, 2017

Contributor

Add something like "Spike exchange in NEST takes different routes depending on the type of the sending and receiving node. There are two distinct cases.

+
+For spikes between neurons, spikes are always exchanged through the global
+spike exchange mechanism and it is then the thread responsible for the target
+neuron that updates the synapse and delivers the spike.

This comment has been minimized.

@jougs

jougs Jan 4, 2017

Contributor

"Spikes between neurons are always exchanged through the global spike exchange mechanism. Neuron update and spike generation in the source neuron and event delivery to the target neuron are handled by possibly different threads in this case, depending on the thread, which the neuron is assigned to (see property thread in the status dictionary)".

@jougs

jougs Jan 4, 2017

Contributor

"Spikes between neurons are always exchanged through the global spike exchange mechanism. Neuron update and spike generation in the source neuron and event delivery to the target neuron are handled by possibly different threads in this case, depending on the thread, which the neuron is assigned to (see property thread in the status dictionary)".

+exchange mechanism. In this case, pre- and postsynaptic node (sender and
+target) are handled by the same thread. Similarly, when a neuron emits a spike,
+the spike is locally transmitted to the clone of the spike_detector belonging
+to the same thread as the neuron.

This comment has been minimized.

@jougs

jougs Jan 4, 2017

Contributor

"Spike exchange to or from neurons over connections that either originate or terminate at a device (e.g. spike_generator->neuron, or neuron->spike_detector) differs in that it bypasses the global spike exchange mechanism. Instead, spikes are delivered thread-locally from or to a replica of the device. In this case, both the pre- and postsynaptic nodes are handled by the thread to which the neuron is assigned to."

@jougs

jougs Jan 4, 2017

Contributor

"Spike exchange to or from neurons over connections that either originate or terminate at a device (e.g. spike_generator->neuron, or neuron->spike_detector) differs in that it bypasses the global spike exchange mechanism. Instead, spikes are delivered thread-locally from or to a replica of the device. In this case, both the pre- and postsynaptic nodes are handled by the thread to which the neuron is assigned to."

+to the same thread as the neuron.
+
+Thus, it is always the thread of the target of a connection that is
+responsible for the synapse.

This comment has been minimized.

@jougs

jougs Jan 4, 2017

Contributor

"Possible synapse dynamics in the Connection object are always handled by the thread of the target node."

@jougs

jougs Jan 4, 2017

Contributor

"Possible synapse dynamics in the Connection object are always handled by the thread of the target node."

@heplesser

This comment has been minimized.

Show comment
Hide comment
@heplesser

heplesser Jan 5, 2017

Contributor

@jougs Thank you for your suggestions! I have integrated them with minor edits. Mainly, I switched from threads to virtual processes, since the user shouldn't really care only about those.

Contributor

heplesser commented Jan 5, 2017

@jougs Thank you for your suggestions! I have integrated them with minor edits. Mainly, I switched from threads to virtual processes, since the user shouldn't really care only about those.

@steffengraber

👍 For me everything's ok and could be merged into the website.

@jougs

I like the new version very much, especially that threads are not mentioned explicitly. One little type and it's good to go.

+the *target* neuron is assigned (see property `vp` in the status dictionary).
+
+Spike exchange to or from neurons over connections that either originate or
+terminate at a device (e.g., `spike_generator -> neuron` or `neuron -> spike_detector)

This comment has been minimized.

@jougs

jougs Jan 6, 2017

Contributor

missing closing back tick at end of line before parenthesis.

@jougs

jougs Jan 6, 2017

Contributor

missing closing back tick at end of line before parenthesis.

@jougs

jougs approved these changes Jan 7, 2017

@jougs jougs merged commit 09f8e23 into nest:master Jan 7, 2017

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

@heplesser heplesser deleted the heplesser:spike-exchange-doc branch Mar 2, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment