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.
- 1.Aiken, A. and Nicolau, A. Perfect Pipelining: A New Loop Parallelization Technique. In Proceedings of the 1988 European Symposium on Programming. , 1988. Also available as Dept. of Computer Science Technical Report Number 87-873, Comell University, Ithaca, N.Y. 14853. Google ScholarDigital Library
- 2.Baneajee, U. and Gajski, D. Fast Execution of Loops With IF Statements. IEEE Transactions on Computers C-33(11):1030-1033, November, 1984.Google Scholar
- 3.Cytron, R. G. Doacross: Beyond Vectorization for Multiproc~ssors (Extended Abstract). In Proceedings of the 1986 International Conference on Parallel Processing, pages 836-844. Pennsylvania State University and the IEEE Computer Society, August, 1986.Google Scholar
- 4.Ebcioglu, K. A Compilation Technique for Software Pipelining of Loops with Conditional Jumps. In Proceedings of the Twentieth Annual Workshop on Microprogramming (MICRO-20), pages 69-79. Association of Computing Machinery, December, 1987. Google ScholarDigital Library
- 5.Padua, D. A. and Wolfe, M. J. Advanced Compiler Optimizations for Supercomputers. Communications of the ACM 29(12):1184-1201, December, 1986. Google ScholarDigital Library
- 6.Polychronopoulos, C.D. On Program Restructuring, Scheduling, and Communication for Parallel Processor Systems. PhD thesis, University of illinois at Urbana-Champaign, August, 1986. Available as Center for Supercomputing Research and Development Tech. Report CSRD No. 595. Google ScholarDigital Library
- 7.Riseman, E. M. and Foster, C. C. The Inhibition of Potential Parallelism by Conditional Jumps. IEEE Transactions on Computers :1405-1411, December, 1972.Google Scholar
- 8.Su, B., Ding, S., Wang, I. and Xia, J. GURPR - A Method for Global Software Pipefining. In Proceedings of the Twentieth Annual Workshop on Microprogramming (MICRO-20), pages 88-96. Association of Computing Machinery, December, 1987. Google ScholarDigital Library
- 9.Tomasulo, R. M. An Efficient Algorithm for Expoiting Multiple Arithmetic Units. IBM Journal :25-33, january, 1967.Google Scholar
- 10.Uht, A. K. Hardware Extraction of Low-Level Concurrency from Sequential Instruction Streams. Phl) thesis, Carnegie-Mellon University, Pittsburgh, PA, December, 1985. Available from University Microfilms International, Ann Arbor, Michigan, U.S.A. Google ScholarDigital Library
- 11.Uht, A. K. and Wedig, R. G. Hardware Extraction of Low-level Concurrency from Serial Instruction Streams. In Proceedings of the International Conference on Parallel Processing, pages 729-736. IEEE Computer Society and the Association for Computing Machinery, August, 1986.Google Scholar
- 12.Oht, A. K. Incremental Performance Contributions of Hardware Concurrency Extraction Techniques. In Proceedings of the International Conference on Supercomputing, Athens, Greece. Computer Technology Institute, Greece, in cooImration with the Association for Computing Machinery, IFIP, et al, June, 1987. Springer-Verlag Lecture Note Series. in publication. Google ScholarDigital Library
- 13.Uht, A. K., Polychronopoulos, C. D., and Kolen, J. F. On tim Combination of Hardware and Software Concurrency Extraction Methods. In Proceedings of the Twentieth Annual Workshop on Microprogramming (MICRO-20), pages 133-141. Association of Computing Machinery, December, 1987. Google ScholarDigital Library
Index Terms
- Requirements for optimal execution of oops with tests
Recommendations
Requirements for Optimal Execution of Loops with Tests
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 ...
A compiler optimization to reduce execution time of loop nest
In this paper, a compiler optimization to reduce the execution time of loop nest is proposed. Loop tiling is used to optimize loop nest. Loop tiling is the well-known optimization for improving locality. However, it has a count result that increases the ...
Comments