Requirements for optimal execution of oops with tests

  • Authors:
  • A. Uht

  • Affiliations:
  • Univ. of California, La Jolla, CA

  • Venue:
  • ICS '88 Proceedings of the 2nd international conference on Supercomputing
  • Year:
  • 1988

Quantified Score

Hi-index 0.01

Visualization

Abstract

Both the efficient execution of branch intensive code and knowing the bounds on same are important issues in computing in general and supercomputing in particular. In prior work, it has been suggested, implied, or left as a possible maximum, that the hardware needed to execute code with branches optimally, i.e., oracular performance, is exponentially dependent on the total number of dynamic branches to be 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 1), it is shown that the hardware necessary varies from exponential to polynomial in the length of the dependency 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 dependencies.