frequently executed (Free web space) paths, and then proposed a very-long-instruction-word
Monday, December 31st, 2007frequently executed paths, and then proposed a very-long-instruction-word (VLIW) architecture [Fisher 1983] that could expose the microoperations directly to user programs, using the compiler to schedule. Aiken and Nicolau [1988] were among the first to point out that a single loop iteration need not be scheduled in isolation, and presented the algorithm for optimal (ignoring resource constraints) parallelization of loops. Many variations of the multiprocessor scheduling problem are NP-complete [Garey and Johnson 1979; Ullman 1975]. The iterative modulo scheduling algorithm [Rau 1994] gets good results in practice. In the absence of resource constraints, it is equivalent to the Bellman-Ford shortest-path algorithm [Ford and Fulkerson 1962]. Optimal schedules can be obtained (in principle) by expressing the constraints as an integer linear program [Govindarajan et al. 1996], but integer-linearprogram solvers can take exponential time (the problem is NP-complete), and the register-allocation constraint is still difficult to express in linear inequalities. Ball and Larus [1993] describe and measure the static branch-prediction heuristics shown in Section 20.3. Young and Smith [1994] show a profile-based static branch-prediction algorithm that does better than optimal static predition; the apparent contradiction in this statement is explained by the fact that their algorithm replicates some basic blocks, so that a branch that’s 80% taken (with a 20% misprediction rate) might become two different branches, one almost-always taken and one almost- always not taken. Team-Fly Team-Fly EXERCISES . 20.1 Schedule the following loop using the Aiken-Nicolau algorithm: for i . 1 to N a . X[i -2] b . Y[i -1] c . a b d . U[i] e . X[i -1] f . d + e g . d c h : X[i] . g j : Y[i] . f a. Label all the scalar variables with subscripts i and i - 1. Hint: In this loop there are no loop-carried scalar-variable dependences, so none of the subscripts will be i - 1. b. Perform scalar replacement on uses of X[] and Y []. Hint: Now you will have subscripts of i - 1 and i - 2. c. Perform copy propagation to eliminate variables a, be. d. Draw a data-dependence graph of statements c, d, f, g, h, j; label intraiteration edges with 0 and loop-carried edges with 1 or 2, depending on the number of iterations
If you are in need for cheap and reliable webhost to host your website, we recommend http web server services.