Skip to content

Temporary fork of Seb's BRAHMS repo to remove X11 dependencies

Notifications You must be signed in to change notification settings

ajc158/BRAHMSnoX11Hack

Repository files navigation

BRAHMS

BRAHMS is a simulation execution engine which was written by Ben Michinson. It's often used alongside SpineML/SpineML_2_BRAHMS to provide a simulation back-end for SpineML/SpineCreator. The original author is not currently developing BRAHMS, although it is still in use within the Adaptive Behaviour Research Group at the Department of Psychology of the University of Sheffield. As we expect to continue its use, I have created this fork of the software on github.

This fork of the Brahms simulator starts from brahms version 0.7.3. The original BRAHMS build system is based on custom makefiles, which results in the software being somewhat difficult to compile. Until recently we had been using "set in aspic" binary builds of BRAHMS and we wanted to be able to easily modify and add features as our requirements of BRAHMS change. This was the motivation behind forking the code; to implement a cmake-based build system.

You can read all about the original at:

http://brahms.sourceforge.net/docs/What%20is%20BRAHMS.html

The original code is also available at that site.

What changed in this version?

The major change between this version and BRAHMS 0.7.3 is that the requirement to set SYSTEMML_INSTALL_PATH has been removed. Instead, when the software is compiled, a directory for the "installed SystemML Namespace" is set - that might be /usr/local/var/SystemML/Namespace. That becomes the default BRAHMS Namespace. It's in a var directory as you may decide to install your own components in there.

You can also run BRAHMS without the progress window with the --nogui option. This can be useful if you need to run hundreds of concurrent BRAHMS instances on an HPC system and you forgot to log in with a non-X windows connection.

What may change in future?

I may re-instate SYSTEMML_INSTALL_PATH such that you can have a second installed Namespace, perhaps at $HOME/SystemML/Namespace which is referred to with SYSTEMML_INSTALL_PATH.

I may implement a scheme for saving the delayed values stored in connections which have some specified lag.

Building BRAHMS

This project uses cmake for a cross-platform friendly build process. cmake is a good choice of build system, because it is familiar to many developers.

You'll need to obtain the correct dependencies to build BRAHMS. On Linux that means a compiler, libXv, libXaw and WX windows. For example, on (current 2015) Ubuntu or Debian systems you'll want to do:

sudo apt-get install build-essential libxaw7-dev libxv-dev zlib1g-dev

These libraries are used to draw the progress box which shows while BRAHMS is running.

For Windows, you'll reportedly need GnuWin32, but this build has not yet been tested.

For optional features (MPI channel, Python and MATLAB bindings and one WXWidgets-dependent component) you'll need mpich2, python development libraries, WXwidgets and a MATLAB installation. The first three can be obtained via apt-get:

sudo apt-get install mpich2 python-dev libwxgtk2.8-dev

The recommended method for building is to create a separate build folder as follows:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. # or cmake-gui ..
make -j4 # or however many processor cores you have
sudo make install

Options for cmake

Here are the options you can set. Shown here are the defaults (at time of writing):

Adding/removing bindings:

cmake -DCOMPILE_MATLAB_BINDING=OFF -DCOMPILE_PYTHON_BINDING=ON ..

MPICH2:

cmake -DCOMPILE_WITH_MPICH2=ON ..

Compiling a component which requires WX windows:

cmake -DCOMPILE_WX_COMPONENT=OFF ..

Compiling with a specific installation prefix:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..

-- Seb James, Feb 2015.

About

Temporary fork of Seb's BRAHMS repo to remove X11 dependencies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published