Title :
Requirements for optimal execution of loops with tests
Author :
Uht, Augustus K.
Author_Institution :
Dept. of Comput. Sci. & Eng., California Univ., San Diego, CA, USA
fDate :
9/1/1992 12:00:00 AM
Abstract :
Both the efficient execution of branch intensive code and knowing the bounds on the same are important issues in computing in general and supercomputing in particular. In prior work, it has been suggested that the hardware needed to execute code with branches optimally is exponentially dependent on the total number of dynamic branches executed, this number of branches being proportional at least to the number of iterations of the loop. For classes of code taking at least one cycle per iteration to execute, this is not the case. For loops containing one test (normally in the form of a Boolean recurrence of order one), it is shown that the hardware necessary varies from exponential to polynomial in the length of the dependence cycle L , while execution time varies from one time cycle per iteration to less than L time cycles per iteration; the variation depends on specific code dependences. These results bring the eager evaluation of imperative code closer to fruition
Keywords :
parallel programming; Boolean recurrence; branch intensive code; dependence cycle; dynamic branches; imperative code; loop iterations; loops with tests; order one; time cycle; Application software; Computer science; Concurrent computing; Hardware; Optimal control; Parallel machines; Pipelines; Supercomputers; Testing; Timing;
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on