Installation instructions for NEST 2.10 and earlier¶
These instructions contain only information on points that differ from current versions of NEST. See the installation page for details.
The following are the basic steps to compile and install NEST from source code:
Unpack the tarball:
tar -xzvf nest-simulator-x.y.z.tar.gz
Create a build directory:
Change to the build directory:
with appropriate configuration options
Compile and install by running:
make make install
The GNU readline library is recommended if you use NEST interactively without Python. Although most Linux distributions have GNU readline installed, you still need to install its development package if want to use GNU readline with NEST. GNU readline itself depends on libncurses <or libtermcap on older systems). Again, the development packages are needed to compile NEST.
The GNU Scientific Library is needed by several neuron models, in particular those with conductance based synapses. If you want these models, please install the GNU Scientific Library along with its development packages. We strongly recommend that you install/update to GNU Scientific Library v1.11 or later.
If you want to use PyNEST, we recommend to install the following along with their development packages:
Additionally, NEST depends on a few POSIX libraries which are usually present on all UNIX like operating systems (Linux, Mac OS), so don’t worry. But if you wonder why NEST is difficult to compile on Windows, it is because of these:
libpthread, for threading support
libregexp, for regular expressions.
NEST can be compiled without any external packages; such configuration may be useful e.g. for initial porting to a new supercomputer. However, this implies several restrictions: First, some neuron and synapse models will not be available, as they depend on ODE solvers from the GNU scientific library. Second, the Python extension will not be available, and third, multi-threading and parallel computing facilities will be disabled.
To compile NEST without external packages, use the following command line to configure it:
tar -xzvf nest-simulator-x.y.z.tar.gz mkdir nest-simulator-x.y.z-build cd nest-simulator-x.y.z-build
–prefix=$HOME/opt/nest –without-python –without-readline –without-pthread
To install the packages required for the standard installation use the following command line:
sudo apt-get install build-essential autoconf automake libtool libltdl7-dev libreadline6-dev libncurses5-dev libgsl0-dev python-all-dev python-numpy python-scipy python-matplotlib ipython
Then configure NEST using:
If you need special features, like e.g. support for distributed computing,
you can add command line switches to the call to configure.
will show you all available options. For more information on the installation of
NEST, please see the file INSTALL that is included in the distribution archive
for the version of NEST you want to install.
Known problems for NEST 2.10 and earlier¶
Using the correct compiler¶
We strongly recommend that you use the same compiler version to compile NEST that was used to build Python / OpenMPI. Usually, this will be the system compiler (note: by default, MacPorts compiles using the system compiler). Python displays which compiler it was compiled with at startup.
When compiling NEST with a newer GCC than Python was compiled with, most bets are off, since different GCC versions generate different binary code. PyNEST may then crash Python. Either make sure that gcc and g++ are the system compiler, or force compilation with the system compiler, configure like this (append any other configure options):
../nest-simulator-x.y.z/configure CC=/usr/bin/gcc CXX=/usr/bin/g++
Mac OS X 10.5 and later comes with MPI pre-installed and
work. If you should get an error message like this:
libtool: link: /usr/bin/mpicxx -W -Wall -pedantic -Wno-long-long -O0 -g -DNO_UNUSED_SYN -o .libs/nest main.o neststartup.o -Wl,-bind_at_load ../models/.libs/libmodelmodule.a ../precise/.libs/libprecisemodule.a /Users/plesser/NEST/code/branches/bluegeneP/bld/topology/.lib s/libtopologymodule.dylib /Users/plesser/NEST/code/branches/bluegeneP/bld/developer/.libs/libdevelopermodule.dylib ../nestkernel/.libs/libnest.a ../librandom/.libs /librandom.a ../libnestutil/.libs/libnestutil.a ../sli/.libs/libsli.a -lcurses -lreadline -lpthread -L/opt/local/lib /opt/local/lib/libgsl.dylib /opt/local/lib/libgslcblas.dylib -lm Undefined symbols: "MPI::Comm::Set_errhandler(MPI::Errhandler const&)", referenced from: vtable for MPI::Commin main.o vtable for MPI::Intracommin main.o vtable for MPI::Cartcommin main.o [snip] vtable for MPI::Winin libnestutil.a(libnestutil_la-nest_timemodifier.o) vtable for MPI::Winin libnest.a(libnest_la-ring_buffer.o) ld: symbol(s) not found collect2: ld returned 1 exit status make: *** `nest Error 1
there is most likely a conflict between several MPI installations on your
computer, in the example above with OpenMPI from MacPorts. In this case, you
need to deactivate/uninstall the conflicting MPI installation. It is
unfortunately not trivial to ignore other MPI installations. One brutal
work-around is to edit the
nest/Makefile, in the build directory and add
-L/usr/lib before all other
-L options in the line building NEST.