Using BRAHMS from within Matlab

BRAHMS can be used from the shell prompt, but in most cases you will want to work from within a development environment. Currently, Matlab is the only environment we provide explicit support for. So, more or less, you will currently need Matlab if you want to author BRAHMS processes or systems. We usually work with R2007b, but R2007a is fine, and I believe R14 and probably any modern version is also good. If you want to use or author Matlab processes, you'll need R2007a or later (see below).

Using/authoring BRAHMS/C or BRAHMS/C++ processes

BRAHMS processes authored in C/C++ compile to native binaries, so they will run without any additional support software. However, to author (compile) your own C/C++ processes, you will of course need a compiler. You can use whichever compiler you prefer (we assume); we use Microsoft's cl on Windows, and g++ under Linux and OSX. I don't think a Linux system exists that doesn't have g++ installed. On Windows, you will not have a compiler installed by default. Matlab ships with lcc, which should be fine; however, we recommend cl, and therefore supply brief instructions below as to the basic stuff you'll need to do to get it installed and compile your code. If you know how to compile a piece of C code, this will be nothing new to you and you can skip it.

Installing cl

  1. Download and install a package that includes cl. Sheffield users should seek help if they're unsure, since we can get them going quickly. Otherwise, try here - you're looking for Visual C++ Express.
  2. (See Environment Variables for help). Make sure the path to the tool cl.exe is on your machine PATH variable. You'll find the file in one of the install folders for the compiler.
  3. (See Environment Variables for help). At this point, it's easiest to try running the compiler and see what it moans about. It will typically moan about two things. First, Cannot open include file: 'string' (for example). To fix this, find the file in question (typically in one of your compiler install folders) and add the folder it's in to an environment variable called INCLUDE (create it if it doesn't exist). Second, LNK1104: cannot open file 'libcpmt.lib' (for instance). To fix this, find the file in question and add the folder it's in to an environment variable called LIB (again, create this if it doesn't exist). Remember, when you change environment variables, you need to close and reopen your command prompt window for the changes to take effect.

For example, your PATH, INCLUDE and LIB environment variables might look like this when you've finished:

OS Shell Prompt
INCLUDE=C:\Program Files\MSC++\include;C:\Program Files\MSC++\PlatformSDK\include; LIB=C:\Program Files\MSC++\lib;C:\Program Files\MSC++\PlatformSDK\lib; PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\SystemML\BRAHMS\bin;C:\Program Files\MSC++\bin;

Using/authoring BRAHMS/Matlab processes

To use BRAHMS processes authored in Matlab, or to create your own, you will need Matlab installed. We build the component bindings against R2007b. There was recently a change in Matlab so that these builds will not work with R14 (though they're fine with R2007a). We don't officially support pre-R2007a releases, but you can certainly build BRAHMS yourself against these, and we may have workarounds available if you cannot obtain a recent Matlab release.

Using/authoring BRAHMS/Python processes

To use BRAHMS processes authored in Python, or to create your own, you will need Python and Numpy installed. We build the component bindings against Python 2.5, and Numpy 1.1. You may get mileage out of earlier versions, I'm not sure.

Windows

These are the packages we used, but later versions should be fine too.

  • python-2.5.2.msi
  • numpy-1.1.0-win32-superpack-python2.5.exe

Linux

To use the bindings, you don't need the dev versions, but they don't do any harm. If not building, you can lose the -dev suffix in both cases.

OS Shell Prompt
sudo apt-get install python-dev sudo apt-get install python-numpy-dev

X Windows Libraries

On Linux, you'll need the run-time libraries for libxaw, which is used for the BRAHMS run-time GUI. If you are using Ubuntu, this should come ready installed. The gln32 release is built against libxaw7, and you may have problems if you have a different version installed, I'm not sure. Please let us know. If you don't have libxaw installed, try

To use the GUI, you don't need the dev versions, but they don't do any harm. If not building, you can lose the -dev suffix.

OS Shell Prompt
sudo apt-get install libxaw7-dev

This is a largely unsupported step, currently, because we have little experience of what can go wrong, but we intend to support it fully. A future release will degrade gracefully if the GUI cannot be loaded.

.NET Framework

The Windows version requires the .NET Framework Version 2.0, so if you don't have this installed you will have to install it.