# 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.

## ssh-agent¶

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

eval ssh-agent


## Build Tool¶

We use a custom version (git@gitviz.kip.uni-heidelberg.de:waf.git) 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


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)" > init.sh cat >>init.sh<<EOF cd${INSTALLED_LIB_PATH}
cd -
EOF


After completing the installation steps below, this script can be sourced (source init.sh) 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
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 init.sh script):

source ~/my_nmpm_software/init.sh


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 nmpm1_single_neuron.py


nmpm1_single_neuron.py:

## Inspect the Configuration¶

sthal/tools/dump_cfg.py