View on GitHub

Graphitti

A project to facilitate construction of high-performance neural simulations

Object Notes

summationPoints

summation points for a vertex. setup() methods are allocating internal storage for summationPoints

Methood Notes

setup()

setup is copying global variables relevant to a specific class. parameters specific to a class are not being grabbed by setup; the method only requires the object to be setup.

setupVertices()

New Architecture notes

Smart pointers

Wherever possible, Graphitti is written using smart pointers. There are three

testing

google tests use cmake clion compatible with cmake

Chain of Responsibility

chain node passes in function you want to invoke.

todo:

write story for every class. initialize: alloc mem, init variab, setup params, copy to/from gpu

linked list for each operation

Simulator class

vertices::AllocateMemory

synapses update growth model. not alg that operates at level of synapse. operates at level of long term neuron activity.

STDP synapse. (emily worked on these) ;-‘

under connections: conn growth. conn static.

two different ways of managing connections: one that modified synapse, other that

synapse looks at times of spikes. stdpSynapses vs alldynamicstdpsynapses.

alldynamicstdpsynapses right now is just for future use.

At end we dump out weight matrix. ToDo: we need to do this for intermediate timesteps. weight matrix per timestep in synaptic weight recorder class. # of synapses per neuron

stories for every class:

model - decides on gpu or cpu

connections class connects, destroys

Future Projects for Rebuild:

Timer Class elegant solution


make parammgr singleton

a client needs a single line of code. key value pair. key for param. var by ref. gets back result.

sim object singleton. access via class name. special case of global variable.

Should be able to write results file at end of simulation. - it would be good to check at the beginning to make sure you can write to a file. There are standard ways to open directory at beginning and check if you have writing permissions.