-
Notifications
You must be signed in to change notification settings - Fork 390
Fix issue: #3532: Disconnect issue with CompressedSpikes:ON/Off #3536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
@med-ayssar Thanks for your detective work and the PR! I will look at it in detail asap. |
heplesser
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@med-ayssar Thanks for the PR! I am not entirely sure I follow the logic around nth_equal(), see comments below.
I also wonder if, for the uncompressed case, we should not take a different approach. In that case, I believe, we simply need to run through all connections of a given synapse type linearly and disconnect the first one for which source and target match, and which has not yet been disconnected. I guess that means parallel iteration through source and target tables. The split into find_first_source() and find_first_target() does not make sense in that case.
We also need some tests, including tests where there are multiple connections between the same source-target pair and we delete one at a time.
|
@heplesser: Is it possible to setup a meeting to discuss this? Any time after 17:30 should work for me. |
|
Fair enough, but remember, the source table is not always sorted ( compressed spikes are off ). Otherwise the PR is ready for reviewing. |
Co-authored-by: med-ayssar <med.ayssar@gmail.com>
|
@med-ayssar Have you had time to look at the open comments? |
heplesser
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @med-ayssar! Thanks, this looks very good now. I will shortly send you a small PR which removes a few unused imports and an unused method, and adds/improves doxygen comments. Once that is merged, I will approve.
Remove unused imports/methods and improve doxygen documentation
heplesser
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@med-ayssar Thanks, all fine now from my side.
Fix for #3532
The main issue occurs when CompressedSpikes is disabled — the wrong connection gets deleted. The following image illustrates the problem."
Issues:
With
compressed-spikesoff,std::lower_boundwas being applied onunsortedvector.With
compressed-spikesoff, and regardless of (1), disconnecting a connection was not implemented correctly, because the query on thesnode_idandtnode_iddelivers a wronglcid.While testing, I discovered that disconnecting a connection, it changes the entry in the
sourceTable, and when working with a sortedsourceTable(compressed-spikes=true), we might get anundefined behaviour