The latest version of the NEST simulator is now available in Fedora as part of the NeuroFedora initiative. NEST is a standard tool used by computational neuroscientists to make large scale computer models of the brain that are needed to investigate among other things, how the brain processes information.

The NEST Eco-system

NEST offers a wide range of ready-to-use models, excellent documentation, and is supported by a thriving Open Source development community.

It provides a simple Python interface which makes it really easy to use.

In addition, it is designed so it can be run on both laptops and super computing clusters. That way it can be used to make models that range from a few neurons to those that include millions of neurons. For reference, the human brain contains 86 billion neurons on average!

It is possible to build such clusters using the Message Passing Interface (MPI), and clusters must be built separately to support it.

Install NEST

To make it easier for the users, we provide various variants of NEST. For example, to install a version that doesn’t use MPI for use on a workstation/laptop, one can use:

$ sudo dnf install nest python3-nest

Install NEST with MPI support

Fedora includes two implementations of MPI: MPICH and OpenMPI, and NEST has been built for both. For the MPICH version, one simply installs the mpich variants:

$ sudo dnf install nest-mpich python3-nest-mpich

For OpenMPI, the commands are similar:

$ sudo dnf install nest-openmpi python3-nest-openmpi

Finally the following command loads the MPI environment modules in order to activate the correct NEST variant:

$ module load mpi/mpich-x86_64 # mpi/openmpi-x86_64 for openmpi

Next, NEST uses some environment variables, which can set up by sourcing the nest_vars.sh file:

$ which nest_vars.sh /usr/lib64/mpich/bin/nest_vars.sh $ source /usr/lib64/mpich/bin/nest_vars.sh

Using NEST

After the installation and configuration of NEST, you can start using it inside a Python shell.

$ ipython3 In [1]: import nest [INFO] [2018.10.16 12:27:43 /builddir/build/BUILD/nest-simulator-2.16.0-mpich/nestkernel/rng_manager.cpp:238 @ Network::create_rngs_] : Creating default RNGs [INFO] [2018.10.16 12:27:43 /builddir/build/BUILD/nest-simulator-2.16.0-mpich/nestkernel/rng_manager.cpp:284 @ Network::create_grng_] : Creating new default global RNG Oct 16 12:27:43 SLIStartup [Error]: NEST_DOC_DIR is not usable: Oct 16 12:27:43 SLIStartup [Error]: Directory '/usr/lib64/mpich/share/doc/nest' does not exist. Oct 16 12:27:43 SLIStartup [Error]: I'm using the default: /usr/lib64/mpich/share/doc/nest -- N E S T -- Copyright (C) 2004 The NEST Initiative Version: v2.16.0 Built: Oct 5 2018 20:22:17 This program is provided AS IS and comes with NO WARRANTY. See the file LICENSE for details. Problems or suggestions? Visit http://www.nest-simulator.org Type 'nest.help()' to find out more about NEST. In [2]: nest.version() Out[2]: 'NEST 2.16.0'

NEST documentation is provided in a nest-doc package, and we also provide a README.fedora file in all nest packages: nest, nest-mpich, nest-openmpi that provide detailed instructions on using the different variants. The same file can also be found here.

If you run into issues, find a bug, or just want to chat, you can find the NeuroFedora SIG here.