Multiple Installations

At times, it may be helpful to maintain more than one BRAHMS installation. For instance, you might have the latest stable release installed at


and a development release installed at


There is no problem with this, but you just have to be a bit careful about paths. Things may go wrong if a BRAHMS installation tries to read the namespace from another installation, for instance.

Linux and OSX

On 'Nix, mutiple installations is easy. Simply make a symbolic link in your home folder (or wherever) called, for instance, MyCurrentBRAHMSRelease that points to the installation folder of the release you want to use. Point SYSTEMML_INSTALL_PATH at this link, and add paths to the Matlab path through this link. Then, to switch to a different release, simply remake the link. We like 'Nix.


On Windows, we can't make symbolic links, so we have to update three things separately instead. The three things are as follows.

To switch between releases, proceed as follows.

  1. Remove any BRAHMS or SystemML paths from Matlab (using the pathtool, or by removing addpath statements from your startup.m).
  2. Close everything (Matlab, shell prompts, application launchers).
  3. Set SYSTEMML_INSTALL_PATH to point at the installation folder of the release you want to use.
  4. Set your PATH variable to reference only the bin folder in the installation you want to use.
  5. Start the software you will use BRAHMS through (Matlab, shell prompts).
  6. Add the correct 995 path to Matlab.

Note that if you start Matlab from a shell prompt or an "Application Launcher" that was open before you made the changes to the environment variables, things will not work. Start Matlab from a newly-started bash prompt (Linux) or from the Run command on the Start Menu (Windows). If you are having trouble, restart your machine with the new environment variables set. The sort of errors you might get if you haven't done this quite right are (a) segmentation faults (illegal operation, abort) and (b) "could not find entry point". In most cases, a log-on-off cycle will suffice in place of a restart.

The future

In future, when BRAHMS goes to 1.0, the binary interface between the framework and the components will be guaranteed not to change. At that point, you can maintain separate BRAHMS installations that share one Namespace Cache. For now, though we have no plans to change the interface, it is probably safest to assume that this is not possible.