The Bobox parallelization framework has two primary goals: simplify writing parallel, data-intensive programs and to serve as a testbed for developing generic parallel algorithms and data-oriented parallel algorithms. The Bobox provides a run-time environment that is used to execute a generalized (non-linear) pipeline in parallel.
The pipeline consists of computational components provided by the user and connecting parts that are part of the framework. The structure of the pipeline is defined by the user but the communication and execution of individual parts is handled by the run-time; a component is ready to be executed when it has data waiting to be processed on its inputs.
This simplifies the design of the individual computational components, since communication, synchronization and scheduling are handled by the framework.