10.4 DERIVING THE DEPENDENCE GRAPH FOR AN ALGORITHM

We use Eq. 10.1 to study the dependence of the algorithm variables. Variable y is an output variable, and variables x and a are input variables. We note that the algorithm gives rise to a 2-D graph x1D49F_EuclidMathOne_10n_000100 since we have two indices, i and j. Since the dimensionality of x1D49F_EuclidMathOne_10n_000100 is low, it is best to visualize x1D49F_EuclidMathOne_10n_000100 using a dependence graph since this is easier for humans to analyze. We refer to any point in x1D49F_EuclidMathOne_10n_000100 as a vector p

(10.2) c10e002

For given values of the indices, the vector corresponds to a point in the c10ue005 space.The graph x1D49F_EuclidMathOne_10n_000100 covers the points p(i, j) ∈ x1D49F_EuclidMathOne_10n_000100 where the range of the indices defines the boundaries of x1D49F_EuclidMathOne_10n_000100 as

(10.3) c10e003

Note that x1D49F_EuclidMathOne_10n_000100 extends to ∞ in the i direction, which defines an extremal ray.

10.4.1 Defining the Algorithm Variables in x1D49F_EuclidMathOne-Bold_11n_000100

We study in this section how to define the dependence of a variable in x1D49F_EuclidMathOne_10n_000100. Figure 10.1 shows the dependence graph of the 1-D FIR filter for the case N = 4. Let us consider the input variable a in Eq. 10.1. A specific instance of that variable such as a(2), for example, implies that we have set the index j equal to 2. We can formally write this substitution as

(10.4) c10e004

Figure 10.1 Dependence graph for the 1-D FIR filter for the case N = 4.

c10f001

The above equation is a straight line equation in x1D49F_EuclidMathOne_10n_000100 where a(2) is represented by a horizontal line. Figure 10.1 shows the dependence graph of the three variables y, a, and x. The horizontal straight line actually defines a set of points in eax1D49F_EuclidMathOne_10n_000100, where all the points use the same instant of a to do their operations. Equation 10.4 can be written in matrix form as Ap = 2 where A is the dependence matrix of variable ea and p is any point. For our 2-D case, A becomes a row vector given by [0 1]. We call ea the subdomain of variable a. This subdomain ea is described by the basis vector

(10.5) c10e005

Chapter 11 will explain why this vector is a basis vector of the dependence matrix for a variable. We will need later to define the nullvector b associated with the basis vector of a variable. Variable a has the associated nullvector

(10.6) c10e006

The two vectors ea and ba satisfy the equation:

(10.7) c10e007

A specific value for variable x(3) can similarly be described by the straight line equation

(10.8) c10e008

The associated nullvector ex is

(10.9) c10e009

This is represented by the diagonal lines in Fig. 10.1. The associated basis vector bx is given by

(10.10) c10e010

For output y(5), the index dependence is given by the equation

(10.11) c10e011

and the nullvector ey is given by

(10.12) c10e012

The basis vector by encompasses all the points in x1D49F_EuclidMathOne_10n_000100 that produce results to be used to calculate a specific instance of y. The associated basis vector is given by

(10.13) c10e013

A node in x1D49F_EuclidMathOne_10n_000100 represents the operations to be performed by each iteration. In our example, only one operation is to be performed by an iteration:

(10.14) c10e014

Since the addition operation is associative, we could have written the above iterative step as

(10.15) c10e015

Having derived the dependence graph for the given algorithm, we now need to synchronize the operation of each node. We need to know how to assign time values to each node dictating when the operation in each node is to be performed. This is called node scheduling. We also need to assign each node to a unique hardware processor or thread in a multicore, multithreaded implementation. This is called node projection.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.74.211