Create Presentation
Download Presentation

Download Presentation
## Practice Questions on Delay Composition Algebra

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Practice Questions on Delay Composition Algebra**Tarek Abdelzaher**Things to Remember:Delay Composition Theorem (Pipelines)**• Consider task n that traverses stages j = 1, …, N together with higher priority tasks i. • Delay composition theorem: • Let MaxNodej be the longest execution time of all tasks that execute on node j. • Let MaxTaski be the maximum execution time of task i across all nodes visited by the task • The delay of task n is given by: Delay < Si>n (2 MaxTaski) + Sj MaxNodej**Things to Remember:Delay Composition Theorem (DAGs)**• What if a task does not visit all the stages as task n? • Consider each stretch of execution on a contiguous subset of stages (shared with task n) a separate task. • Delay composition theorem: • Let MaxNodej be the longest execution time of all tasks that execute on node j. • Let MaxTaski be the maximum execution time of task i across all nodes visited by the task • The delay of task n is given by: Delay < Si>n (2 MaxTaski) + Sj MaxNodej**Things to Remember:Reduction**• Each higher priority task i is reduced to a uniprocessor task with a computation time = 2 MaxTaski • Task n (under consideration) is reduced to a unirpcessor task with a computation time = Sj MaxNodej**Things to RememberDelay Composition Algebra**• Each resource is represented by a load matrix representing the delay imposed by each task (row) on each other task (column). This delay is initially set to the task’s computation time. The last row is the MaxNodej component. There is also an accumulator term initially set to zero. For example, in the case of four tasks, the load matrix is: C1, 0 C1, 0 C1, 0 C1, 0 0, 0 C2, 0 C2, 0 C2, 0 0, 0 0, 0 C3, 0 C3, 0 0, 0 0, 0 0, 0 C4, 0 C1 max(C1,C2) max(C1,C2,C3) max(C1,…,C4)**Things to RememberDelay Composition Algebra**• The PIPE primitive: C = A PIPE B - Take the max of corresponding elements in all rows except the last - Add the corresponding elements in the last row. • The SPLIT primitive: B, C = SPLIT(A) - Create a node and load matrix for each outgoing arc. Each matrix includes only columns of tasks following that arc (the other columns are zeroed out). Update accumulator terms.