Main Page | Namespace List | Alphabetical List | Class List | Directories | File List | Class Members | File Members

SpikeStreamSimulation Class Reference

#include <SpikeStreamSimulation.h>

List of all members.

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 SimulationClocksimulationClock

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
NeuronTaskHolderneuronTaskHolder
map< unsigned int, int > taskConnGrpMap
map< unsigned int, int > taskNeurGrpMap
map< int, unsigned int > startNeurIDTaskMap
unsigned int simulationType
DBInterface * networkDBInterface
DBInterface * patternDBInterface
DBInterface * deviceDBInterface
DeviceManagerdeviceManager
PatternManagerpatternManager
ClassLoaderclassLoader
unsigned int timeStepsPerPattern
bool delayInLastTimeStep
stack< EarlyMessageearlyMessageStack
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


Detailed Description

The main class for the control of the simulation. This class is spawned from an initiating parent class which acts as the central node for the simulation. Each instance of this class is responsible for simulating part of the neural network - generally a neuron group.

Definition at line 70 of file SpikeStreamSimulation.h.


Constructor & Destructor Documentation

SpikeStreamSimulation::SpikeStreamSimulation  ) 
 

Default constructor - NOT USED.

Definition at line 64 of file SpikeStreamSimulation.cpp.

SpikeStreamSimulation::SpikeStreamSimulation int  argc,
char **  argv
 

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.

SpikeStreamSimulation::~SpikeStreamSimulation  ) 
 

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.

SpikeStreamSimulation::SpikeStreamSimulation const SpikeStreamSimulation  )  [private]
 

Declare copy constructor private so it cannot be used inadvertently.


Member Function Documentation

void SpikeStreamSimulation::addReceivingTask_Neurons int  newTask  )  [private]
 

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().

void SpikeStreamSimulation::addReceivingTask_Spikes int  newTask  )  [private]
 

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().

void SpikeStreamSimulation::addTaskIDToDatabase  )  [private]
 

Inserts this task id into database.

Definition at line 649 of file SpikeStreamSimulation.cpp.

References networkDBInterface, neuronGrpID, systemError(), and thisTaskID.

Referenced by SpikeStreamSimulation().

void SpikeStreamSimulation::cleanUpSimulation  )  [private]
 

Cleans up after the simulation.

Definition at line 675 of file SpikeStreamSimulation.cpp.

References DeviceManager::closeDevice(), and deviceManager.

Referenced by run().

void SpikeStreamSimulation::fireRandomNeurons double  noiseAmount  )  [private]
 

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().

void SpikeStreamSimulation::fireRandomNeurons_synaptic double  noiseAmount  )  [private]
 

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().

void SpikeStreamSimulation::fireSpecifiedNeurons  )  [private]
 

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().

unsigned int SpikeStreamSimulation::getNeuronGrpID  )  [static]
 

Returns the ID of the neuron group that is being simulated by this task.

Definition at line 546 of file SpikeStreamSimulation.cpp.

References neuronGrpID.

double SpikeStreamSimulation::getRandomPercentage  )  [private]
 

Returns a random number between range low and range high.

Definition at line 771 of file SpikeStreamSimulation.cpp.

Referenced by sendSpikeMessages().

void SpikeStreamSimulation::injectNoise  )  [private]
 

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().

bool SpikeStreamSimulation::loadGlobalParameters  )  [private]
 

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().

bool SpikeStreamSimulation::loadNeuronParameters  )  [private]
 

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().

void SpikeStreamSimulation::loadNeurons  )  [private]
 

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().

bool SpikeStreamSimulation::loadNoiseParameters  )  [private]
 

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().

void SpikeStreamSimulation::loadPreSynapticNeuronMaps  )  [private]
 

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().

void SpikeStreamSimulation::loadSimulationData  )  [private]
 

Loads data into simulation.

Definition at line 1277 of file SpikeStreamSimulation.cpp.

References calculateComputeTime, deviceDBInterface, deviceManager, PatternManager::fireNeurons(), NeuronTaskHolder::firingNeuronVector, DeviceManager::getDeviceType(), info, DeviceManager::isInputDevice(), DeviceManager::isOutputDevice(), loadGlobalParameters(), loadNeuronParameters(), loadNeurons(), loadNoiseParameters(), loadPreSynapticNeuronMaps(), loadSynapseParameters(), loadSynapses(), loadTasks(), networkDBInterface, neuronArray, neuronGrpID, neuronTaskHolder, neuronUpdateMap, numberOfNeurons, parentTaskID, patternDBInterface, patternManager, printTID(), SimulationClock::reset(), sendMessage(), setMaxBufferSize(), DeviceManager::setNeuronArray(), PatternManager::setNeuronArray(), DeviceManager::setNeuronUpdateMap(), DeviceManager::setNeuronVector(), simulationClock, simulationDataLoaded, simulationType, startNeuronID, systemError(), thisTaskID, and timeStepsPerPattern.

Referenced by run().

bool SpikeStreamSimulation::loadSynapseParameters  )  [private]
 

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().

void SpikeStreamSimulation::loadSynapses  )  [private]
 

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().

void SpikeStreamSimulation::loadTasks  )  [private]
 

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().

SpikeStreamSimulation SpikeStreamSimulation::operator= const SpikeStreamSimulation  )  [private]
 

Declare assignment private so it cannot be used.

void SpikeStreamSimulation::printSynapseMap  )  [private]
 

Prints out the synapse map for debugging.

Definition at line 1780 of file SpikeStreamSimulation.cpp.

References synapseMap.

Referenced by loadSynapses().

void SpikeStreamSimulation::printTID int  taskID_decimal  )  [static, private]
 

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.

void SpikeStreamSimulation::printTID  )  [static, private]
 

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().

void SpikeStreamSimulation::processSpikeList unsigned int  senderTID,
int  msgTimeStep
[private]
 

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().

void SpikeStreamSimulation::reloadWeights  )  [private]
 

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().

void SpikeStreamSimulation::removeReceivingTask_Neurons int  removeTaskID  )  [private]
 

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().

void SpikeStreamSimulation::removeReceivingTask_Spikes int  removeTaskID  )  [private]
 

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().

void SpikeStreamSimulation::run  )  [private]
 

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().

void SpikeStreamSimulation::saveViewWeights  )  [private]
 

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().

void SpikeStreamSimulation::saveWeights  )  [private]
 

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().

bool SpikeStreamSimulation::sendMessage int  taskID,
int  msgtag,
unsigned int  msgData1,
unsigned int  msgData2,
const char *  charArray
[private]
 

Sends a message containing two unsigned ints and a char string.

Definition at line 2363 of file SpikeStreamSimulation.cpp.

References info, systemError(), and thisTaskID.

bool SpikeStreamSimulation::sendMessage int  taskID,
int  msgtag,
unsigned int  intData,
const char *  charArray
[static, private]
 

Sends a message containing an unsigned int and a char string.

Definition at line 2305 of file SpikeStreamSimulation.cpp.

References info, systemError(), and thisTaskID.

bool SpikeStreamSimulation::sendMessage int  taskID,
int  msgtag,
const char *  charArray
[static, private]
 

Sends a message containing a char string.

Definition at line 2258 of file SpikeStreamSimulation.cpp.

References info, systemError(), and thisTaskID.

bool SpikeStreamSimulation::sendMessage int  taskID,
int  msgtag
[static, private]
 

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().

bool SpikeStreamSimulation::sendNeuronData int  taskID,
int  msgtag,
unsigned int  neuronID,
double *  dataArray,
int  arrayLength
[private]
 

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().

void SpikeStreamSimulation::sendSpikeMessages  )  [private]
 

Instructs the task holders to send the spike messages to the other tasks. At this point messages should have been received from all the tasks connecting to this task and all of the spikes should have been processed. However, the final state of the neurons still needs to be calculated.

Definition at line 2576 of file SpikeStreamSimulation.cpp.

References SimulationClock::advance(), EarlyMessage::bufferID, calculateComputeTime, Neuron::calculateFinalState(), deviceManager, directFiring_noise, earlyMessageStack, endComputeTimeStruct, DeviceManager::fetchData(), PatternManager::fireNeurons(), fireRandomNeurons(), fireRandomNeurons_synaptic(), DeviceManager::getDeviceType(), DeviceManager::getExternalComputeTime_us(), DeviceManager::getExternalSyncDelay(), Neuron::getMonitoringData(), getRandomPercentage(), SimulationClock::getTimeStep(), DeviceManager::isInputDevice(), DeviceManager::isOutputDevice(), PatternManager::loadPatternData(), minTimeStepDuration_us, neuronArray, neuronMonitorMap, neuronMonitorMode, neuronTaskHolder, neuronUpdateMap, noiseEnabled, numberOfNeurons, parentTaskID, patternManager, percentNeurons_noise, printTID(), processSpikeList(), randomPercentNoise, EarlyMessage::senderTID, NeuronTaskHolder::sendFiringNeuronMessages(), sendNeuronData(), sendSynapseData(), setDelayInLastTimeStep(), simulationClock, simulationRunning, simulationType, spikeMessageCount, spikeTaskHolderMap, startComputeTimeStruct, startNeuronID, synapseMap, synapseMonitorMap, synapseMonitorMode, systemError(), EarlyMessage::timeStep, timeStepComputeTime_us, timeStepsPerPattern, updateAllNeurons, updateAllSynapses, DeviceManager::updateDevice(), and DeviceManager::updateNeurons().

Referenced by processSpikeList(), startSimulation(), and stepSimulation().

bool SpikeStreamSimulation::sendSynapseData int  taskID,
int  msgtag,
unsigned int  fromNeurID,
unsigned int  toNeurID,
double *  dataArray,
int  arrayLength
[private]
 

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().

void SpikeStreamSimulation::setDelayInLastTimeStep bool  dly  )  [private]
 

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().

void SpikeStreamSimulation::setMaxBufferSize  )  [private]
 

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().

void SpikeStreamSimulation::setMinTimeStepDuration int  senderTID  )  [private]
 

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().

void SpikeStreamSimulation::setUpdateMode int  senderTID  )  [private]
 

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().

void SpikeStreamSimulation::startNeuronMonitoring int  senderTID,
bool  restart
[private]
 

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().

void SpikeStreamSimulation::startSimulation  )  [private]
 

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().

void SpikeStreamSimulation::startSynapseMonitoring int  senderTID,
bool  restart
[private]
 

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().

void SpikeStreamSimulation::stepSimulation  )  [private]
 

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().

void SpikeStreamSimulation::stopNeuronMonitoring int  senderTID  )  [private]
 

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().

void SpikeStreamSimulation::stopSimulation  )  [private]
 

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().

void SpikeStreamSimulation::stopSynapseMonitoring int  senderTID  )  [private]
 

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().

void SpikeStreamSimulation::systemError const char *  message,
int  messageData1
[static]
 

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().

void SpikeStreamSimulation::systemError const string &  message  )  [static]
 

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().

void SpikeStreamSimulation::systemError const char *  message  )  [static]
 

Writes an error message to the standard output and sends a message to the parent task with the error message.

Definition at line 552 of file SpikeStreamSimulation.cpp.

References errorState, parentTaskID, printTID(), and sendMessage().

Referenced by addTaskIDToDatabase(), DeviceManager::clearSynchronizationDelay(), UDPSynchronizedClient::closeDevice(), DeviceManager::closeDevice(), DeviceManager::DeviceManager(), TCPSynchronizedClient::fetchData(), DeviceManager::fetchData(), DeviceManager::fillDeviceBuffer(), PatternManager::fillPatternArray(), fireSpecifiedNeurons(), ClassLoader::getConnGrpParameterTableName(), DeviceManager::getExternalComputeTime_us(), DeviceManager::getExternalSyncDelay(), ClassLoader::getNeuronParameterTableName(), ClassLoader::getNewNeuron(), ClassLoader::getNewSynapse(), injectNoise(), DeviceManager::loadDeviceInformation(), loadGlobalParameters(), ClassLoader::loadNeuronClasses(), loadNeuronParameters(), loadNeurons(), loadNoiseParameters(), PatternManager::loadPatternData(), PatternManager::loadPatternGroup(), loadSimulationData(), ClassLoader::loadSynapseClasses(), loadSynapseParameters(), loadSynapses(), UDPSynchronizedServer::openSocket(), UDPSynchronizedClient::openSocket(), TCPSynchronizedServer::openSocket(), TCPSynchronizedClient::openSocket(), PatternManager::PatternManager(), processSpikeList(), reloadWeights(), UDPSynchronizedClient::run(), run(), saveViewWeights(), saveWeights(), sendMessage(), sendNeuronData(), UDPSynchronizedServer::sendSpikeData(), TCPSynchronizedServer::sendSpikeData(), sendSpikeMessages(), sendSynapseData(), setDelayInLastTimeStep(), setMinTimeStepDuration(), setUpdateMode(), UDPSynchronizedServer::simulationSynchronizationDelay(), SpikeStreamSimulation(), UDPSynchronizedClient::start(), startNeuronMonitoring(), startSynapseMonitoring(), startTCPClientConnectThread(), startTCPServerConnectThread(), stopNeuronMonitoring(), stopSynapseMonitoring(), and DeviceManager::updateDevice().

void SpikeStreamSimulation::systemError_double const string &  message,
double  messageData1
[static]
 

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().

void SpikeStreamSimulation::systemError_int const string &  message,
int  messageData1
[static]
 

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().

void SpikeStreamSimulation::systemInfo const char *  message,
int  messageData1
[static]
 

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().

void SpikeStreamSimulation::systemInfo const char *  message,
bool  messageData1
[static]
 

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().

void SpikeStreamSimulation::systemInfo const char *  message  )  [static]
 

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().


Member Data Documentation

bool SpikeStreamSimulation::calculateComputeTime [private]
 

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().

ClassLoader* SpikeStreamSimulation::classLoader [private]
 

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<unsigned int, map<string, double>* > SpikeStreamSimulation::connParameterMap [private]
 

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().

bool SpikeStreamSimulation::delayInLastTimeStep [private]
 

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().

DBInterface* SpikeStreamSimulation::deviceDBInterface [private]
 

Definition at line 211 of file SpikeStreamSimulation.h.

Referenced by loadSimulationData(), setDelayInLastTimeStep(), SpikeStreamSimulation(), and ~SpikeStreamSimulation().

DeviceManager* SpikeStreamSimulation::deviceManager [private]
 

Reference to class for handling devices.

Definition at line 214 of file SpikeStreamSimulation.h.

Referenced by cleanUpSimulation(), loadSimulationData(), sendSpikeMessages(), setMinTimeStepDuration(), and ~SpikeStreamSimulation().

bool SpikeStreamSimulation::directFiring_noise [private]
 

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().

stack<EarlyMessage> SpikeStreamSimulation::earlyMessageStack [private]
 

Holds the messages received one time step out of sequence.

Definition at line 231 of file SpikeStreamSimulation.h.

Referenced by processSpikeList(), and sendSpikeMessages().

timeval SpikeStreamSimulation::endComputeTimeStruct [private]
 

Time structure to measure how long each processing loop takes.

Definition at line 265 of file SpikeStreamSimulation.h.

Referenced by sendSpikeMessages(), and SpikeStreamSimulation().

bool SpikeStreamSimulation::errorState = false [static, private]
 

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().

int SpikeStreamSimulation::info [private]
 

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().

unsigned int SpikeStreamSimulation::minTimeStepDuration_us [private]
 

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().

DBInterface* SpikeStreamSimulation::networkDBInterface [private]
 

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().

Neuron** SpikeStreamSimulation::neuronArray [private]
 

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().

unsigned int SpikeStreamSimulation::neuronGrpID = 0 [static, private]
 

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().

unsigned int SpikeStreamSimulation::neuronGrpLength [private]
 

Length of the neuron group being simulated by this task.

Definition at line 167 of file SpikeStreamSimulation.h.

Referenced by loadNeurons().

unsigned int SpikeStreamSimulation::neuronGrpWidth [private]
 

Width of the neuron group being simulated by this task.

Definition at line 164 of file SpikeStreamSimulation.h.

Referenced by loadNeurons().

dense_hash_map<unsigned int, bool, hash<unsigned int> > SpikeStreamSimulation::neuronMonitorMap [private]
 

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().

bool SpikeStreamSimulation::neuronMonitorMode [private]
 

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().

NeuronTaskHolder* SpikeStreamSimulation::neuronTaskHolder [private]
 

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().

unsigned short SpikeStreamSimulation::neuronType [private]
 

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().

dense_hash_map<unsigned int, bool, hash<unsigned int> > SpikeStreamSimulation::neuronUpdateMap [private]
 

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().

bool SpikeStreamSimulation::noiseEnabled [private]
 

Controls whether noise is injected into the neurons.

Definition at line 274 of file SpikeStreamSimulation.h.

Referenced by loadNoiseParameters(), sendSpikeMessages(), and SpikeStreamSimulation().

unsigned int SpikeStreamSimulation::numberOfNeurons [private]
 

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().

int SpikeStreamSimulation::parentTaskID = 0 [static, private]
 

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().

DBInterface* SpikeStreamSimulation::patternDBInterface [private]
 

Definition at line 210 of file SpikeStreamSimulation.h.

Referenced by loadSimulationData(), SpikeStreamSimulation(), and ~SpikeStreamSimulation().

PatternManager* SpikeStreamSimulation::patternManager [private]
 

Reference to class for handling patterns.

Definition at line 217 of file SpikeStreamSimulation.h.

Referenced by loadSimulationData(), sendSpikeMessages(), and ~SpikeStreamSimulation().

double SpikeStreamSimulation::percentNeurons_noise [private]
 

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().

const bool SpikeStreamSimulation::printTIDHex = true [static, private]
 

Controls how the task id is displayed.

Definition at line 234 of file SpikeStreamSimulation.h.

Referenced by printTID().

bool SpikeStreamSimulation::randomPercentNoise [private]
 

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().

SimulationClock * SpikeStreamSimulation::simulationClock [static]
 

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().

bool SpikeStreamSimulation::simulationDataLoaded [private]
 

Records whether all of the simulation data has been loaded.

Definition at line 125 of file SpikeStreamSimulation.h.

Referenced by loadSimulationData(), and SpikeStreamSimulation().

bool SpikeStreamSimulation::simulationRunning [private]
 

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().

bool SpikeStreamSimulation::simulationStarted [private]
 

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().

unsigned int SpikeStreamSimulation::simulationType [private]
 

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().

unsigned int SpikeStreamSimulation::spikeMessageCount [private]
 

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().

unsigned int SpikeStreamSimulation::spikeMessageTotal [private]
 

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<int, TaskHolder*> SpikeStreamSimulation::spikeTaskHolderMap [private]
 

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().

timeval SpikeStreamSimulation::startComputeTimeStruct [private]
 

Time structure to measure how long each processing loop takes.

Definition at line 262 of file SpikeStreamSimulation.h.

Referenced by sendSpikeMessages(), and SpikeStreamSimulation().

map<int, unsigned int> SpikeStreamSimulation::startNeurIDTaskMap [private]
 

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().

unsigned int SpikeStreamSimulation::startNeuronID [private]
 

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().

bool SpikeStreamSimulation::stop [private]
 

In the run method this controls whether the simulation should stop.

Definition at line 117 of file SpikeStreamSimulation.h.

Referenced by run(), and SpikeStreamSimulation().

dense_hash_map<unsigned int, dense_hash_map<unsigned int, Synapse*, hash<unsigned int> >*, hash<unsigned int> > SpikeStreamSimulation::synapseMap [private]
 

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<unsigned int*, Synapse*, synapseKeyCompare> SpikeStreamSimulation::synapseMonitorMap [private]
 

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().

bool SpikeStreamSimulation::synapseMonitorMode [private]
 

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().

double SpikeStreamSimulation::synapticWeight_noise [private]
 

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().

map<unsigned int, int> SpikeStreamSimulation::taskConnGrpMap [private]
 

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().

map<unsigned int, int> SpikeStreamSimulation::taskNeurGrpMap [private]
 

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().

int SpikeStreamSimulation::thisTaskID = 0 [static, private]
 

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().

unsigned int SpikeStreamSimulation::timeStepComputeTime_us [private]
 

Time taken for each time step.

Definition at line 268 of file SpikeStreamSimulation.h.

Referenced by sendSpikeMessages().

unsigned int SpikeStreamSimulation::timeStepsPerPattern [private]
 

How many time steps each pattern will be presented for.

Definition at line 224 of file SpikeStreamSimulation.h.

Referenced by loadSimulationData(), and sendSpikeMessages().

unsigned int* SpikeStreamSimulation::unpackArray [private]
 

Array to unpack the list of spikes into.

Definition at line 251 of file SpikeStreamSimulation.h.

Referenced by processSpikeList(), SpikeStreamSimulation(), and ~SpikeStreamSimulation().

unsigned int SpikeStreamSimulation::unpkFromNeurID [private]
 

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().

unsigned int SpikeStreamSimulation::unpkToNeurID [private]
 

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().

bool SpikeStreamSimulation::updateAllNeurons [private]
 

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().

bool SpikeStreamSimulation::updateAllSynapses [private]
 

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().


The documentation for this class was generated from the following files:
Generated on Mon Sep 3 22:24:34 2007 for SpikeStream Simulation by  doxygen 1.4.4