What is the Abbey?
Almende's Abbey Agent Kernel (3AK) is a simple kernel for the execution concurrent (agent-oriented) applications. The kernel allows the creation of coordinated communities of workers where each worker can be understood as a separate thread of execution. In 3AK, a single community is called an abbey and the workers are called monks. One monk in each abbey is assigned as the superior of the abbey. This monk, called the abbot takes care of the internal and external coordination. Internally, the abbot coordinates the efforts of the monks to execute so-called (computational) elementary tasks. Externally, the abbot takes care of the coordination of the collective efforts of its monks with other abbeys in the system.
How can the Abbey be used?
A collection of abbeys can be used to execute a kind of dynamic dataflow programs. A detailed overview of developments in dataflow programming is given in [Johnston et al. 2004] where the pure dataflow model is described as follows.
A dataflow program is represented by a graph. The nodes of the graph are primitive instructions such as arithmetic or comparison operations. The edges between the nodes represent the data dependencies between the instructions. Conceptually, data flows as tokens along the arcs which behave like first-in, first-out streams (FIFO) streams. In a dataflow program, instuctions are scheduled as soon as they become fireable, i.e., the relevant input data becomes available. If several instructions become fireable at the same time, they can be executed in parallel. This simple principle provides the potential for concurrency and massive parallel execution at the instructions level.
This stands in contrast to the von Neumann execution model, in which an instruction is only executed when the program counter reaches it, regardless of whether or not it can be executed earlier than this.
Abbey programs, however, are somewhat different from the dataflow programs in the pure dataflow model. Probably, the most distinguishing feature is that abbey dataflow programs are dynamic in that the dataflow graph is continously reconfigured at runtime. In particular, each node is allowed to create new nodes and its interconnections, and by default, a node together with its unused connections disappears from the graph after its instruction has been completed.
Web site and all contents © Copyright Almende 2006, All rights reserved.
Free website templates