-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added requirements.txt and updated REAMDE.md
- Loading branch information
David Kappel
committed
Oct 31, 2017
1 parent
c0cbd8d
commit 612ec51
Showing
3 changed files
with
172 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,9 +17,8 @@ for communication with other software components. | |
|
||
## Quick Installation Guide | ||
|
||
SPORE requires NEST installed with MUSIC (`-Dwith-music=ON`) and Python bindings. Please make sure your version of NEST corresponds to or is newer than revision | ||
[58fd190f5e4](https://github.com/nest/nest-simulator/commit/58fd190f5e404f1e3e822c0d3915e2321d102ed5). | ||
A detailed installation guide that also shows how to set up the dependencies is provided on the [SPORE wiki page](https://github.com/IGITUGraz/spore-nest-module/wiki). | ||
SPORE requires NEST installed with MUSIC (`-Dwith-music=ON`) and Python bindings. Please make sure your version of NEST corresponds to or is newer than version 2.14. | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
mhoff
Collaborator
|
||
A detailed installation guide that also shows how to set up the dependencies is provided below and on the [SPORE wiki page](https://github.com/IGITUGraz/spore-nest-module/wiki). | ||
|
||
```bash | ||
git clone https://github.com/IGITUGraz/spore-nest-module | ||
|
@@ -31,6 +30,168 @@ make install | |
make test | ||
``` | ||
|
||
## Detailed Installation Guide | ||
|
||
This guide describes how to install the SPORE module in version 2.14 for the NEST simulator in version 2.14. Combinining this version of SPORE with other versions of NEST may work but has not been tested. | ||
This comment has been minimized.
Sorry, something went wrong. |
||
We used MUSIC version 1.1.15 in revision [8e0a609b298](https://github.com/INCF/MUSIC/commit/8e0a609b29835be604ae556c1592aad9b4be1827) and [MPI](https://www.open-mpi.org/) (Open MPI 1.6.5). | ||
This comment has been minimized.
Sorry, something went wrong. |
||
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.14](https://github.com/IGITUGraz/spore-nest-module/releases/tag/v2.14.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. | ||
|
||
### Preparation | ||
|
||
Add the following lines to your `~/.bashrc` (or `~/.zshrc` or `~/.profile` etc.) | ||
|
||
```bash | ||
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](https://virtualenv.pypa.io/en/stable/). | ||
* 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 than `python3`, | ||
may be necessary in ambigous cases (see [#9](https://github.com/IGITUGraz/spore-nest-module/issues/9)). | ||
|
||
```bash | ||
# 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 | ||
This comment has been minimized.
Sorry, something went wrong.
anandtrex
Contributor
|
||
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) | ||
``` | ||
|
||
|
||
### Installing MUSIC | ||
|
||
In your `devel` folder, check out the latest version of MUSIC from https://github.com/INCF/MUSIC | ||
|
||
```bash | ||
git clone https://github.com/INCF/MUSIC.git | ||
``` | ||
|
||
Note that at the moment `--disable-isend` is required because | ||
of a [critical problem](https://github.com/INCF/MUSIC/issues/35#issuecomment-280332573) | ||
in the MUSIC scheduler. | ||
|
||
In the folder `./MUSIC/` : | ||
|
||
```bash | ||
./autogen.sh | ||
PYTHON=/usr/bin/python ./configure --prefix=$TARGET_DIR --disable-isend # Replace with python3[.x] if desired | ||
make -j$NUM_CORES | ||
make install | ||
``` | ||
|
||
### Installing NEST | ||
|
||
In your `devel` folder, check out the latest version of NEST from https://github.com/nest/nest-simulator | ||
|
||
```bash | ||
# 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` : | ||
|
||
```bash | ||
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 | ||
``` | ||
|
||
### Installing SPORE | ||
|
||
In your `devel` folder, check out the latest version of SPORE from https://github.com/IGITUGraz/spore-nest-module | ||
|
||
```bash | ||
git clone https://github.com/IGITUGraz/spore-nest-module.git | ||
``` | ||
|
||
Then in the folder `./spore-nest-module` : | ||
|
||
```bash | ||
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` (or `ipython3`) running `import nest` and then `nest.Install("sporemodule")` should now yield the following: | ||
|
||
``` | ||
In [1]: import nest | ||
[INFO] [.../rng_manager.cpp:238 @ Network::create_rngs_] : Creating default RNGs | ||
[INFO] [.../rng_manager.cpp:233 @ Network::create_rngs_] : Deleting existing random number generators | ||
[INFO] [.../rng_manager.cpp:238 @ Network::create_rngs_] : Creating default RNGs | ||
[INFO] [.../rng_manager.cpp:284 @ Network::create_grng_] : Creating new default global RNG | ||
-- N E S T -- | ||
Copyright (C) 2004 The NEST Initiative | ||
Version 2.14.0 Oct 30 2017 13:06:41 | ||
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") | ||
Oct 31 13:26:30 Install [Info]: | ||
loaded module SPORE (version 2.14.0) | ||
``` | ||
|
||
## Running a first experiment | ||
|
||
That should be it. | ||
|
||
Now you should be able to execute the script [`experiment.py`](https://github.com/IGITUGraz/spore-nest-module/blob/master/examples/pattern_matching_showcase/experiment.py) in | ||
|
||
`spore-nest-module/examples/pattern_matching_showcase`. | ||
|
||
|
||
|
||
## License | ||
|
||
SPORE is open source software and is licensed under the [GNU General Public | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
cython | ||
mpi4py | ||
pyzmq | ||
numpy | ||
ujson | ||
matplotlib |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In fact we can only guarantee compatibility of SPORE 2.14 with NEST 2.14. The development version of NEST (2.14+) might break functionality. Therefore I would put emphasize on holding NEST and SPORE versions in perfect sync.