Hey all!
First time poster here on the mailing list, so don't hesitate to correct me or ask for more information. I'm building a container to package a simulation, but I've ran into an unusual issue that I can't seem to fix: MUSIC proxy nodes are found and created correctly from NEST SLI, but raise `nest.lib.hl_api_exceptions.NESTErrors.UnknownModelName` when created from pyNEST.
Here's some more info about my setup. - Both MUSIC and NEST are built from source (`git clone --depth 1 --branch v3.7 https://github.com/nest/nest-simulator/%60) - I've tried both `-Dwith-music=ON` and `-Dwith-music=$MUSIC_INSTALL_DIR` to no avail. I'll keep the latter. - other flags are `-Dwith-mpi=ON -Dwith-openmp=ON -Dwith-ltdl=ON` - here are the relevant sections of the cmake output (full output at the end)
``` #18 11.02 Python bindings : Yes (Python 3.10.17: /sim/venv/bin/python3) #18 11.02 Includes : /usr/local/include/python3.10 #18 11.02 Libraries : #18 11.02 Cython : Yes (Cython 3.0.12: /sim/venv/bin/cython) #18 11.02 MPI4Py : Yes (/sim/venv/lib/python3.10/site-packages/mpi4py/include) ... #18 11.02 Use MUSIC : Yes (MUSIC 1.2.1) #18 11.02 Includes : /sim/install/music/include #18 11.02 Libraries : /sim/install/music/lib/libmusic.so ```
- the presence of MUSIC version in `cmake` output makes me hopeful that it's found correctly - image based on Debian 12 (`FROM python:3.10-slim-bookworm AS runner`) - first thing i do is create a venv and set it as first in path (`ENV PATH="$VIRTUAL_ENV/bin:$PATH"`) - when i attempt to run the [MUSIC with pyNEST example](https://nest-simulator.readthedocs.io/en/stable/tutorials/music_tutorial/mus...) i get `nest.lib.hl_api_exceptions.NESTErrors.UnknownModelName: UnknownModelName in SLI function Create_l_i: /music_event_in_proxy is not a known model name.`, while running the [MUSIC in SLI example](https://nest-simulator.readthedocs.io/en/stable/tutorials/music_tutorial/mus...) works correctly - i read the [official Dockerfile](https://github.com/nest/nest-docker/blob/master/src/3.8/Dockerfile) but I couldn't spot any steps I might be missing, the [cmake options](https://nest-simulator.readthedocs.io/en/stable/installation/cmake_options.h...), the [install_music.sh script](https://github.com/nest/nest-simulator/blob/master/build_support/install_mus...), the [docker entrypoint](https://github.com/nest/nest-docker/blob/master/src/3.8/entrypoint.sh) and the $NEST_INSTALL_DIR/bin/nest_vars.sh scripts, but I didn't find anything other than what I already had. - I'm guessing this is user error on my part, hence the mailing list instead of github issues.
If necessary I can share a smaller version of the dockerfile... not sure what else to try. On one hand, I'd think of a compilation issue, but the cmake output and the fact that SLI works correctly makes me doubt so. On the other, I might be missing an env var, but from what I could gather in pyNEST `nest.node_models` is asked to the kernel, which correctly creates the node when called from the SLI... Is there any esoteric configuration I might've missed?
I'll take any and all suggestions!
Thanks a lot, Paolo
full cmake output: ``` #18 11.02 -------------------------------------------------------------------------------- #18 11.02 NEST Configuration Summary #18 11.02 -------------------------------------------------------------------------------- #18 11.02 #18 11.02 Target System : Linux #18 11.02 Cross Compiling : FALSE #18 11.02 C compiler : GNU 12.2.0 (/usr/bin/cc) #18 11.02 C compiler flags : -Wall -fopenmp -O2 -fdiagnostics-color=auto #18 11.02 C++ compiler : GNU 12.2.0 (/usr/bin/c++) #18 11.02 C++ compiler flags : -std=c++17 -Wall -fopenmp -O2 -fdiagnostics-color=auto #18 11.02 Build dynamic : ON #18 11.02 #18 11.02 Built-in modelset : full #18 11.02 #18 11.02 Python bindings : Yes (Python 3.10.17: /sim/venv/bin/python3) #18 11.02 Includes : /usr/local/include/python3.10 #18 11.02 Libraries : #18 11.02 Cython : Yes (Cython 3.0.12: /sim/venv/bin/cython) #18 11.02 MPI4Py : Yes (/sim/venv/lib/python3.10/site-packages/mpi4py/include) #18 11.02 #18 11.02 Documentation : No #18 11.02 #18 11.02 Use threading : Yes (OpenMP: -fopenmp) #18 11.02 Libraries : /usr/lib/gcc/x86_64-linux-gnu/12/libgomp.so;/usr/lib/x86_64-linux-gnu/libpthread.a #18 11.02 #18 11.02 Use GSL : Yes (GSL 2.7.1) #18 11.02 Includes : /usr/include #18 11.02 Libraries : /usr/lib/x86_64-linux-gnu/libgsl.so;/usr/lib/x86_64-linux-gnu/libgslcblas.so #18 11.02 #18 11.02 Use Readline : Yes (GNU Readline 8.2) #18 11.02 Includes : /usr/include #18 11.02 Libraries : /usr/lib/x86_64-linux-gnu/libreadline.so;/usr/lib/x86_64-linux-gnu/libncurses.so #18 11.02 #18 11.02 Use libltdl : Yes (LTDL 2.4.7) #18 11.02 Includes : /usr/include #18 11.02 Libraries : /usr/lib/x86_64-linux-gnu/libltdl.so #18 11.02 #18 11.02 Use MPI : Yes (MPI: /usr/bin/mpicxx) #18 11.02 Includes : /usr/lib/x86_64-linux-gnu/openmpi/include;/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi #18 11.02 Libraries : /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so;/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so #18 11.02 Launcher : /usr/bin/mpiexec -n <np> <prog> <args> #18 11.02 #18 11.02 Detailed timers : No #18 11.02 #18 11.02 Use MUSIC : Yes (MUSIC 1.2.1) #18 11.02 Includes : /sim/install/music/include #18 11.02 Libraries : /sim/install/music/lib/libmusic.so #18 11.02 #18 11.02 Use libneurosim : No #18 11.02 #18 11.02 Use Boost : Yes (Boost 1.74.0) #18 11.02 Includes : /usr/include #18 11.02 Libraries : #18 11.02 #18 11.02 Use SIONlib : No #18 11.02 #18 11.02 Use HDF5 : No #18 11.02 #18 11.02 For details on setting specific flags for your MPI launcher command, see the #18 11.02 CMake documentation at https://cmake.org/cmake/help/latest/module/FindMPI.html #18 11.02 #18 11.02 -------------------------------------------------------------------------------- #18 11.02 #18 11.02 The NEST executable will be installed to: #18 11.02 /sim/install/nest/bin/ #18 11.02 #18 11.02 NEST dynamic libraries and user modules will be installed to: #18 11.02 /sim/install/nest/lib/nest/ #18 11.02 #18 11.02 PyNEST will be installed to: #18 11.02 /sim/install/nest/lib/python3.10/site-packages #18 11.02 #18 11.02 To set necessary environment variables, add the following line #18 11.02 to your ~/.bashrc : #18 11.02 source /sim/install/nest/bin/nest_vars.sh #18 11.02 #18 11.02 -------------------------------------------------------------------------------- #18 11.02 #18 11.02 You can now build and install NEST with #18 11.02 make #18 11.02 make install #18 11.02 make installcheck #18 11.02 #18 11.02 If you experience problems with the installation or the use of NEST, #18 11.02 please see https://www.nest-simulator.org/frequently_asked_questions #18 11.02 or go to https://www.nest-simulator.org/community to find out how to #18 11.02 join the user mailing list. #18 11.02 ```