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.

NeuroFedora currently includes the two most recent versions of NEST:

Modularity allows for parallel availability, but not parralel installability. So, only one version of NEST can be installed at one time.

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.

  • 2.18.0 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.

Installing NEST 2.18.0

Since NEST 2.18.0 is made available in the standard Fedora platform repositories, it can be installed simply by using dnf without any additional configuration. For example:

sudo dnf install python3-nest

Installing NEST 2.16.0 using modularity

NEST 2.16.0 is provided using a module stream. It can also be installed using dnf but requires the use of the module sub command:

sudo dnf module install nest:2.16.0

This installs the default profile for the stream. This default profile is the non-MPI build of NEST. mpich and openmpi are the other provided profiles:

sudo dnf module list
..
..
nest      2.16.0 [x]    default [d], mpich, openmpi      The neural simulation tool

To install a profile, use:

sudo dnf module install nest:2.16.0/mpich  # for the mpich profile

More information on modules, their design, their creation, and their usage can be found on the Modularity 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 non MPI (serial) builds:

source /usr/bin/nest_vars.sh

For MPICH builds:

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

For OpenMPI builds:

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

Environment modules

To use an MPI build of NEST, the appropriate environment version must be loaded as documented here.

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