#include <SpikeStreamSimulation.h>
Public Member Functions | |
| SpikeStreamSimulation () | |
| SpikeStreamSimulation (int argc, char **argv) | |
| ~SpikeStreamSimulation () | |
Static Public Member Functions | |
| static unsigned int | getNeuronGrpID () |
| static void | systemError (const char *message) |
| static void | systemError (const string &message) |
| static void | systemError_double (const string &message, double messageData1) |
| static void | systemError_int (const string &message, int messageData1) |
| static void | systemError (const char *message, int messageData1) |
| static void | systemInfo (const char *message) |
| static void | systemInfo (const char *message, bool messageData1) |
| static void | systemInfo (const char *message, int messageData1) |
Static Public Attributes | |
| static SimulationClock * | simulationClock |
Private Member Functions | |
| SpikeStreamSimulation (const SpikeStreamSimulation &) | |
| SpikeStreamSimulation | operator= (const SpikeStreamSimulation &) |
| void | addReceivingTask_Neurons (int taskID) |
| void | addReceivingTask_Spikes (int taskID) |
| void | addTaskIDToDatabase () |
| void | cleanUpSimulation () |
| void | fireRandomNeurons (double noiseAmount) |
| void | fireRandomNeurons_synaptic (double noiseAmount) |
| void | fireSpecifiedNeurons () |
| double | getRandomPercentage () |
| void | injectNoise () |
| bool | loadGlobalParameters () |
| bool | loadNeuronParameters () |
| void | loadNeurons () |
| bool | loadNoiseParameters () |
| void | loadPreSynapticNeuronMaps () |
| void | loadSimulationData () |
| bool | loadSynapseParameters () |
| void | loadSynapses () |
| void | loadTasks () |
| void | printSynapseMap () |
| void | processSpikeList (unsigned int senderTID, int msgTimeStep) |
| void | reloadWeights () |
| void | removeReceivingTask_Neurons (int removeTaskID) |
| void | removeReceivingTask_Spikes (int removeTaskID) |
| void | run () |
| void | saveViewWeights () |
| void | saveWeights () |
| bool | sendMessage (int taskID, int msgtag, unsigned int data1, unsigned int data2, const char *msgdata) |
| bool | sendNeuronData (int taskID, int msgtag, unsigned int neuronID, double *dataArray, int arrayLength) |
| void | sendSpikeMessages () |
| bool | sendSynapseData (int taskID, int msgtag, unsigned int fromNeurID, unsigned int toNeurID, double *dataArray, int arrayLength) |
| void | setDelayInLastTimeStep (bool dly) |
| void | setMaxBufferSize () |
| void | setMinTimeStepDuration (int senderTID) |
| void | setUpdateMode (int senderTID) |
| void | startNeuronMonitoring (int senderTID, bool restart) |
| void | startSimulation () |
| void | startSynapseMonitoring (int senderTID, bool restart) |
| void | stepSimulation () |
| void | stopSimulation () |
| void | stopNeuronMonitoring (int senderTID) |
| void | stopSynapseMonitoring (int senderTID) |
Static Private Member Functions | |
| static void | printTID () |
| static void | printTID (int taskID) |
| static bool | sendMessage (int taskID, int msgtag) |
| static bool | sendMessage (int taskID, int msgtag, const char *msgdata) |
| static bool | sendMessage (int taskID, int msgtag, unsigned int data1, const char *msgdata) |
Private Attributes | |
| bool | stop |
| bool | simulationDataLoaded |
| bool | simulationStarted |
| bool | simulationRunning |
| unsigned short | neuronType |
| dense_hash_map< unsigned int, dense_hash_map< unsigned int, Synapse *, hash< unsigned int > > *, hash< unsigned int > > | synapseMap |
| map< unsigned int, map< string, double > * > | connParameterMap |
| Neuron ** | neuronArray |
| unsigned int | startNeuronID |
| unsigned int | numberOfNeurons |
| unsigned int | neuronGrpWidth |
| unsigned int | neuronGrpLength |
| unsigned int | spikeMessageCount |
| unsigned int | spikeMessageTotal |
| map< int, TaskHolder * > | spikeTaskHolderMap |
| NeuronTaskHolder * | neuronTaskHolder |
| map< unsigned int, int > | taskConnGrpMap |
| map< unsigned int, int > | taskNeurGrpMap |
| map< int, unsigned int > | startNeurIDTaskMap |
| unsigned int | simulationType |
| DBInterface * | networkDBInterface |
| DBInterface * | patternDBInterface |
| DBInterface * | deviceDBInterface |
| DeviceManager * | deviceManager |
| PatternManager * | patternManager |
| ClassLoader * | classLoader |
| unsigned int | timeStepsPerPattern |
| bool | delayInLastTimeStep |
| stack< EarlyMessage > | earlyMessageStack |
| dense_hash_map< unsigned int, bool, hash< unsigned int > > | neuronUpdateMap |
| unsigned int | unpkFromNeurID |
| unsigned int | unpkToNeurID |
| unsigned int * | unpackArray |
| int | info |
| bool | calculateComputeTime |
| timeval | startComputeTimeStruct |
| timeval | endComputeTimeStruct |
| unsigned int | timeStepComputeTime_us |
| unsigned int | minTimeStepDuration_us |
| bool | noiseEnabled |
| double | percentNeurons_noise |
| bool | randomPercentNoise |
| bool | directFiring_noise |
| double | synapticWeight_noise |
| bool | updateAllNeurons |
| bool | updateAllSynapses |
| bool | neuronMonitorMode |
| dense_hash_map< unsigned int, bool, hash< unsigned int > > | neuronMonitorMap |
| bool | synapseMonitorMode |
| map< unsigned int *, Synapse *, synapseKeyCompare > | synapseMonitorMap |
Static Private Attributes | |
| static int | thisTaskID = 0 |
| static int | parentTaskID = 0 |
| static bool | errorState = false |
| static unsigned int | neuronGrpID = 0 |
| static const bool | printTIDHex = true |
Definition at line 70 of file SpikeStreamSimulation.h.
|
|
Default constructor - NOT USED. Definition at line 64 of file SpikeStreamSimulation.cpp. |
|
||||||||||||
|
Main constructor. Do not return from construction during an error because we must reach the run() call so that simulation manager can cleanly shut the task down when there is an error. Definition at line 72 of file SpikeStreamSimulation.cpp. References addTaskIDToDatabase(), calculateComputeTime, classLoader, delayInLastTimeStep, deviceDBInterface, directFiring_noise, endComputeTimeStruct, errorState, minTimeStepDuration_us, networkDBInterface, neuronGrpID, neuronMonitorMap, neuronMonitorMode, neuronUpdateMap, noiseEnabled, parentTaskID, patternDBInterface, percentNeurons_noise, randomPercentNoise, run(), sendMessage(), simulationClock, simulationDataLoaded, simulationRunning, simulationStarted, startComputeTimeStruct, stop, synapseMap, synapseMonitorMode, synapticWeight_noise, systemError(), thisTaskID, unpackArray, updateAllNeurons, and updateAllSynapses. |
|
|
Destructor. Definition at line 244 of file SpikeStreamSimulation.cpp. References classLoader, connParameterMap, deviceDBInterface, deviceManager, SimulationClock::getTimeStep(), networkDBInterface, neuronArray, neuronTaskHolder, numberOfNeurons, parentTaskID, patternDBInterface, patternManager, printTID(), sendMessage(), simulationClock, simulationType, spikeTaskHolderMap, synapseMap, thisTaskID, and unpackArray. |
|
|
Declare copy constructor private so it cannot be used inadvertently. |
|
|
Adds a task that will receive the firing neuron data from this task. Definition at line 634 of file SpikeStreamSimulation.cpp. References NeuronTaskHolder::addReceivingTask(), and neuronTaskHolder. Referenced by run(). |
|
|
Adding a task to receive spikes is easy because it is just treated as another neuron group and sent all the spikes from this neuron group at each time step. Definition at line 641 of file SpikeStreamSimulation.cpp. References spikeTaskHolderMap. Referenced by run(). |
|
|
Inserts this task id into database. Definition at line 649 of file SpikeStreamSimulation.cpp. References networkDBInterface, neuronGrpID, systemError(), and thisTaskID. Referenced by SpikeStreamSimulation(). |
|
|
Cleans up after the simulation. Definition at line 675 of file SpikeStreamSimulation.cpp. References DeviceManager::closeDevice(), and deviceManager. Referenced by run(). |
|
|
Fires noiseAmount percentage of neurons directly by calling fireNeuron() on the neuron class. Definition at line 682 of file SpikeStreamSimulation.cpp. References Neuron::fireNeuron(), neuronArray, and numberOfNeurons. Referenced by injectNoise(), and sendSpikeMessages(). |
|
|
Calls changeMembranePotential on noiseAmount percentage of neurons in this layer. This simulates a noisy input to the neuron group. Definition at line 707 of file SpikeStreamSimulation.cpp. References Neuron::changePostSynapticPotential(), neuronArray, neuronUpdateMap, numberOfNeurons, startNeuronID, and synapticWeight_noise. Referenced by sendSpikeMessages(). |
|
|
Fires the specified neurons. Usually called in respose to a FIRE_NEURON_MSG for debugging purposes. Definition at line 734 of file SpikeStreamSimulation.cpp. References Neuron::fireNeuron(), info, neuronArray, numberOfNeurons, startNeuronID, and systemError(). Referenced by run(). |
|
|
Returns the ID of the neuron group that is being simulated by this task. Definition at line 546 of file SpikeStreamSimulation.cpp. References neuronGrpID. |
|
|
Returns a random number between range low and range high. Definition at line 771 of file SpikeStreamSimulation.cpp. Referenced by sendSpikeMessages(). |
|
|
Causes neurons to fire with random patterns in addition to any firing caused by their input Message that calls this method contains a single integer specifying the noise. -1 means inject noise in a single neuron. Numbers above 0 give the percentage of neurons to be fired randomly. Definition at line 779 of file SpikeStreamSimulation.cpp. References Neuron::fireNeuron(), fireRandomNeurons(), info, neuronArray, numberOfNeurons, startNeuronID, and systemError(). Referenced by run(). |
|
|
Loads up the global parameters from the global parameters database. Definition at line 809 of file SpikeStreamSimulation.cpp. References SimulationClock::getTimeStepDuration_ms(), networkDBInterface, SimulationClock::setLiveMode(), SimulationClock::setTimeStepDuration(), simulationClock, and systemError(). Referenced by loadSimulationData(), and run(). |
|
|
Loads the parameters for neurons from the database. Definition at line 874 of file SpikeStreamSimulation.cpp. References classLoader, ClassLoader::getNeuronParameterTableName(), networkDBInterface, neuronArray, neuronGrpID, neuronType, numberOfNeurons, Neuron::parametersChanged(), Neuron::setParameters(), systemError(), and systemError_int(). Referenced by loadSimulationData(), and run(). |
|
|
Loads up the neurons. NOTE Exception handling should be done by the calling method. Definition at line 986 of file SpikeStreamSimulation.cpp. References classLoader, Neuron::connectionArray, Neuron::connectionMap, ConnectionHolder::connIDArray, databaseException, ConnectionHolder::delay, ClassLoader::getNewNeuron(), networkDBInterface, neuronArray, neuronGrpID, neuronGrpLength, neuronGrpWidth, neuronTaskHolder, Neuron::neuronTaskHolder, neuronType, Neuron::numberOfConnections, numberOfNeurons, Neuron::numberOfSpikeTaskHolders, ConnectionHolder::numConnIDs, Neuron::setNeuronID(), Neuron::setSimulationClock(), Neuron::setSynapseMapPtr(), simulationClock, Neuron::spikeTaskHolderArray, spikeTaskHolderMap, startNeurIDTaskMap, startNeuronID, synapseMap, systemError(), and taskConnGrpMap. Referenced by loadSimulationData(). |
|
|
Loads the parameters controlling noise from the NoiseParameters database. Definition at line 1195 of file SpikeStreamSimulation.cpp. References directFiring_noise, networkDBInterface, neuronGrpID, noiseEnabled, percentNeurons_noise, randomPercentNoise, synapticWeight_noise, systemError(), and systemError_double(). Referenced by loadSimulationData(), and run(). |
|
|
Passes references to each neuron of the synapses that are connected to them. Used for some learning algorithms. Definition at line 1265 of file SpikeStreamSimulation.cpp. References synapseMap. Referenced by loadSimulationData(). |
|
|
|
Loads up the appropriate synapse parameters. Definition at line 1462 of file SpikeStreamSimulation.cpp. References classLoader, connParameterMap, ClassLoader::getConnGrpParameterTableName(), networkDBInterface, neuronGrpID, synapseMap, and systemError(). Referenced by loadSimulationData(), and run(). |
|
|
Loads up the synapses data from the database and creates a new synapse for each neuron-neuron connection. A synapse is created for each connection where the postsynaptic neuron is in this neuron group. Synapses are stored in nested dense_hash_maps for speed of access. The key in the outer map is the fromNeuronID. The key in the inner maps is the toNeuronID. NOTE Exception handling should be done by the calling method. Definition at line 1585 of file SpikeStreamSimulation.cpp. References classLoader, connParameterMap, databaseException, ClassLoader::getNewSynapse(), networkDBInterface, neuronArray, neuronGrpID, numberOfNeurons, printSynapseMap(), Synapse::setSimulationClock(), simulationClock, startNeuronID, synapseMap, and systemError(). Referenced by loadSimulationData(). |
|
|
Loads tasks and task holders Each connection group connects to a particular task and need to be able to look up the task id using the connection group id in order to be able to make the neuron connections. NOTE Exception handling should be done by the calling method. Definition at line 1683 of file SpikeStreamSimulation.cpp. References networkDBInterface, neuronGrpID, neuronTaskHolder, spikeMessageCount, spikeMessageTotal, spikeTaskHolderMap, startNeurIDTaskMap, taskConnGrpMap, taskNeurGrpMap, and thisTaskID. Referenced by loadSimulationData(). |
|
|
Declare assignment private so it cannot be used. |
|
|
Prints out the synapse map for debugging. Definition at line 1780 of file SpikeStreamSimulation.cpp. References synapseMap. Referenced by loadSynapses(). |
|
|
Prints out a task id either as a hexadecimal or decimal value depending on the value of printTIDHex. Code adapted from http://mathforum.org/library/drmath/view/54347.html. Definition at line 1803 of file SpikeStreamSimulation.cpp. References printTIDHex. |
|
|
Prints out the task id for this task using either hexadecimal or decimal depending on the value of printTIDHex. Definition at line 1795 of file SpikeStreamSimulation.cpp. References thisTaskID. Referenced by loadSimulationData(), processSpikeList(), run(), sendSpikeMessages(), setMinTimeStepDuration(), setUpdateMode(), startNeuronMonitoring(), startSynapseMonitoring(), stopNeuronMonitoring(), stopSynapseMonitoring(), systemError(), systemError_double(), systemError_int(), and ~SpikeStreamSimulation(). |
|
||||||||||||
|
Called when a SPIKE_LIST_MSG is received containing spikes from another task. The spikes in this message are pairs of shorts with the from and to neuron ids, but with the startNeuronID subtracted, so their value is relative to the neuron group they are from. Spike list is processed by reading these ids from the message and using them to find the synapse in the map and call its update function. Definition at line 1857 of file SpikeStreamSimulation.cpp. References EarlyMessage::bufferID, earlyMessageStack, SimulationClock::getTimeStep(), info, neuronUpdateMap, printTID(), EarlyMessage::senderTID, sendSpikeMessages(), simulationClock, simulationRunning, spikeMessageCount, spikeMessageTotal, startNeurIDTaskMap, startNeuronID, synapseMap, systemError(), EarlyMessage::timeStep, unpackArray, unpkFromNeurID, and unpkToNeurID. Referenced by run(), and sendSpikeMessages(). |
|
|
Reloads the weights of the synapses from the database. Definition at line 2042 of file SpikeStreamSimulation.cpp. References databaseException, networkDBInterface, numberOfNeurons, parentTaskID, sendMessage(), startNeuronID, synapseMap, and systemError(). Referenced by run(). |
|
|
Removes the specified task from the list of tasks that receive firing neuron data. Definition at line 2130 of file SpikeStreamSimulation.cpp. References neuronTaskHolder, and NeuronTaskHolder::removeReceivingTask(). Referenced by run(). |
|
|
Removes the specified task from the list of tasks that receive the spike messages from this task. Definition at line 2137 of file SpikeStreamSimulation.cpp. References spikeTaskHolderMap. Referenced by run(). |
|
|
Main run method. This loops around receiving and processing messages until the simulation ends. Definition at line 326 of file SpikeStreamSimulation.cpp. References addReceivingTask_Neurons(), addReceivingTask_Spikes(), cleanUpSimulation(), errorState, fireSpecifiedNeurons(), info, injectNoise(), loadGlobalParameters(), loadNeuronParameters(), loadNoiseParameters(), loadSimulationData(), loadSynapseParameters(), neuronGrpID, printTID(), processSpikeList(), reloadWeights(), removeReceivingTask_Neurons(), removeReceivingTask_Spikes(), saveViewWeights(), saveWeights(), setMinTimeStepDuration(), setUpdateMode(), startNeuronMonitoring(), startSimulation(), startSynapseMonitoring(), stepSimulation(), stop, stopNeuronMonitoring(), stopSimulation(), stopSynapseMonitoring(), systemError(), and thisTaskID. Referenced by SpikeStreamSimulation(). |
|
|
Writes the weights of this neuron group into TempWeight field of the database so that they can be viewed by the user during a simulation run. Definition at line 2146 of file SpikeStreamSimulation.cpp. References networkDBInterface, parentTaskID, sendMessage(), synapseMap, and systemError(). Referenced by run(). |
|
|
Writes the weights of this neuron group into the database, overwriting their current values. Definition at line 2190 of file SpikeStreamSimulation.cpp. References networkDBInterface, parentTaskID, sendMessage(), synapseMap, and systemError(). Referenced by run(). |
|
||||||||||||||||||||||||
|
Sends a message containing two unsigned ints and a char string. Definition at line 2363 of file SpikeStreamSimulation.cpp. References info, systemError(), and thisTaskID. |
|
||||||||||||||||||||
|
Sends a message containing an unsigned int and a char string. Definition at line 2305 of file SpikeStreamSimulation.cpp. References info, systemError(), and thisTaskID. |
|
||||||||||||||||
|
Sends a message containing a char string. Definition at line 2258 of file SpikeStreamSimulation.cpp. References info, systemError(), and thisTaskID. |
|
||||||||||||
|
Sends a message without any contents. Definition at line 2234 of file SpikeStreamSimulation.cpp. References info. Referenced by loadSimulationData(), reloadWeights(), saveViewWeights(), saveWeights(), SpikeStreamSimulation(), startNeuronMonitoring(), startSynapseMonitoring(), systemError(), systemError_double(), systemError_int(), systemInfo(), and ~SpikeStreamSimulation(). |
|
||||||||||||||||||||||||
|
Sends a message containing an unsigned integer followed by a float array. Definition at line 2431 of file SpikeStreamSimulation.cpp. References SimulationClock::getSimulationTime(), info, simulationClock, systemError(), and thisTaskID. Referenced by sendSpikeMessages(). |
|
|
||||||||||||||||||||||||||||
|
Sends a message containing an unsigned integer followed by a float array. Definition at line 2496 of file SpikeStreamSimulation.cpp. References SimulationClock::getSimulationTime(), info, simulationClock, systemError(), and thisTaskID. Referenced by sendSpikeMessages(). |
|
|
Used when synchronizing to an external device using UDP. Adds or deletes an entry in the SynchronizationDelay database to set whether the simulation is delaying itself for synchronization or not. Need to use a database for this to enable communiation between tasks on potentially separate machines. Definition at line 2803 of file SpikeStreamSimulation.cpp. References delayInLastTimeStep, deviceDBInterface, neuronGrpID, and systemError(). Referenced by sendSpikeMessages(). |
|
|
Once neurons have been loaded, need to calculate the maximum size of the message buffers in the task holders. This will be used to reserve space for the vectors to save increasing this at runtime. Another option would be to use arrays, but this may not be significantly faster. Definition at line 2845 of file SpikeStreamSimulation.cpp. References Neuron::connectionMap, neuronArray, numberOfNeurons, and spikeTaskHolderMap. Referenced by loadSimulationData(). |
|
|
Sets the minimum duration of a time step in microseconds. Used to slow the simulation down. Definition at line 2886 of file SpikeStreamSimulation.cpp. References calculateComputeTime, deviceManager, DeviceManager::getDeviceType(), info, minTimeStepDuration_us, printTID(), simulationType, and systemError(). Referenced by run(). |
|
|
Sets whether the updates of the neuron and synapse classes are event driven, or whether all neuron and/or synapse classes are updated at each time step. Definition at line 2916 of file SpikeStreamSimulation.cpp. References info, printTID(), systemError(), updateAllNeurons, and updateAllSynapses. Referenced by run(). |
|
||||||||||||
|
Adds the neuron to the neuron monitoring map and sends back XML file that is used to create the graphical plot of the neuron's data. Definition at line 2944 of file SpikeStreamSimulation.cpp. References info, neuronArray, neuronMonitorMap, neuronMonitorMode, numberOfNeurons, parentTaskID, printTID(), sendMessage(), startNeuronID, and systemError(). Referenced by run(). |
|
|
In order to send a spike list, each task must have received a spike list and so unless they start sending spike lists to each other the whole thing will never begin. This method sends the current spike list to all recipients to initialise simulation. Definition at line 3043 of file SpikeStreamSimulation.cpp. References SimulationClock::getTimeStep(), sendSpikeMessages(), simulationClock, simulationRunning, simulationStarted, spikeMessageCount, and spikeMessageTotal. Referenced by run(). |
|
||||||||||||
|
Adds the synapse to the synapse monitoring map and sends back XML file that is used to create the graphical plot of the synapse's data. Definition at line 2981 of file SpikeStreamSimulation.cpp. References info, parentTaskID, printTID(), sendMessage(), synapseMap, synapseMonitorMap, synapseMonitorMode, and systemError(). Referenced by run(). |
|
|
Advances the simulation one step and then pauses it. Definition at line 3093 of file SpikeStreamSimulation.cpp. References sendSpikeMessages(), simulationRunning, simulationStarted, spikeMessageCount, and spikeMessageTotal. Referenced by run(). |
|
|
Stops the sending of monitor data for the specified neuron. Definition at line 3131 of file SpikeStreamSimulation.cpp. References info, neuronMonitorMap, neuronMonitorMode, printTID(), and systemError(). Referenced by run(). |
|
|
Stops the simulation running without destroying it. When it has processed all of its incoming spike lists it waits before sending spike messages until it receives the start simulation message again. Definition at line 3157 of file SpikeStreamSimulation.cpp. References simulationRunning. Referenced by run(). |
|
|
Stops the sending of monitoring data for the specified synapse. Definition at line 3167 of file SpikeStreamSimulation.cpp. References info, printTID(), synapseMonitorMap, synapseMonitorMode, and systemError(). Referenced by run(). |
|
||||||||||||
|
Writes an error message to the standard output and sends a message to the parent task with the error message. Definition at line 561 of file SpikeStreamSimulation.cpp. References errorState, parentTaskID, printTID(), and sendMessage(). |
|
|
Writes an error message to the standard output and sends a message to the parent task with the error message. Definition at line 572 of file SpikeStreamSimulation.cpp. References errorState, parentTaskID, printTID(), and sendMessage(). |
|
|
||||||||||||
|
Writes an error message to the standard output and sends a message to the parent task with the error message. Definition at line 581 of file SpikeStreamSimulation.cpp. References errorState, parentTaskID, printTID(), and sendMessage(). Referenced by loadNoiseParameters(). |
|
||||||||||||
|
Writes an error message to the standard output and sends a message to the parent task with the error message. Definition at line 592 of file SpikeStreamSimulation.cpp. References errorState, parentTaskID, printTID(), and sendMessage(). Referenced by loadNeuronParameters(). |
|
||||||||||||
|
Writes an information message to the standard output and sends a message to the parent task with the message. Definition at line 621 of file SpikeStreamSimulation.cpp. References parentTaskID, and sendMessage(). |
|
||||||||||||
|
Writes an information message to the standard output and sends a message to the parent task with the message. Definition at line 611 of file SpikeStreamSimulation.cpp. References parentTaskID, and sendMessage(). |
|
|
Writes an information message to the standard output and sends a message to the parent task with the message. Definition at line 603 of file SpikeStreamSimulation.cpp. References parentTaskID, and sendMessage(). Referenced by UDPSynchronizedClient::closeDevice(), and UDPSynchronizedClient::run(). |
|
|
Determines whether the compute time for each timestep is calculated. Definition at line 259 of file SpikeStreamSimulation.h. Referenced by loadSimulationData(), sendSpikeMessages(), setMinTimeStepDuration(), and SpikeStreamSimulation(). |
|
|
Reference to class loader, which is used to create new neurons and synapses by dynamically loading them from libraries. Definition at line 221 of file SpikeStreamSimulation.h. Referenced by loadNeuronParameters(), loadNeurons(), loadSynapseParameters(), loadSynapses(), SpikeStreamSimulation(), and ~SpikeStreamSimulation(). |
|
|
Map holding the synapse parameters for each of the connection groups Key is the connection group id. Definition at line 149 of file SpikeStreamSimulation.h. Referenced by loadSynapseParameters(), loadSynapses(), and ~SpikeStreamSimulation(). |
|
|
Used for synchronization - sets whether this layer has delayed itself in the last time step. Definition at line 228 of file SpikeStreamSimulation.h. Referenced by setDelayInLastTimeStep(), and SpikeStreamSimulation(). |
|
|
Definition at line 211 of file SpikeStreamSimulation.h. Referenced by loadSimulationData(), setDelayInLastTimeStep(), SpikeStreamSimulation(), and ~SpikeStreamSimulation(). |
|
|
Reference to class for handling devices. Definition at line 214 of file SpikeStreamSimulation.h. Referenced by cleanUpSimulation(), loadSimulationData(), sendSpikeMessages(), setMinTimeStepDuration(), and ~SpikeStreamSimulation(). |
|
|
Are the noise neurons fired directly or by injecting synaptic current?. Definition at line 283 of file SpikeStreamSimulation.h. Referenced by loadNoiseParameters(), sendSpikeMessages(), and SpikeStreamSimulation(). |
|
|
Holds the messages received one time step out of sequence. Definition at line 231 of file SpikeStreamSimulation.h. Referenced by processSpikeList(), and sendSpikeMessages(). |
|
|
Time structure to measure how long each processing loop takes. Definition at line 265 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), and SpikeStreamSimulation(). |
|
|
When the simulation has an error it enters error state, waits for an exit message and then exits. This is to enable the Simulation Manager to clean up properly. Definition at line 122 of file SpikeStreamSimulation.h. Referenced by run(), SpikeStreamSimulation(), systemError(), systemError_double(), and systemError_int(). |
|
|
Used to get information about PVM functions. Stored here both to save redelcaring it and because it is sometimes not used when PVM_DEBUG is not set and so generates a warning. Definition at line 256 of file SpikeStreamSimulation.h. Referenced by fireSpecifiedNeurons(), injectNoise(), loadSimulationData(), processSpikeList(), run(), sendMessage(), sendNeuronData(), sendSynapseData(), setMinTimeStepDuration(), setUpdateMode(), startNeuronMonitoring(), startSynapseMonitoring(), stopNeuronMonitoring(), and stopSynapseMonitoring(). |
|
|
The minimum time step duration. Used to slow the simulation down. Definition at line 271 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), setMinTimeStepDuration(), and SpikeStreamSimulation(). |
|
|
Definition at line 209 of file SpikeStreamSimulation.h. Referenced by addTaskIDToDatabase(), loadGlobalParameters(), loadNeuronParameters(), loadNeurons(), loadNoiseParameters(), loadSimulationData(), loadSynapseParameters(), loadSynapses(), loadTasks(), reloadWeights(), saveViewWeights(), saveWeights(), SpikeStreamSimulation(), and ~SpikeStreamSimulation(). |
|
|
Array of all the neurons - held as references Although the neuron references are also held in the synapses they need to be updated once all the post synaptic membrane potentials have been calculated. Definition at line 154 of file SpikeStreamSimulation.h. Referenced by fireRandomNeurons(), fireRandomNeurons_synaptic(), fireSpecifiedNeurons(), injectNoise(), loadNeuronParameters(), loadNeurons(), loadSimulationData(), loadSynapses(), sendSpikeMessages(), setMaxBufferSize(), startNeuronMonitoring(), and ~SpikeStreamSimulation(). |
|
|
ID of the neuron group that is being simulated by this task. Definition at line 135 of file SpikeStreamSimulation.h. Referenced by addTaskIDToDatabase(), getNeuronGrpID(), loadNeuronParameters(), loadNeurons(), loadNoiseParameters(), loadSimulationData(), loadSynapseParameters(), loadSynapses(), loadTasks(), run(), setDelayInLastTimeStep(), and SpikeStreamSimulation(). |
|
|
Length of the neuron group being simulated by this task. Definition at line 167 of file SpikeStreamSimulation.h. Referenced by loadNeurons(). |
|
|
Width of the neuron group being simulated by this task. Definition at line 164 of file SpikeStreamSimulation.h. Referenced by loadNeurons(). |
|
|
The neurons that are being monitored. Use map to filter out duplicates. Definition at line 299 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), SpikeStreamSimulation(), startNeuronMonitoring(), and stopNeuronMonitoring(). |
|
|
Controls whether we are sending neuron data back to the main application for monitoring purposes. Definition at line 296 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), SpikeStreamSimulation(), startNeuronMonitoring(), and stopNeuronMonitoring(). |
|
|
Reference to a neuron task holder that holds the list of firing neurons in this simulation and sends messages to any task that want this information. Definition at line 189 of file SpikeStreamSimulation.h. Referenced by addReceivingTask_Neurons(), loadNeurons(), loadSimulationData(), loadTasks(), removeReceivingTask_Neurons(), sendSpikeMessages(), and ~SpikeStreamSimulation(). |
|
|
The type of neuron that is being simulated. This corresponds to an entry in the NeuronTypes database and a class library dynamically loaded at run time. Definition at line 140 of file SpikeStreamSimulation.h. Referenced by loadNeuronParameters(), and loadNeurons(). |
|
|
Map holding all the neurons that have received a spike during this timestep Neurons in this map are updated when all spikes have been received Map is used rather than vector to avoid filtering out multiple spikes to the same neuron. The key is the full neuronID. Definition at line 240 of file SpikeStreamSimulation.h. Referenced by fireRandomNeurons_synaptic(), loadSimulationData(), processSpikeList(), sendSpikeMessages(), and SpikeStreamSimulation(). |
|
|
Controls whether noise is injected into the neurons. Definition at line 274 of file SpikeStreamSimulation.h. Referenced by loadNoiseParameters(), sendSpikeMessages(), and SpikeStreamSimulation(). |
|
|
Size of the neuron array. Definition at line 161 of file SpikeStreamSimulation.h. Referenced by fireRandomNeurons(), fireRandomNeurons_synaptic(), fireSpecifiedNeurons(), injectNoise(), loadNeuronParameters(), loadNeurons(), loadSimulationData(), loadSynapses(), reloadWeights(), sendSpikeMessages(), setMaxBufferSize(), startNeuronMonitoring(), and ~SpikeStreamSimulation(). |
|
|
Task ID of the task that spawned this task. Definition at line 114 of file SpikeStreamSimulation.h. Referenced by loadSimulationData(), reloadWeights(), saveViewWeights(), saveWeights(), sendSpikeMessages(), SpikeStreamSimulation(), startNeuronMonitoring(), startSynapseMonitoring(), systemError(), systemError_double(), systemError_int(), systemInfo(), and ~SpikeStreamSimulation(). |
|
|
Definition at line 210 of file SpikeStreamSimulation.h. Referenced by loadSimulationData(), SpikeStreamSimulation(), and ~SpikeStreamSimulation(). |
|
|
Reference to class for handling patterns. Definition at line 217 of file SpikeStreamSimulation.h. Referenced by loadSimulationData(), sendSpikeMessages(), and ~SpikeStreamSimulation(). |
|
|
Percent of neurons fired at each time step by noise function. Definition at line 277 of file SpikeStreamSimulation.h. Referenced by loadNoiseParameters(), sendSpikeMessages(), and SpikeStreamSimulation(). |
|
|
Controls how the task id is displayed. Definition at line 234 of file SpikeStreamSimulation.h. Referenced by printTID(). |
|
|
Set to true when the percentage of neurons selected for noise is random. Definition at line 280 of file SpikeStreamSimulation.h. Referenced by loadNoiseParameters(), sendSpikeMessages(), and SpikeStreamSimulation(). |
|
|
Clock for the simulation. Definition at line 89 of file SpikeStreamSimulation.h. Referenced by loadGlobalParameters(), loadNeurons(), loadSimulationData(), loadSynapses(), processSpikeList(), NeuronTaskHolder::sendFiringNeuronMessages(), sendNeuronData(), UDPSynchronizedServer::sendSpikeData(), TaskHolder::sendSpikeMessages(), sendSpikeMessages(), sendSynapseData(), SpikeStreamSimulation(), startSimulation(), and ~SpikeStreamSimulation(). |
|
|
Records whether all of the simulation data has been loaded. Definition at line 125 of file SpikeStreamSimulation.h. Referenced by loadSimulationData(), and SpikeStreamSimulation(). |
|
|
Records whether the simulation is running or not. Definition at line 132 of file SpikeStreamSimulation.h. Referenced by processSpikeList(), sendSpikeMessages(), SpikeStreamSimulation(), startSimulation(), stepSimulation(), and stopSimulation(). |
|
|
Records whether the initial messages have been sent so that simulation can keep running. Definition at line 129 of file SpikeStreamSimulation.h. Referenced by SpikeStreamSimulation(), startSimulation(), and stepSimulation(). |
|
|
Defines what type of simulation is being run in this task. These are defined in SimulationTypes.h. Definition at line 206 of file SpikeStreamSimulation.h. Referenced by loadSimulationData(), sendSpikeMessages(), setMinTimeStepDuration(), and ~SpikeStreamSimulation(). |
|
|
Keeps track of how many spike messages have been received. The spike list is sent when all spike messages have been received from other tasks. Definition at line 171 of file SpikeStreamSimulation.h. Referenced by loadTasks(), processSpikeList(), sendSpikeMessages(), startSimulation(), and stepSimulation(). |
|
|
The sum of the taskIDs of the tasks that will be sending spike messages to this task within each update cycle. Definition at line 175 of file SpikeStreamSimulation.h. Referenced by loadTasks(), processSpikeList(), startSimulation(), and stepSimulation(). |
|
|
Map holding references to all the task holders that handle spike messages. Each task holder class is responsible for sending spikes to a particular task and any additional monitoring tasks as well. Neurons hold a list of spike task holders that they use to add their spikes to the spike buffers held in this class. The key of this map is the destinationTaskID. The data of this map is the TaskHolder that sends messages. Definition at line 184 of file SpikeStreamSimulation.h. Referenced by addReceivingTask_Spikes(), loadNeurons(), loadTasks(), removeReceivingTask_Spikes(), sendSpikeMessages(), setMaxBufferSize(), and ~SpikeStreamSimulation(). |
|
|
Time structure to measure how long each processing loop takes. Definition at line 262 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), and SpikeStreamSimulation(). |
|
|
Holds the start neuron ID for each task processing neurons The key is the task id, the data is the start neuron id of that neuron group. Definition at line 202 of file SpikeStreamSimulation.h. Referenced by loadNeurons(), loadTasks(), and processSpikeList(). |
|
|
Records the id of the first neuron in the group. Used to access a neuron by neuronID in the neuronArray. Definition at line 158 of file SpikeStreamSimulation.h. Referenced by fireRandomNeurons_synaptic(), fireSpecifiedNeurons(), injectNoise(), loadNeurons(), loadSimulationData(), loadSynapses(), processSpikeList(), reloadWeights(), sendSpikeMessages(), and startNeuronMonitoring(). |
|
|
In the run method this controls whether the simulation should stop. Definition at line 117 of file SpikeStreamSimulation.h. Referenced by run(), and SpikeStreamSimulation(). |
|
|
Map holding all of the synapses. The key in the outer dense_hash_map is the from neuron ID. The key in the inner dense_hash_map is the to neuron id. References to neurons are held within each synapse. Definition at line 145 of file SpikeStreamSimulation.h. Referenced by loadNeurons(), loadPreSynapticNeuronMaps(), loadSynapseParameters(), loadSynapses(), printSynapseMap(), processSpikeList(), reloadWeights(), saveViewWeights(), saveWeights(), sendSpikeMessages(), SpikeStreamSimulation(), startSynapseMonitoring(), and ~SpikeStreamSimulation(). |
|
|
Map holding reference to the synapses that are being monitored. The key is an unsigned int array that is dynamically allocated on the heap. Definition at line 307 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), startSynapseMonitoring(), and stopSynapseMonitoring(). |
|
|
Controls whether we are sending synapse data back to the main application for monitoring purposes. Definition at line 303 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), SpikeStreamSimulation(), startSynapseMonitoring(), and stopSynapseMonitoring(). |
|
|
Amount of synaptic current used for neurons fired by noise. Definition at line 286 of file SpikeStreamSimulation.h. Referenced by fireRandomNeurons_synaptic(), loadNoiseParameters(), and SpikeStreamSimulation(). |
|
|
Holds the link between a connection group and a task. The key is the connGrpID; the data is the taskID. Definition at line 193 of file SpikeStreamSimulation.h. Referenced by loadNeurons(), and loadTasks(). |
|
|
Holds the link between neuronGrpID and task ID The key is the neuronGrpID; the data is the taskID. Definition at line 197 of file SpikeStreamSimulation.h. Referenced by loadTasks(). |
|
|
Task ID of this task. Definition at line 111 of file SpikeStreamSimulation.h. Referenced by addTaskIDToDatabase(), loadSimulationData(), loadTasks(), printTID(), run(), sendMessage(), sendNeuronData(), sendSynapseData(), SpikeStreamSimulation(), and ~SpikeStreamSimulation(). |
|
|
Time taken for each time step. Definition at line 268 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(). |
|
|
How many time steps each pattern will be presented for. Definition at line 224 of file SpikeStreamSimulation.h. Referenced by loadSimulationData(), and sendSpikeMessages(). |
|
|
Array to unpack the list of spikes into. Definition at line 251 of file SpikeStreamSimulation.h. Referenced by processSpikeList(), SpikeStreamSimulation(), and ~SpikeStreamSimulation(). |
|
|
Used to calculate the from neuron id from spike messages stored here to avoid constant redeclaration. Definition at line 244 of file SpikeStreamSimulation.h. Referenced by processSpikeList(). |
|
|
Used to calculate the to neuron id from spike messages stored here to avoid constant redeclaration. Definition at line 248 of file SpikeStreamSimulation.h. Referenced by processSpikeList(). |
|
|
Controls whether all neuron classes are updated at each time step. Definition at line 289 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), setUpdateMode(), and SpikeStreamSimulation(). |
|
|
Controls whether all synapse classes are updated at each time step. Definition at line 292 of file SpikeStreamSimulation.h. Referenced by sendSpikeMessages(), setUpdateMode(), and SpikeStreamSimulation(). |
1.4.4