Parallel algorithms for expression evaluation - PowerPoint PPT Presentation

About This Presentation
Title:

Parallel algorithms for expression evaluation

Description:

Parallel algorithms for expression evaluation Part1. Simultaneous substitution method (SimSub) Part2. A parallel pebble game Example 1: expression evaluation Summing ... – PowerPoint PPT presentation

Number of Views:70
Avg rating:3.0/5.0
Slides: 20
Provided by: Igor86
Category:

less

Transcript and Presenter's Notes

Title: Parallel algorithms for expression evaluation


1
Parallel algorithms for expression evaluation
  • Part1. Simultaneous substitution method (SimSub)
  • Part2. A parallel pebble game

2
Example 1 expression evaluation
  • Summing the numbers 2, 1, 3, 2, 1, 3, 2, 1 we can
    write a sequential program
  • x1 2 x2 x11 x3 x23 x4 x32
  • x5 x41 x6 x53 x7 x62 x8x71

3
Simultaneous Substitutions Method (SimSub)
  • x Expression(y) and y Expression1
  • a variable y can be substituted by its
    expression or by its value if it is known (if
    Expression1 is a constant)
  • assume we have
  • a sequence of expressions defining variables,
  • each expression is of a constant size
  • variables are numbered and
  • i-th expression depends only on variables with
    numbers smaller than i e.g. x14 x2x15
    x3x1x27 x4x2x3

4
  • One parallel step for each expression substitute
    its variables by their expression if it is safe
  • safe means that corresponding expression has at
    most one variable
  • Example summing the numbers 2, 1, 3, 2, 1, 3, 2,
    1 we can write a sequential program
  • x1 2 x2 x11 x3 x23 x4 x32 x5
    x41 x6 x53 x7 x62
  • after parallel step 1
  • x1 2 x2 3 x3 x14 x4 x25 x5 x33
    x6 x44 x7 x55
  • after parallel step 2
  • x1 2 x2 3 x3 6 x4 8 x5 x17 x6
    x29 x7 x38
  • after parallel step 2
  • x1 2 x2 3 x3 6 x4 8 x5 9 x6 12
    x7 14
  • output sum x7
  • In this way we can sum 1024 numbers in 10 rounds

5
Tree-contraction
  • Parallel algorithms related to expression
    evaluation correspond to parallel algorithmic
    technique called tree-contraction
  • Tree-contraction is used in parallel expression
    evaluation
  • Since the structure of a expression is a tree
    there are different tree-contraction techniques
  • Basic operations are
  • - redirecting edges of the tree
  • - removing nodes marking (pebbling) nodes
  • - creating additional edges
  • the final aim is to guarantee that logarithmic
    number of contractions is sufficient

6
Tree-contraction related to SimSub algorithm
7
Example Substitutions method works in O(log n)
time. In each iteration the active tree is
reduced by 1/3 at least.
The active tree consists of nodes relevant to the
output computation, The root is the output
variable (the last one).
8
Homework is it good object for SimSub? Why?
Fn is the smallest tree which needs n iterations
in tree contraction related to SimSub algorithm
9
How the SimSub algorithm works for general graphs
?
  • sometimes very poor
  • (e.g. when computing Fibonacci numbers)
  • generally with n processors we need
  • n-1 iterations
  • only one processor really works
  • each time, so the same can be done with a single
    processor

10
  • SimSub will terminate after
  • O(log (tree-size(graph))
    iterations
  • for the dependency graph of Fibonacci numbers
    tree-size (number of paths) is exponential.

11
Other tree contraction method parallel pebble
game (PPG)
  • Parallel pebble game (PPG) works for full binary
    trees, full means each father has exactly 2 sons

12
Parallel pebble game on binary tree
  • Within the game each node v of the tree has
    associated with it similar node denoted by
    cond(v).
  • At the outset of the game cond(v)v, for all v
  • During the game the pairs (v,cond(v)) can be
    thought of as additional edges
  • Node v is active if and only if cond(v)?v

13
Pebbling
  • Pebbling a node denotes the fact that in the
    current state of the game the processor
    associated with that node has sufficient
    information to evaluate the subtree rooted here

14
Three operationsactive, square and pebble
  • Activate
  • for all non-leaf nodes v in parallel do
  • if v is not active and precisely one of its
    sons is pebbled then
  • cond(v) becomes the other son
  • if v is not active and both sons are pebbled
    then
  • cond(v) becomes one of the sons arbitrarily
  • Square
  • for all nodes v in parallel do cond(v)?
    cond(cond(v))
  • Pebble
  • for all nodes v in parallel do
  • if cond(v) is pebbled then pebble v

15
Key result
  • At the outset of the game only the leaves of the
    tree are pebbled.
  • One composite move of the pebbling game is the
    sequence of individual operations
  • (activate, square, square, pebble)
  • Theorem
  • Let T be a binary tree with n leaves. If
    initially only the leaves are pebbled then after
    log2n moves of the pebbling game the root of T
    becomes pebbled.

16
Example
square
activate
square
pebbling
17
The application of the pebbling game
  • Consider the arithmetic expression
    ((3(22))35)
  • We assign a processor to each non-leaf node of
    the tree.

18
X5
X3
X3
X2
3x5
3(2x3)5
3x9
3(2x)9
2x3
2x3
2x
2x
19
Evaluation of arithmetic expressions
  • Arithmetic expressions can be evaluated on a
    PRAM in O(log n) time using O(n) processors.
Write a Comment
User Comments (0)
About PowerShow.com