0

When installing NEST 2.18 with:

cmake \
  -Dwith-mpi=/usr/lib/x86_64-linux-gnu/openmpi \
  -Dwith-python=3 \
  -DPYTHON_EXECUTABLE=/home/robin/.pyenv/versions/3.8.6/bin/python \
  -DPYTHON_LIBRARY=/home/robin/.pyenv/versions/3.8.6/lib/libpython3.8.so \
  -DPYTHON_INCLUDE_DIR=/home/robin/.pyenv/versions/3.8.6/include/python3.8/ \
  -DCMAKE_INSTALL_PREFIX=/home/robin/nest-install \
  ..

It seems that NEST 2.18 tries to look for libmpi_cxx.so.20 even though it doesn't exist and isn't part of the installed mpi lib

$ ldd nest-install/lib/python3.8/site-packages/nest/pynestkernel.so 
    linux-vdso.so.1 (0x00007fff3bb37000)
    libpython3.8.so.1.0 => /home/robin/.pyenv/versions/3.8.6/lib/libpython3.8.so.1.0 (0x00007feaa1401000)
    libnest.so => /nest/2.18/lib/libnest.so (0x00007feaa11c1000)
    libmodels.so => /nest/2.18/lib/libmodels.so (0x00007feaa0930000)
    libtopology.so => /nest/2.18/lib/libtopology.so (0x00007feaa0691000)
    libnestkernel.so => /nest/2.18/lib/libnestkernel.so (0x00007feaa0335000)
    librandom.so => /nest/2.18/lib/librandom.so (0x00007feaa00e9000)
    libsli.so => /nest/2.18/lib/libsli.so (0x00007fea9fd9a000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fea9fba1000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fea9fb86000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fea9f994000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fea9f971000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fea9f969000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fea9f964000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fea9f815000)
    libprecise.so => /nest/2.18/lib/libprecise.so (0x00007fea9f592000)
    libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007fea9f587000)
    libmpi_cxx.so.20 => /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so.20 (0x00007fea9f567000)
    libmpi.so.20 => not found
    libnestutil.so => /nest/2.18/lib/libnestutil.so (0x00007fea9f363000)
    libgsl.so.23 => /usr/lib/x86_64-linux-gnu/libgsl.so.23 (0x00007fea9f0e7000)
    libgslcblas.so.0 => /usr/lib/x86_64-linux-gnu/libgslcblas.so.0 (0x00007fea9f0a5000)
    libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fea9f063000)
    /lib64/ld-linux-x86-64.so.2 (0x00007feaa180a000)
    libmpi.so.20 => not found
    libmpi.so.20 => not found
    libmpi.so.20 => not found
    libmpi.so.20 => not found
    libmpi.so.40 => /usr/local/lib/libmpi.so.40 (0x00007fea9ed39000)
    libopen-rte.so.40 => /usr/local/lib/libopen-rte.so.40 (0x00007fea9ea83000)
    libopen-pal.so.40 => /usr/local/lib/libopen-pal.so.40 (0x00007fea9e76b000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fea9e760000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fea9e744000)

I've tried to change all of the cmake variables using ccmake but I can't get it to link to libmpi_cxx.so.40.

Even without MPI support it includes this link, seems like a bug?

robin@robin-ZenBook-UX533FN:~$ ldd nest-install/lib/python3.8/site-packages/nest/pynestkernel.so 
    linux-vdso.so.1 (0x00007ffe63518000)
    libpython3.8.so.1.0 => /home/robin/.pyenv/versions/3.8.6/lib/libpython3.8.so.1.0 (0x00007fa1e3c37000)
    libnest.so => /nest/2.18/lib/libnest.so (0x00007fa1e39f7000)
    libmodels.so => /nest/2.18/lib/libmodels.so (0x00007fa1e3166000)
    libtopology.so => /nest/2.18/lib/libtopology.so (0x00007fa1e2ec7000)
    libnestkernel.so => /nest/2.18/lib/libnestkernel.so (0x00007fa1e2b6b000)
    librandom.so => /nest/2.18/lib/librandom.so (0x00007fa1e291f000)
    libsli.so => /nest/2.18/lib/libsli.so (0x00007fa1e25d0000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa1e23d7000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa1e23bc000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa1e21ca000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa1e21a7000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa1e219f000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fa1e219a000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa1e204b000)
    libprecise.so => /nest/2.18/lib/libprecise.so (0x00007fa1e1dc8000)
    libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007fa1e1dbd000)
    libmpi_cxx.so.20 => not found
    libmpi.so.20 => not found
    libnestutil.so => /nest/2.18/lib/libnestutil.so (0x00007fa1e1bb7000)
    libgsl.so.23 => /usr/lib/x86_64-linux-gnu/libgsl.so.23 (0x00007fa1e193b000)
    libgslcblas.so.0 => /usr/lib/x86_64-linux-gnu/libgslcblas.so.0 (0x00007fa1e18f9000)
    libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fa1e18b7000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fa1e4040000)
    libmpi_cxx.so.20 => not found
    libmpi.so.20 => not found
    libmpi_cxx.so.20 => not found
    libmpi.so.20 => not found
    libmpi_cxx.so.20 => not found
    libmpi.so.20 => not found
    libmpi_cxx.so.20 => not found
    libmpi.so.20 => not found

The full error when importing it is:

>>> import nest
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/robin/nest-install/lib/python3.8/site-packages/nest/__init__.py", line 26, in <module>
    from . import ll_api      # noqa
  File "/home/robin/nest-install/lib/python3.8/site-packages/nest/ll_api.py", line 72, in <module>
    from . import pynestkernel as kernel      # noqa
ImportError: libmpi_cxx.so.20: cannot open shared object file: No such file or directory
Robin De Schepper
  • 4,942
  • 4
  • 35
  • 56
  • 1
    Hi! Could you check if cmake finds boost and in which version? Boost comes with it's own OpenMPI dependency nowadays, and we saw this conflicting with other OpenMPI installations under various circumstances already. Could be the reason for the unexpected link. – TerhorstD Oct 29 '20 at 10:55

0 Answers0