BRAHMS Glossary
Babble
More than one BRAHMS Voice running on the same machine (in the same shared-memory space). Usually, this refers to deploying a Concerto execution on a single machine (with all IPs set to localhost), rather than the intended usage of running each voice on a separate machine. A Concerto Babble will suffer a performance hit compared to running the same System in a single Voice, but is useful in testing, particularly for isolating communications problems. However, running entirely separate systems in different instances of Solo is still referred to as a Babble, since it has the same implications in terms of resource conflicts. A Babble has these uses: (i) a Concerto Babble makes no use of the physical communications layer, eliminating connectivity problems and physical latencies - this allows testing that a Concerto system is not slowed down significantly by use of data serialization, relative to running the same system Solo; (ii) Solo or Concerto Babbles may show up unexpected resource conflicts that would not be apparent if the voices were deployed on separate machines or sequentially in time.
Circular Reference
This is a run-time failure occurring when one or more Processes are connected in a loop, such that their outputs at a given service time are dependent on the outputs of the other. For instance, a System containing one esum Process with its output connected to its input with zero lag, and with its output dimensions specified explicitly in its parametrization, will show a circular reference because its output at any sample time is dependent upon itself.
Client Interface
The interface between clients (e.g. the command-line client brahms-execute) and the Engine.
Component
A user plug-in to BRAHMS that implements a node on the SystemML tree. A Component can be a Process, a Data, or a Utility. See Anatomy.
Concerto
The operational mode of BRAHMS where separate sub-parts of the System are executed on separate machines (strictly, in separate non-shared-memory environments). A separate instance of the BRAHMS Engine is started on each of several machines, and they communicate with each other through the BRAHMS communications layer. These distinct (but communicating) instances are referred to as Voices. When more than one Voice is run on the same machine (e.g. for testing purposes), it is called a Babble.
Content
That part of a Component's State that changes during an execution. For example, data values.
Component Interface
The interface between Components and the Engine; the heart of BRAHMS.
Data
A BRAHMS Component that implements an interface between BRAHMS Processes (essentially by being a container for data that two Processes can both understand). That is, it facilitates the implementation of a SystemML Link. See Anatomy.
Deadlock
This is an initialisation failure occurring when one or more Links cannot be made and no Process can generate any new outputs. The simplest way to make it occur is by adding a Link to a System that has a non-existent output Port as its source (this Link can never be made). A more subtle way to generate Deadlock is to add a Link that has an output Port as its source that will never be created, due to its contents being dependent on the Link having already been made. For instance, a System containing one esum Process with its output connected to its input will generate a Deadlock, because the output dimensions of an esum Process are dependent on its input dimensions (see brahms_test deadlock).
Due
A component is said to be due if t%T == 0, where t is time.now and T is time.samplePeriod (% indicates modulo; see also ComponentTime). For data objects, t is the write time. For processes, t is the current interface service time.
Engine
The main bulk of BRAHMS, which manages Components and sees them safely through an Execution. See Anatomy.
Execution
A single execution of a system by the Execution Client (BRAHMS).
Framework
The combination of the Engine, the Component Interface and Client Interface, and the command-line client. In some contexts, the BRAHMS framework includes the SDK and documentation. See Anatomy.
Handle
Any Symbol that is a reference to an object. This is a semantic term, rather than a C definition.
Hard Stop
A BRAHMS execution ends once t >= ExecutionStop for all clocks t - this is a Soft Stop. Hard Stop can occur prematurely if an exception is raised. Following a Hard Stop, results are lost and some expected Events may not be issued.
Part
This term is used to refer to any part of the BRAHMS Anatomy, and could be a Component, the Engine, a supplementary module, or the command-line client. See Anatomy.
Process
A BRAHMS Component that implements the computation of a SystemML Process (see SystemML Glossary). See also Anatomy.
Soft Stop
A BRAHMS execution ends once t >= ExecutionStop for all thread clocks - this is a Soft Stop. Soft Stop can occur prematurely if a process requests that the execution end (see Events interface), or if the user requests that the execution end (typically by pressing cancel in the run-time GUI). A Soft Stop causes identical behaviour to the Execution Clock reaching the Execution Stop Time in all threads. In particular, data logs up to that point are available and no error occurs.
Solo
The operational mode of BRAHMS that executes the entire System on a single machine (strictly, a single shared-memory environment). Solo is the "vanilla" BRAHMS, and if you didn't plan otherwise, this is probably what you're using. Solo will deploy computation across multiple threads in that environment, so it will take advantage of multiple processors, but it will not take advantage of multiple computing nodes.
State
The total state of a component. The combination of the component's Structure and Content.
Structure
That part of a component's State that does not change during an execution. For example, data dimension and type.
Utility
A BRAHMS Component that implements some service (typically computation) that can be used by other Components. See Anatomy.
Voice
When running in Concerto mode, each separate BRAHMS instance is called a Voice (continuing to abuse the musical metaphor). Voices are indexed from 1 to N, with N the number of Voices instantiated. When generalising to Solo mode, the Solo instance is Voice 1 of 1 Voices. See also Concerto and Babble.