Page 1 of 1

multiple signals to a single POINT_PROCESS and thread safety of a POINTER.

Posted: Fri Jan 24, 2020 5:37 am
by ziemek

I have a STDP-like POINT_PROCESS which I want to modulate with additional Dopamine stimulation (another POINT_PROCESS). I created a dummy da.mod POINT_PROCESS which only receives weight which is read by the STDP-like POINT_PROCESS (through POINTER). Then the weight on the dummy da.mod is zero-out.

However POINTERs are not thread safe. I only pass the weight in a single step so maybe there is a way to ensure those 2 POINT_PROCESSes run on the same Thread? Or is there any other way to pass multiple signals (with different timing) to the single POINT_PROCESS and remain it thread safe?

Re: multiple signals to a single POINT_PROCESS and thread safety of a POINTER.

Posted: Fri Jan 24, 2020 11:34 am
by ted
How about approching the problem in a way that completely eliminates the need for pointers? The strategy depends on whether dopaminergic modulation of plasticity is stream-specific (selectively affects individual synapses) or not stream-specific (e.g. mediated by an intracellular second messenger that can affect multiple synapses that are attached to a particular compartment).

If dopaminergic modulation is not stream-specific, the second messenger can be treated as if it were an ionic species called damsg. damsg would be perturbed by a point process mechanism called DASyn that WRITEs idamsg, and the concentration of damsg would be calculated by a damsg-accumulation mechanism that READs idamsg and WRITEs damsgi. Then any synaptic mechanism that is modulated by dopamine can discover the local concentration by READing damsgi.

Stream-specific modulation of plasticity can be implemented by modifying the NET_RECEIVE block of your hebbian or non-hebbian synaptic mechanism so that it can take appropriate action depending on whether an input event is from a "normal" presynaptic neuron or from a dopaminergic neuron. The trick is to exploit the sign of the synaptic weight. During model setup, assign positive weights to connections that are not dopaminergic, and negative weights to dopaminergic connections. Then the NET_RECEIVE block can check for w < 0 to determine whether an event is from a dopaminergic or non-dopaminergic source.

This brief discussion only introduces strategies and omits important implementational details. To provide more specific guidance, I'll need to know more about what you intend and what you have already done.