-
Notifications
You must be signed in to change notification settings - Fork 11
Home
This guide describes how to install the SPORE module for the NEST 2.12 simulator.
Note that SPORE does not support the release version v2.12.0 of NEST.
Instead, SPORE currently requires a fix on the development branch so please make sure your development version of NEST corresponds to or is newer than revision
b8ad1a51dd.
We used MUSIC version 1.1.15 in revision 8e0a609b298 and MPI (Open MPI 1.6.5).
Furthermore we need python with the packages pyzmq
, numpy
, ujson
and matplotlib
.
A guide to install these dependencies is provided below.
Finally we used SPORE (version 2.12.0, or later).
The installation procedure was tested on Debian GNU/Linux 8.7 (jessie).
This guide assumes that you want to install everything into your local home folder $HOME/opt/
.
It is further assumed that you checkout the software into a local folder that is used for development,
which we refer to as devel
folder.
Add the following lines to your ~/.bashrc
(or ~/.zshrc
or ~/.profile
etc.)
export TARGET_DIR=$HOME/opt/
export PATH=$PATH:$TARGET_DIR/bin
export LIBRARY_PATH=$LIBRARY_PATH:$TARGET_DIR/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TARGET_DIR/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TARGET_DIR/lib/nest # required in some cases
export PYTHONPATH=$PYTHONPATH:$TARGET_DIR/lib/python2.7/site-packages
export PYTHONPATH=$PYTHONPATH:$TARGET_DIR/lib64/python2.7/site-packages
export LD_PRELOAD=/usr/lib/openmpi/lib/libmpi.so # required in some cases
export NUM_CORES=3 # number of CPU cores
Now run source ~/.bashrc
or close the current terminal now and start a new session such that the changes get applied.
Now install all dependencies (for Debian Jessie).
Notes:
- Use
pip install --user <package name>
to install the python packages locally. - Use
sudo pip install <package name>
to install the python packages globally. - The python packages can also be installed in a virtualenv.
- For python3, use
pip3
to install python packages and install the python3 versions of the packages for NEST dependencies. - The use of multiple different python3 versions is discouraged.
Make sure to consistently use one version for installing libraries and actually running experiments.
When installing MUSIC, the specification of the precise executable (e.g.
python3.4
), rather thanpython3
, may be necessary in ambigous cases (see #9).
## For NEST and MUSIC
apt-get install build-essential cmake
apt-get install python python-dev python-pip
apt-get install libreadline-dev gsl-bin libgsl0-dev libncurses5-dev openmpi-bin
apt-get install automake libtool # BUILD Dependencies
apt-get install libopenmpi-dev libopenmpi1.6 # RUN Dependencies
apt-get install freeglut3-dev # Optional, for viewevents
pip install cython
pip install mpi4py # RUN Dependencies
## For SPORE
apt-get install libzmq3 # For realtime plotting
pip install pyzmq # For real-time plotting
pip install numpy # For testing
pip install ujson
pip install --upgrade matplotlib # (Optional, If you want to have nice plotting, you should upgrade `matplotlib` to the newest version)
In your devel
folder, check out the latest version of MUSIC from https://github.com/INCF/MUSIC
git clone https://github.com/INCF/MUSIC.git
Note that at the moment --disable-isend
is required because
of a critical problem
in the MUSIC scheduler.
In the folder ./MUSIC/
:
./autogen.sh
PYTHON=/usr/bin/python ./configure --prefix=$TARGET_DIR --disable-isend # Replace with python3[.x] if desired
make -j$NUM_CORES
make install
In your devel
folder, check out the latest version of NEST from https://github.com/nest/nest-simulator
# use the latest developmental version of NEST. Release versions don't currently work with SPORE
git clone https://github.com/nest/nest-simulator.git
Then in the folder ./nest-simulator
:
mkdir build
cd build/
cmake -DCMAKE_INSTALL_PREFIX:PATH=$TARGET_DIR -Dwith-music=ON -Dwith-mpi=ON -Dwith-python=2 .. # Change python version to 3 for Python 3
make -j$NUM_CORES
make install
In your devel
folder, check out the latest version of SPORE from https://github.com/IGITUGraz/spore-nest-module
git clone https://github.com/IGITUGraz/spore-nest-module.git
Then in the folder ./spore-nest-module
:
mkdir build
cd build/
cmake -Dwith-python=2 .. # Change python version to 3 for Python 3, or provide a path to a python binary
make -j$NUM_CORES
make install
make test
In ipython
running import nest
and then nest.Install("sporemodule")
should now yield the following:
In [1]: import nest
[INFO] [2017.3.29 12:5:24 /home/YOU/devel/nest-simulator/nestkernel/rng_manager.cpp:226 @ Network::create_rngs_] : Creating default RNGs
[INFO] [2017.3.29 12:5:24 /home/YOU/devel/nest-simulator/nestkernel/rng_manager.cpp:221 @ Network::create_rngs_] : Deleting existing random number generators
[INFO] [2017.3.29 12:5:24 /home/YOU/devel/nest-simulator/nestkernel/rng_manager.cpp:226 @ Network::create_rngs_] : Creating default RNGs
[INFO] [2017.3.29 12:5:24 /home/YOU/devel/nest-simulator/nestkernel/rng_manager.cpp:272 @ Network::create_grng_] : Creating new default global RNG
-- N E S T --
Copyright (C) 2004 The NEST Initiative
Version 2.12.0 Mar 29 2017 11:54:48
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.Install("sporemodule")
Mar 29 12:05:33 Install [Info]:
loaded module SPORE (version 2.12.0)
That should be it.
Now you should be able to execute the script experiment.py
in
spore-nest-module/examples/pattern_matching_showcase
.