NEST simulator

NEST is a simulator for spiking neural network models that focuses on the dynamics, size and structure of neural systems rather than on the exact morphology of individual neurons.

The NEST 2.16.0 release does not support 32 bit architectures. This has been fixed, and 32 bit support will be enabled in the next release.

Installing NEST

NEST can be installed on Fedora using the DNF package manager. NEST supports the use of MPI (Message passing interface) for use on clusters and super computers. Fedora includes MPICH and OpenMPI implementations of MPI. NEST can be used with either of these, or without any MPI support. NEST in Fedora is:

  • built with libneurosim support.

  • not currently built with MUSIC support.

  • not currently built with CSA support.

As Python2 will not be maintained past 2020, Python2 is not supported in Fedora 30 onwards. We strongly suggest users use Python3. The available NEST packages are:

  • nest: NEST simulator without MPI support.

  • python2-nest: PyNEST for Python 2 without MPI support (Fedora 28/29 only).

  • python3-nest: PyNEST for Python 3 without MPI support.

  • nest-mpich: NEST simulator built with MPICH support.

  • python2-nest-mpich: PyNEST for Python 2 with MPICH support (Fedora 28/29 only).

  • python3-nest-mpich: PyNEST for Python 3 with MPICH support.

  • nest-openmpi: NEST simulator built with OpenMPI support.

  • python2-nest-openmpi: PyNEST for Python 2 with OpenMPI support (Fedora 28/29 only).

  • python3-nest-openmpi: PyNEST for Python 3 with OpenMPI support.

  • nest-doc: Generated documentation.

Usage

The nest_vars.sh must be sourced to set up the environment correctly for NEST, which makes use of a few environment variables:

NEST_INSTALL_DIR
NEST_DATA_DIR
NEST_MODULE_PATH
NEST_PYTHON_PREFIX
NEST_DOC_DIR

For MPICH builds:

source /usr/lib64/mpich/bin/nest_vars_mpich.sh

For OpenMPI builds:

source /usr/lib64/openmpi/bin/nest_vars_openmpi.sh

For non MPI builds:

source /usr/bin/nest_vars.sh

Environment modules

To use an MPI build of NEST, one must also load the appropriate environment module. These correctly setup paths, and environment variables. For MPICH builds:

module load mpi/mpich-$arch # $arch is the architecture, for example x86_64

For OpenMPI builds:

module load mpi/openmpi-$arch # $arch is the architecture, for example x86_64

It is generally easier to add these lines to the ~/.bashrc file (for bash users) so that these commands are automatically run on each login.

Binaries

The binaries for each MPI build are suffixed to distinguish them from each other: For MPICH builds, they would be:

nest_mpich
nest_vars_mpich.sh
nest_config_mpich
nest_serial_mpich
nest_indirect_mpich
sli_mpich

For OpenMPI builds:

nest_openmpi
nest_vars_openmpi.sh
nest_config_openmpi
nest_serial_openmpi
nest_indirect_openmpi
sli_openmpi