Page 1 of 1

Number of spikes decrease in parallel run

Posted: Mon Jun 06, 2016 12:09 am
by Krishna Chaitanya
Hi,

I have tried to compare serial and parallel versions of my network code. In parallel run, as the number of processes increased, the total number of spikes decreased. Let's say, with np 1, total number of spikes observed is 58000 and with np 2, the number of spikes decreased to 38000. In the serial run, I get total number of spikes as 58000. With np 4, the number of spikes observed is 8000.

I have checked if the postsynaptic neuron is receiving same connections as in serial run and it's the same. But I couldn't figure out how the spikes are lost.

Is there a way to debug this kind of problem? Kindly let me know.

Thanks in anticipation.

Re: Number of spikes decrease in parallel run

Posted: Mon Jun 06, 2016 1:20 am
by ted
You are right to be concerned. A program that has been parallelized correctly should produce identical results regardless of how many processors are used to execute the simulation.

The first step in parallelizing a network model is to associate each cell with a gid (unique global identifier).

"But the result of that transformation is code that executes only on a single processor. Why is that useful?"

It is useful because the second step is to generate an output file that captures the times of all spikes, with each spike time paired with the gid of the cell that spiked. Sort that file by spike time as the first key and gid as the second key. The result is a file that you can use to verify that your subsequent code revisions haven't broken anything. If a bug creeps into your implementation, that file will help you verify that you are indeed recording from all the cells in the parallelized model. Identify the cell in which the earliest spike time discrepancy between [original serial implementation] and [parallelized implementation] is seen. Does the cell itself have the correct anatomical and biophysical properties, and has it been correctly discretized? Make sure that your parallelized code attaches the correct number of synaptic mechanisms to it, and that they're at the correct locations. Is each of those synaptic mechanisms driven by the correct number of NetCons? Check the sources, weights, and delays of those NetCons.

Re: Number of spikes decrease in parallel run

Posted: Mon Jun 06, 2016 4:11 am
by Krishna Chaitanya
Thanks a lot Ted. Will do that and see if I can figure out.