Termination of Multiple Task Queue
Next: Implementation Notes
Up: Termination Detection
Previous: Termination of a
When multiple task queues are used in the same
program, their dependence can be either of the
following:
- Acyclic. The task queues forms
a hierarchy, where adjacent levels of task queues
act as producers and consumers of tasks. Termination
detection can proceed top-down, since tasks
the producers of tasks for a task queue
are at the same or higher levels.
To chain together the termination detection protocols,
the programmer asserts that a processor is clear of task
for task queue
only after all task queues higher than
have terminated. The program terminates when all task queues
have terminated.
- Cyclic. The dependency graph for the task queues
are no longer acyclic. The task queue runtime system must
consider these task queues as a whole when performing
termination detection; the local partitions of different
task queues are grouped into one conceptual
partition, and the termination detection protocol
must combine the enqueue and dequeue counts of
all task queues. The current implementation does not
support such grouping.
Boris Vaysman
Fri Mar 22 13:38:23 PST 1996