Auryn simulator

Simulator for spiking neural networks with synaptic plasticity

User Tools

Site Tools


manual:duty_cycle

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
manual:duty_cycle [2014/11/05 15:45] zenkemanual:duty_cycle [2017/01/24 21:20] – typo zenke
Line 3: Line 3:
 Once a simulation is triggered by the ''run()'' directive in [[System]] the simulation evolves according to a fixed loop structure. Once a simulation is triggered by the ''run()'' directive in [[System]] the simulation evolves according to a fixed loop structure.
  
-First [[System]] will call all the ''evolve()'' methods of all registered instances of [[SpikingGroup]]. During this step all dynamic ODEs of the the neuron and synapse models are updated. Then in a second step it calls all ''propagate()'' methods of instances of [[Connection]] objects. This generally takes care of propagating spikes produced by any [[SpikingGroup]] and delivers them to [[NeuronGroup|NeuronGroups]] where they have their effect on the specified transmitter target (see [[TransmitterType]])Now all [[Monitor|Monitors]] are called via their ''propagate()'' function. This is mainly to write results to files or do some online monitoring (see [[Checker]]). In a final step the ''evolve()'' function of [[Connection]] objects are called. This is generally to implement continuous weight updates caused for instance by a synaptic decay.+Auryn's duty cycle can be coarsely divided into three main parts. 
 + 
 +  - **Evolve** the state of the network are evolved by one time step. To that end System calls the ''evolve()'' methods of all registered instances of [[SpikingGroup]] and all [[Connection]] instances. During this step all the smooth dynamics (ODEsof the the neuron and synapse models are updated. Eg. all integrate-and-fire neurons will smoothly upgrade their internal state. 
 +  - **Propagate** this step captures the interactions between the different network entities. Mostly, the step is concerned with bringing spikes from point A to point B, where this might entail sending spikes from one node to another in a parallel simulation. To implement propagate, System calls all ''propagate()'' methods of instances of [[Connection]] objects. The nature of spikes can lead to "jumps" in the state of the system, for instance because arriving spikes increase the membrane potential of a target neuron. 
 +  - **Execute devices**. During this step all [[Monitor|Monitors]] are called via their ''execute()'' function. This is mainly to write results to files or do some on-line monitoring (see [[Checker]]).
manual/duty_cycle.txt · Last modified: 2017/01/24 21:39 by zenke