An interface to the BRAHMS Engine is offered as a native executable and is, in the end, invoked from the operating system command line (shell). This page details this interface. The executable is called brahms-execute, but you should not call this directly; rather you should call the shell script wrapper brahms, which does the same thing, but makes minor adjustments to your environment to make things go smoothly. Therefore, forget about brahms-execute - you will always make calls to brahms.


Type brahms at a shell prompt to see the documentation for the command line interface.

OS Shell Prompt
$ brahms BRAHMS Version Copyright (C) 2007-2011 Ben Mitchinson BRAHMS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. For details, type "brahms --license", and/or visit us at http://brahms.sourceforge.net Usage: brahms <exefile> [<option> ...] brahms <operation> [<option> ...] <exefile> normal usage is to pass a single argument, the name of a BRAHMS Execution File. see the documentation (via sourceforge site) for details of how to construct one. operations: --license show release license --credits show credits --version show detailed version information --walk walk the namespace for cached components... --Walk ...and load each one for more info... --WALK ...including non-native components. general options: --voice-i set this to be the ith voice (sockets only) --voice-mpi get voice index from MPI layer (mpi only) --pause pause before exiting worker threads --par-X=Y set Execution Parameter X to value Y reporting options: --logfile-F send log to file F instead of console --logfmt-xml set log format to XML (default is text) --loglvl-L-T-S set log level for threads T, section S, to L (L can be n,w,i,v,l,f, 0-5; default is i) --loglvl-L set starting log level for all threads --loglvl-L-T set starting log level for threads T --loglvl-L--S set log level for one section for all threads --maxerr return maximum error information (some is hidden by default for brevity) shortcuts: --nothreads --par-MaxThreadCount-1 --d --loglvl-f --loglvl-l--Main_Loop --maxerr --dd --loglvl-f --maxerr True, false, or stupid? Most colours have a wavelength, but brown doesn't. It's just a combination of other colours and their wavelengths.


Most of these should be self-explanatory based on the brief information, above (if you're not sure what it does, try it :). Essentially, the executable will either execute an Execution File (usual usage) or perform a secondary operation (such as printing the license file to the console).

Informational Operations

--license, --credits and --version provide information about the installed version of BRAHMS.

Walking the Namespace

The three --walk options walk the Namespace, listing the components that BRAHMS can detect and, probably, load. Pass --Walk to load (or fail to load) all native components. Pass --WALK to also load non-native components (Matlab, Python, etc.); this can take much longer, since the engines have to be loaded and unloaded many times. Failures during one of the walks usually imply that a problem that will occur if the component is used in a system, and this may be the best place to get information about what is wrong.


Simply, invoke BRAHMS to execute an Execution File, passing the filename as the single argument.

Log Control

Log detail level control is comprehensive. The following threads exist: (C)aller; (W)orkers W1, W2, ...; (S)enders S1, S2, ...; (R)eceivers R1, R2, ...; (D)eliverers D1, D2, .... To specify all Workers, use "W"; similarly for the other multiple threads. To see what threads exist in your execution, run with --logfmt-xml and --loglvl-4 and view the output log. For a full list of the sections that exist, run an execution with --logfmt-xml, and view the output log.

Comprehensive log detail level control allows to raise or lower the log detail level for a particular thread in a particular section, which is useful when very large systems are in use. However, for systems of more manageable size, it will usually suffice to pass no flags (no information) or pass --d (much information) or --dd (all information).

  • Log levels 0 to 5 are synonyms for levels n, w, i, v, l and f (none, warning, information, verbose, loquacious and full). You may prefer to use --loglvl-0 through --loglvl-5, if that makes more sense to you, but the choice of which level a message goes to is based on the semantic terms.
  • Underscores in the section name (S) of a --loglvl option are converted to spaces before use (this avoids the need for quoting options containing spaces).