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.
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.
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
Clone the SpineML-group-maintained version of BRAHMS (which sports a nice cmake compile and install scheme):
cd ~/scsrc
git clone https://github.com/BRAHMS-SystemML/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
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 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.
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.
To run a SpineML model from the command line, chandirectory into your SpineML_2_BRAHMS directory:
cd /path/to/SpineML_2_BRAHMS
Then explore the commandline options for convert_script_s2b:
./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.
Releases for Debian based Linux and Mac OSX can be found on the release page, although these are currently not up to date and we recommend using the Git versions
BRAHMS is the SpineML reference simulator and there are currently no limitations.