next up previous index
Next: I/O Tasks Up: Q ISA Previous: Graphs   Index

Tasks

In Q, a task represents the application of a particular function (or graph) to a particular set of bound input and output parameters. Multiple tasks may apply the same function, with a different set of input and output parameters.

A task is usually executed multiple times, to produce output stream elements with varying context. If the function referenced by a task produces one stream element per invocation, and five stream elements are demanded from one of the task's output streams, it will be executed five times.

A normal task consists of the following:

Most tasks represent the application of a user or library defined function. There are, however, two special classes of tasks defined in the Q ISA. One is tasks which perform application input or output (I/O), and the other class is primitive tasks which provide functionalities not available to ordinary tasks -- such as conditional execution or data remapping. These special classes differ from normal tasks in how the function name is specified and how they are handled by the control machine.



Subsections
next up previous index
Next: I/O Tasks Up: Q ISA Previous: Graphs   Index
magiceight-web@media.mit.edu