Warning
This version of the documentation is NOT an official release. You are looking at ‘latest’, which is in active and ongoing development. You can change versions on the bottom left of the screen.
Ubuntu/Debian Installation¶
Dependencies¶
To build NEST, you need a recent version of CMake and libtool; the latter should be available for most systems and is probably already installed.
Note
NEST requires CMake 3.12 or higher, but we recommend version 3.16. You can type cmake --version
on the
commandline to check your current version.
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 you 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.
For efficient sorting algorithms the Boost library is used. Since this is an essential factor for the communication of spikes, some simulations are significantly faster when NEST is compiled with Boost.
If you want to use PyNEST, we recommend to install the following along with their development packages:
Installation from source in a virtual Python environment¶
The following are the basic steps to compile and install NEST from source code. See the CMake Options or the High Performance Computing instructions to further adjust settings for your system.
If not already installed on your system, the following packages are recommended (see also the Dependencies section)
sudo apt install -y \
cython \
libgsl-dev \
libltdl-dev \
libncurses-dev \
libreadline-dev \
openmpi-bin \
libopenmpi-dev
When NEST is installed with Python and without
cmake
option-DCMAKE_INSTALL_PREFIX=<nest_install_dir>
, only virtual environments are supported. Activate the virtual environment you want to use, or if you don’t already have one, create a new virtual environment for NEST:
python -m venv nest_env
source nest_env/bin/activate
Unpack the tarball
tar -xzvf nest-simulator-x.y.z.tar.gz
Create a build directory:
mkdir nest-simulator-x.y.z-build
Change to the build directory:
cd nest-simulator-x.y.z-build
Configure NEST. You may need additional
cmake
options (see CMake Options for NEST).
cmake </path/to/NEST/src>
Compile and install NEST:
make
make install
make installcheck
NEST should now be successfully installed in your active Python environment.
See the Getting started pages to find out how to get going with NEST or check out our example networks.
Installation from source without a virtual Python environment¶
The following are the basic steps to compile and install NEST from source code. See the CMake Options or the High Performance Computing instructions to further adjust settings for your system.
If not already installed on your system, the following packages are recommended (see also the Dependencies section)
sudo apt install -y \
cython \
libgsl-dev \
libltdl-dev \
libncurses-dev \
libreadline-dev \
python3-all-dev \
python3-numpy \
python3-scipy \
python3-matplotlib \
python3-nose \
python3-junitparser \
python3-mpi4py \
openmpi-bin \
libopenmpi-dev
Unpack the tarball
tar -xzvf nest-simulator-x.y.z.tar.gz
Create a build directory:
mkdir nest-simulator-x.y.z-build
Change to the build directory:
cd nest-simulator-x.y.z-build
Configure NEST. You may need additional
cmake
options (see CMake Options for NEST). Installing NEST with Python outside a virtual Python environment requires thecmake
option-DCMAKE_INSTALL_PREFIX=<nest_install_dir>
.
cmake -DCMAKE_INSTALL_PREFIX:PATH=<nest_install_dir> </path/to/NEST/src>
Note
/install/path
should be an absolute path
Note
Python bindings are enabled by default. Add the configuration option -Dwith-python=OFF
to disable them.
Compile and install NEST:
make
make install
make installcheck
NEST should now be successfully installed on your system.
Before using NEST, make sure that all required environment variables are set correctly. In short, this can be established by sourcing the shell script
nest_vars.sh
, which is installed into the path for binaries selected during the CMake run. See the section Environment variables for details.See the Getting started pages to find out how to get going with NEST or check out our example networks.
What gets installed where¶
By default, everything will be installed to the subdirectories <nest_install_dir>/{bin,lib,share}
, where
/install/path
is the install path given to cmake
:
Executables
<nest_install_dir>/bin
Dynamic libraries
<nest_install_dir>/lib/
SLI libraries
<nest_install_dir>/share/nest/sli
Documentation
<nest_install_dir>/share/doc/nest
Examples
<nest_install_dir>/share/doc/nest/examples
PyNEST
<nest_install_dir>/lib/pythonX.Y/site-packages/nest
PyNEST examples
<nest_install_dir>/share/doc/nest/examples/pynest
Extras
<nest_install_dir>/share/nest/extras/
If you want to run the nest
executable or use the nest
Python module without providing explicit paths, you
have to add the installation directory to your search paths.
Please refer to the next section section for this.
Environment variables¶
A number of environment variables are used to specify where the components of a NEST installation are found. In particular when installing to a custom directory, it is typically necessary to explicitly set these variables, so that your operating system can find the NEST binaries, its libraries and custom extension modules.
For your convenience, a shell script setting all required environment variables is provided in
<nest_install_dir>/bin/nest_vars.sh
. Setting the environment variables in your active shell session requires
sourcing the script:
source <nest_install_dir>/bin/nest_vars.sh
You may want to include this line in your .bashrc
file, so that the environment variables are set automatically
whenever you open a new terminal.
The following variables are set in nest_vars.sh
:
Variable |
Description |
---|---|
|
Search path for non-standard Python module locations. Will be newly set or prepended to the already existing variable if it is already set. |
|
Search path for binaries. Will be newly set or prepended to the already existing variable if it is already set. |
If your operating system does not find the nest
executable or if Python does not find the nest
module, your
path variables may not be set correctly. This may also be the case if Python cannot load the nest
module due to
missing or incompatible libraries.