NESTML 5.3.0 (the current PIP version) and NEST 3.4.0 give me the following new error:
[ 75%] Building CXX object CMakeFiles/izh_stdp_test_module_module.dir/izhikevich__with_stdp_synapse.o In file included from /dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/lib64/izh_stdp_test_module/izhikevich__with_stdp_synapse.cpp:43: /dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/lib64/izh_stdp_test_module/izhikevich__with_stdp_synapse.h:209:8: warning: 'register_stdp_connection' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] void register_stdp_connection( double t_first_read, double delay ); ^ /dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.4-gcc-11.2.0-g3xsuwt/include/nest/archiving_node.h:126:8: note: overridden virtual function is here void register_stdp_connection( double t_first_read, double delay ) override; ^ /dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/lib64/izh_stdp_test_module/izhikevich__with_stdp_synapse.cpp:107:16: warning: unused variable '__resolution' [-Wunused-variable] const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function ^ /dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/lib64/izh_stdp_test_module/izhikevich__with_stdp_synapse.cpp:312:10: warning: unused variable 'get_t' [-Wunused-variable] auto get_t = [origin, lag](){ return nest::Time( nest::Time::step( origin.get_steps() + lag + 1) ).get_ms(); }; ^ /dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/lib64/izh_stdp_test_module/izhikevich__with_stdp_synapse.cpp:306:16: warning: unused variable '__resolution' [-Wunused-variable] const double __resolution = nest::Time::get_resolution().get_ms(); // do not remove, this is necessary for the resolution() function ^ /dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/lib64/izh_stdp_test_module/izhikevich__with_stdp_synapse.cpp:553:41: error: expression is not assignable S_.post_trace__for_stdp_synapse += 1; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ 4 warnings and 1 error generated. make[2]: *** [CMakeFiles/izh_stdp_test_module_module.dir/build.make:111: CMakeFiles/izh_stdp_test_module_module.dir/izhikevich__with_stdp_synapse.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/izh_stdp_test_module_module.dir/all] Error 2 make: *** [Makefile:152: all] Error 2
Any help is highly appreciated.
Best regards
On Wed, 2 Aug 2023 at 12:35, Hans Ekkehard Plesser < hans.ekkehard.plesser@nmbu.no> wrote:
Dear Stefan,
This looks like a version conflict between NEST and NESTML. In NEST 3.5 we have removed a number of aliases for built-in data types. It looks like your version of NESTML generates code that still relies on the old aliases.
There are two ways forward: Either install NEST 3.4, or get a newer version of NESTML. I don't know which version of NESTML you would need, hope Charl or Pooja can help.
Best,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home http://arken.nmbu.no/~plesser
*From: *Stefan Dvoretskii stefan.dvorezky@gmail.com *Date: *Wednesday, 2 August 2023 at 12:14 *To: *NEST User Mailing List users@nest-simulator.org *Subject: *[NEST Users] Re: Synapses support only one spiking input port
Some people who received this message don't often get email from stefan.dvorezky@gmail.com. Learn why this is important https://aka.ms/LearnAboutSenderIdentification
Dear Charl,
many thanks for your help - it does indeed make sense and starts to compile now! After several days with struggle with NEST on cluster, I am also finally able to run the HPC version we have at LRZ.
However, there is another error occurring - which seems to do either with C++ NEST core or the compiler?
1 2023 13:22:15
This program is provided AS IS and comes with
NO WARRANTY. See the file LICENSE for details.
Problems or suggestions?
Visit https://www.nest-simulator.org
Type 'nest.help()' to find out more about NEST.
-- The CXX compiler identification is Clang 13.0.0
-- Check for working CXX compiler: /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/x86_64/intel-oneapi-compilers/2021.4.0-gcc-xrzccgg/compiler/2021.4.0/linux/bin/icx
-- Check for working CXX compiler: /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/x86_64/intel-oneapi-compilers/2021.4.0-gcc-xrzccgg/compiler/2021.4.0/linux/bin/icx -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
nestmlmodule Configuration Summary
C++ compiler : /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/x86_64/intel-oneapi-compilers/2021.4.0-gcc-xrzccgg/compiler/2021.4.0/linux/bin/icx
Build static libs : OFF
C++ compiler flags :
NEST compiler flags : -std=c++11 -Wall -fopenmp -O2 -fdiagnostics-color=auto -O2 -g -DNDEBUG
NEST include dirs : -I/dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/include/nest -I/dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/libtool/2.4.6-gcc-mggvdji/include -I/dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/readline/8.1-gcc-kl2epb2/include -I/dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/gsl/2.7-gcc-to2yxdj/include -I/dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/intel-mpi/2019.12.320-gcc-5tsyll5/compilers_and_libraries_2020.4.320/linux/mpi/intel64/include
NEST libraries flags : -L/dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/lib64/nest -lnest -lsli -fopenmp /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/libtool/2.4.6-gcc-mggvdji/lib/libltdl.so /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/readline/8.1-gcc-kl2epb2/lib/libreadline.so /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/ncurses/6.2-gcc-47oirry/lib/libncurses.so /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/gsl/2.7-gcc-to2yxdj/lib/libgsl.so /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/gsl/2.7-gcc-to2yxdj/lib/libgslcblas.so /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/intel-mpi/2019.12.320-gcc-5tsyll5/compilers_and_libraries_2020.4.320/linux/mpi/intel64/lib/libmpicxx.so /dss/dsshome1/lrz/sys/spack/release/22.2.1/opt/haswell/intel-mpi/2019.12.320-gcc-5tsyll5/compilers_and_libraries_2020.4.320/linux/mpi/intel64/lib/release/libmpi.so /usr/lib64/librt.so /usr/lib64/libpthread.so /usr/lib64/libdl.so
You can now build and install 'nestmlmodule' using
make
make install
The library file libnestmlmodule.so will be installed to
/dss/dsshome1/00/ge72puf2/spack/opt/linux-sles15-haswell/nest/3.5-gcc-11.2.0-qmxto5u/lib64/nest
The module can be loaded into NEST using
(nestmlmodule) Install (in SLI)
nest.Install(nestmlmodule) (in PyNEST)
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as
cmake_minimum_required(VERSION 3.10)
should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.
-- Configuring done
-- Generating done
-- Build files have been written to: /dss/dsshome1/00/ge72puf2/structfun/target
*Scanning dependencies of target nestmlmodule_module*
[ 25%] Building CXX object CMakeFiles/nestmlmodule_module.dir/nestmlmodule.o
In file included from /dss/dsshome1/00/ge72puf2/structfun/target/nestmlmodule.cpp:47:
/dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:144:9: error: no type named 'port' in namespace 'nest'
nest::port send_test_event(nest::Node& target, nest::rport receptor_type, nest::synindex, bool) override;
/dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:144:56: error: no type named 'rport' in namespace 'nest' nest::port send_test_event(nest::Node& target, nest::rport receptor_type, nest::synindex, bool) override; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:156:9: error: no type named 'port' in namespace 'nest' nest::port handles_test_event(nest::SpikeEvent&, nest::port) override; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:156:58: error: no type named 'port' in namespace 'nest' nest::port handles_test_event(nest::SpikeEvent&, nest::port) override; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:157:9: error: no type named 'port' in namespace 'nest' nest::port handles_test_event(nest::CurrentEvent&, nest::port) override; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:157:60: error: no type named 'port' in namespace 'nest' nest::port handles_test_event(nest::CurrentEvent&, nest::port) override; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:158:9: error: no type named 'port' in namespace 'nest' nest::port handles_test_event(nest::DataLoggingRequest&, nest::port) override; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:158:66: error: no type named 'port' in namespace 'nest' nest::port handles_test_event(nest::DataLoggingRequest&, nest::port) override; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:260:22: error: no type named 'port' in namespace 'nest' static const nest::port MIN_SPIKE_RECEPTOR = 0; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:261:22: error: no type named 'port' in namespace 'nest' static const nest::port PORT_NOT_AVAILABLE = -1; ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:512:14: error: no type named 'port' in namespace 'nest' inline nest::port izhikevich::send_test_event(nest::Node& target, nest::rport receptor_type, nest::synindex, bool) ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:512:73: error: no type named 'rport' in namespace 'nest' inline nest::port izhikevich::send_test_event(nest::Node& target, nest::rport receptor_type, nest::synindex, bool) ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:522:14: error: no type named 'port' in namespace 'nest' inline nest::port izhikevich::handles_test_event(nest::SpikeEvent&, nest::port receptor_type) ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:522:75: error: no type named 'port' in namespace 'nest' inline nest::port izhikevich::handles_test_event(nest::SpikeEvent&, nest::port receptor_type) ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:535:14: error: no type named 'port' in namespace 'nest' inline nest::port izhikevich::handles_test_event(nest::CurrentEvent&, nest::port receptor_type) ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:535:77: error: no type named 'port' in namespace 'nest' inline nest::port izhikevich::handles_test_event(nest::CurrentEvent&, nest::port receptor_type) ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:548:14: error: no type named 'port' in namespace 'nest' inline nest::port izhikevich::handles_test_event(nest::DataLoggingRequest& dlr, nest::port receptor_type) ~~~~~~^ /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich.h:548:87: error: no type named 'port' in namespace 'nest' inline nest::port izhikevich::handles_test_event(nest::DataLoggingRequest& dlr, nest::port receptor_type) ~~~~~~^ In file included from /dss/dsshome1/00/ge72puf2/structfun/target/nestmlmodule.cpp:49: /dss/dsshome1/00/ge72puf2/structfun/target/izhikevich__with_stdp_synapse.h:164:9: error: no type named 'port' in namespace 'nest' nest::port send_test_event(nest::Node& target, nest::rport receptor_type, nest::synindex, bool) override; ~~~~~~^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. Are there any ideas as to what can be done to solve this issue? Best regards, Stefan On Fri, 28 Jul 2023 at 20:21, Charl Linssen <nest-users@turingbirds.com> wrote: Hi, My apologies for the confusing error message. It occurs because you have to explicitly tell NESTML which postsynaptic neuron type it is connected to in the simulation. You can see an example of that here: https://github.com/nest/nestml/blob/003d17a6425c3f8d88ed3aedd8d8e1d76245966e/tests/nest_tests/stdp_window_test.py#L58 The port is then assigned as "postsynaptic" and it is not considered for the error that you are seeing. Please let me know if you run into any further trouble. With kind regards, Charl On Thu, Jul 27, 2023, at 12:25, Stefan Dvoretskii wrote: Hello, I am using an example synapse model which utilizes both post and pre spikes (nestml/models/synapses/stdp_nn_symm.nestml at master · nest/nestml (github.com) <https://github.com/nest/nestml/blob/master/models/synapses/stdp_nn_symm.nestml> ). I get an error: ... File "/dss/dsshome1/00/ge72puf2/.conda/envs/nest/lib/python3.8/site-packages/pynestml/codegeneration/nest_code_generator.py", line 469, in _get_synapse_model_namespace assert len(namespace["pre_ports"]) <= 1, "Synapses only support one spiking input port" AssertionError: Synapses only support one spiking input port It is confusing: can I or can I not use a model with 2 synaptic inputs (post and pre)? Is that a version thing? Best regards, -- Stefan _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org -- Stefan Dvoretskii _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org