A MagicEight system, regardless of the actual machine implementation, accepts a standard representation of an application, also refered to as a program or process, for execution. Such a MagicEight program contains descriptions of the operations and initial data structures comprising an application.
Operations, or tasks, in a MagicEight system are simply a short thread of instructions suitable for performing a particular task on a particular machine architecture. These instructions will be scheduled and executed as a single unit, in a form of medium-grained hybrid dataflow. Ultimately, they will be represented in an intermediate, machine independent form (such as RTL) and compiled for a particular machine architecture (such as HPPA, Alpha, x86, etc.) at run time. Presently a set of instruction sequences, each intended for execution on a particular machine architecture, must be provided either in the program or in a shared library. In some cases the ``instruction sequence'' will merely be a configuration for special purpose processor.
Data is communicated between individual tasks using multidimensional streams. When a task token is executed, it is invoked to produce a particular offset and extent of its output stream. Static, non-changing data is a degenerate case of a stream which has a extent of one in all dimensions. The use of streams allows the data parallelism available in multidimensional data processing to be easily identified and exploited [WB95].