Appendix: Installation of the BrainScaleS software stack

In the following the build and work flow on University of Heidelberg cluster frontend nodes is described. This is only needed if you want to use the system locally within Heidelberg. If the BrainScaleS System is accessed through the HBP Collaboratory or the Python client, this software environment is pre-installed.

The following section can be skipped when loading the nmpm_software module by

module load nmpm_software/current

All available versions can be listed by module avail nmpm_software.

To compile your own installation create and change to a directory for your projects, preferably on wang, e.g.: /wang/users/<somebody>/cluster_home/projects.


To reduce the amount of typing, please consider using ssh-agent to cache your key password:

eval `ssh-agent`
ssh-add ~/path/to/your/private_id_rsa

Build Tool

We use a custom version ( of the waf configuration and build tool. A nightly version is provided by loading:

module load waf

PyHMF, marocco and Dependencies

The first step is to create a new workspace for the software checkouts and the subsequent build

mkdir ~/my_nmpm_software && cd ~/my_nmpm_software

Now waf can be used to setup the project. It will clone all the dependencies.

waf setup --project pyhmf --project=marocco --without-ester

The next step is configuration. As the default software environment on the UHEI cluster does not provide all the software dependencies, you have to load some modules which will provide those dependencies:

module load localdir
module load pynn/0.7.5
module load mongo
module load yaml-cpp/0.5.3

As those commands are needed every time you want to use the software it is convenient to put all the needed parts into a script:

echo "INSTALLED_LIB_PATH=$(readlink -e lib)" >
cat >><<EOF
module load localdir
module load pynn/0.7.5
module load mongo
module load yaml-cpp/0.5.3
cd -

After completing the installation steps below, this script can be sourced (source to access the BrainScaleS Wafer-Scale Software Stack.

Now the configuration step:

waf configure

The install step will build and install all targets into subdirectories of your current working directory. Currently, you need to explicitly specify some extra targets in a second call.

waf install --test-execnone
# some extra targets are needed
waf install --target=pymarocco,pyhalbe,pysthal,redman_xml --test-execnone

If you want to include the calibration toolkit (cake) (optional):

waf setup --project pyhmf --project marocco --project cake --without-ester
# module load ...
waf configure
waf install --test-execnone
# some extra targets are needed
waf install --target=pymarocco,pyhalbe,pysthal,redman_xml,pycake --test-execnone

To include support for executable system simulation (ESS) add --with-ess to the setup call.

Please remember, to that you have to setup the software environment if you start new shells (e.g. by using the script):

source ~/my_nmpm_software/

Check if the installation and the setup of variables is fine:

python -c "import pyhmf" && echo ok

should print ok, if instead:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named pyhmf

occurs, either the installation failed or the environment variables responsible for finding the module are wrong. In that case, double check if you followed the instructions 1:1.

Running PyNN scripts

To run locally on the hardware one needs to use the SLURM job queue system:

srun -p nmpm -L `license_by_hicann 33 367` --pty python

Inspect the Configuration