From Spiking Neural Mark-up Language (SpineML)
BRAHMS is a Modular Execution Framework (MEF) for executing integrated systems built from component software processes (a SystemML-ready execution client). It allow the connection of processes together into systems, by linking the outputs of some processes into the inputs of others. For more details see here.
Introduction to SpineML with BRAHMS
Due to the flexibility of BRAHMS it is able to support the full SpineML low-level network layer, and is therefore used to create the SpineML reference simulator. BRAHMS requires the creation of C++ code implementations of each of the SpineML components as well as the generation of XML documents for the System (equivalent to the SpineML network layer) and the Execution (equivalent to the SpineML experiment layer). This is done using a set of XSLT scripts linked by a shell script on Unix or batch script on Windows. Use of user created components with the BRAHMS simulator requires a working compile environment.
Installation on Linux
The best way to install BRAHMS and SpineML_2_BRAHMS on Linux is to compile the SpineML-maintained version of BRAHMS along with SpineML_2_BRAHMS and SpineML_PreFlight
You will need the following programs installed on your system:
sudo apt-get install build-essential python git gitk \ python-dev libpopt-dev doxygen xsltproc cmake libxaw7-dev libxv-dev
Let's create a directory to keep the source code in one place:
cd ~ mkdir scsrc
Compile BRAHMS on Linux
Clone the SpineML-group-maintained version of BRAHMS (which sports a nice cmake compile and install scheme):
cd ~/scsrc git clone https://github.com/sebjameswml/brahms.git
Build brahms with cmake:
cd brahms mkdir build cd build cmake -DSTANDALONE_INSTALL=OFF -DCMAKE_INSTALL_PREFIX=/usr/local .. make -j4 sudo make install
Compile SpineML_PreFlight on Linux
Clone a copy of SpineML_PreFlight:
cd ~/scsrc git clone https://github.com/SpineML/SpineML_PreFlight.git
Build and install SpineML_PreFlight using cmake:
mkdir SpineML_PreFight-build && cd SpineML_PreFlight-build cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../SpineML_PreFlight make -j4 sudo make install
Clone SpineML_2_BRAHMS on Linux
Clone a copy of SpineML_2_BRAHMS into your home directory:
cd ~ git clone https://github.com/SpineML/SpineML_2_BRAHMS.git
There is no need to build SpineML_2_BRAHMS, which is a set of scripts.
Installation on OSX
BRAHMS as a simulator is only supported as part of the SpineCreator toolchain currently. To install you should install SpineCreator and the SpineML_2_BRAHMS package for OSX.
Simulating SpineML with BRAHMS
To run a SpineML model from the command line, change directory into your SpineML_2_BRAHMS directory:
Then explore the commandline options for convert_script_s2b:
As a quick start, you can run experiment 0 of the GPR Basal Ganglia model with the following command:
./convert_script_s2b -m /home/seb/GPR-BasalGanglia/SpineML -e 0
The results of the model can be found in the 'SpineML_2_BRAHMS/temp' directory. Each log data file is accompanied by a simple XML file containing a description of the structure of the log and the type of data contained within. There are scripts in SpineCreator to help you extract the data from these files. See for example SpineCreator/analysis_utils/matlab/load_sc_data.m and SpineCreator/analysis_utils/matlab/load_sc_data.py.
These are outdated debian packages for brahms and spineml-2-brahms.
Usage and Limitations
BRAHMS is the SpineML reference simulator and there are currently no limitations.