-
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
Assertion failed: (source_lid < MAX_LID) for GetConnections in Small Neural networks #1489
Comments
I can reproduce the problem under OSX 10.14 and 10.15, but only when installing from conda-forge (nompi-variant). The assertion is not triggered if I build NEST from source. Here is a reproducer in SLI:
The assertion is not triggered if I create only 8 neurons and split them in two groups of 4. Indeed, it turns out that the absolute minimum required to trigger the assertion is a single group of five neurons connected to itself:
triggering the same exception. Instead of calling
|
@steffengraber Could you for debugging purposes create a conda recipe that builds NEST as bare-bones as possible, especially without GSL, possibly also with ncurses and readline? BTW, Conda is throwing in a lot of additional compiler flags, as revealed by running
I experimented with adding some of them to my local build, but that did not cause the problem. I also traced library loading. When running the conda-installed NEST version,
and those are different files. Bending some paths, I made the first be the second, so only one Or is there any way to build (compile) a conda package locally to be able to do some more debugging? |
@steffengraber did excellent detective work, so it is now clear that building NEST with Boost causes the problem. The problem occurs under Linux and macOS and, if present, also leads to some failing tests. It is not clear why the problem does not lead to failing tests on Travis. As a work-around, one can either build NEST locally without Boost (the default) or install the following versions from Conda, which do not include Boost: Linux
macOS
.. |
@heplesser Looks like it can be related to #1239, then. |
@hakonsbm Indeed! I tested this in the debugger now and have found the following: When the assertion triggers here, we have
This is the result of VPManager::gid_to_lid() when called with I suspect that the problem is related to sorting, since that is where Boost comes in. Indeed, he following passes
while this does not:
So clearly using Boost for sorting causes the problem. As @niltonlk pointed out in #1239, the problem seems to exist only for Boost 1.69.0 and later, so change in Boost must be breaking our code. @hakonsbm I assigning you to this task since you have most experience with Boost sorting. |
Escalated to critical due to identified incompatiblity with Boost 1.69.0 and later. |
@heplesser Boost is turned OFF in MacOS on Travis |
@lekshmideepu The problem also occurs on Linux, but only if NEST is built with a recent version of Boost (1.69.0 or later). On Travis, we use 1.58.0. Would there be a way to move to a more recent version of Boost on Travis? |
@heplesser sure, I could try with a more recent version of Boost on Travis |
@heplesser Should it be I'm still not able to reproduce the issue on my computer (with Boost 1.72.0). I will keep experimenting. |
@hakonsbm Yes, the problem occurs if connections are sorted. I am using Boost 1.72.0, and @steffengraber had the problems also on Linux (which version?). The problem also occurs with current master, with the code from above then changed to
BTW, on macOS the problem occurs when compiling with clang and with gcc; compiling with gcc requires an additional |
@hakonsbm I had a quick look at the code of Boost 1.68.0 vs 1.69.0. Among other things, |
I have a conda build environment on Ubuntu 19.10 and have now built NEST 2.20.0 with different versions of Boost. A
|
@steffengraber Thanks for testing! The problem seems indeed related to the change from |
Hi, I recently installed NEST 2.20 using Conda on a Linux system (Manjaro 20 OS) and I still experience this same error. Both with and without MPI. Did you update the Conda package with the fix to this issue? I am referring to the package used in this guide: Thanks |
@danxan The fix for this issue will be part of NEST 2.20.1, which is not released yet. |
Edit: @hakonsbm @danxan @heplesser It works for me now after installing Nest from source Hey I think I am having the same issue, but it happens even if I don't use nest.GetConnections(). Just a simple simulation of an interconnected network of >= 5 neurons will cause the error. The following snippet produces it:
Any idea when the next release will be? Cheers! Desktop/Environment (please complete the following information):
|
Describe the bug
Assertion failed: (source_lid < MAX_LID) error querying connectivity with GetConnections for 24 or more connections on Conda installation on Mac os 10.14
To Reproduce
To reproduce the behavior, run the following script
import nest
nest.ResetKernel()
n = 5 # number of neurons
epop1 = nest.Create("iaf_psc_alpha",n)
epop2 = nest.Create("iaf_psc_alpha",n)
nest.Connect(epop1,epop2,{'rule': 'all_to_all'})
conns = nest.GetConnections(epop1,target = epop2)
nest.GetStatus(conns,["target","weight"])
This runs fine for n < 5, but I get the following error with n >=5:
Expected behavior
Assertion failed: (source_lid < MAX_LID), function set_source_lid, file /usr/local/miniconda/conda-bld/nest-simulator_1583214474797/work/nestkernel/target_data.h, line 264.
Abort trap: 6
Note that other scripts run fine, including simulations of larger networks as in example script brunel_alpha_numpy.py .
Desktop/Environment (please complete the following information):
Additional context
Reproduced successfully by Hans Ekkehard
The text was updated successfully, but these errors were encountered: