-
Notifications
You must be signed in to change notification settings - Fork 374
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
Maximum number of connections with fixed_total_number #1574
Comments
@hakonsbm could you please take a look at this? |
When using With an
is when the check that the specified value is within this limit fails, here: nest-simulator/librandom/gsl_binomial_randomdev.cpp Lines 95 to 103 in d713087
It is therefore not currently possible to create more than Note that with the new random generator setup developed for NEST 3.0 (#1549), number of trials for the binomial distribution is given as an |
Thanks for the more detailed explanation, @hakonsbm. This is precisely what I tried to express in the issue. Once #1549 is merged, the increase to Still, I think that this is an undesired behavior - why should there by an upper limit on the number of connections? In particular, I don't understand why the number of connection have to be binomially distributed across the VPs and not simply give each VP the same number of connections (which would immediately fix this issue as far as I can see). Clearly, that's entirely due to me not being familiar with these NEST internals. Could you elaborate on this just for my information (or point me to the relevant reference)? |
I'm not sure why it's done this way. Maybe @heplesser or @jougs knows? |
@AlexVanMeegen Strictly speaking, it is not a binomal, but a multinomial distribution. If we assigned a fixed number of connections to each VP, we would introduce a regularity on the connection pattern that should not be there. For the most extreme case, consider that the number of VPs is equal to the number of connections to be created: Then we would have exactly on connection per VP, which certainly is too regular. You may find a more detailed discussion in the original Potjans & Diesmann (2014) paper. Note also that 2^64 ~ 10^19, while there are only an estimated 10^15 synapses in the human brain—so we should be safe ;). |
Thanks for the explanations and the reference, @heplesser and @hakonsbm! |
Describe the bug
With
fixed_total_number
, it is not possible to create more than2^32 - 1
synapses in a singleconnect
call independent of the number of virtual processes. ABadParameterValue
exception is thrown.To Reproduce
Run this minimal example in any parallelization setup of your liking with a recent NEST version (probably after after #1299): max_fixed_total_number.zip
Additional context
It seems to me that the problem arises when the connections are assigned to the virtual processes using a binomial distribution, i.e. here in the current master. In the first run of the loop, all synapses have to be distributed and thus
N
equals the total number of synapses on all virtual processes.Hat tip and big thanks to @jarsi for helping me to get this far.
The text was updated successfully, but these errors were encountered: