The Community for Technology Leaders
Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622) (2000)
Philadelphia, Pennsylvania
Oct. 15, 2000 to Oct. 19, 2000
ISSN: 1089-795X
ISBN: 0-7695-0622-4
pp: 71
Kim M. Hazelwood , North Carolina State University
Thomas M. Conte , North Carolina State University
Dynamic Optimization is an umbrella term that refers to any optimization of software that is performed after the initial compiles time. It is a complementary optimization opportunity that may greatly improve performance on any computer system, but plays an especially important role in statically scheduled code. Several groups are working on developing dynamic optimization systems, yet the area of dynamic optimization algorithms can still benefit from further research. We introduce a lightweight algorithm that can be used in any modern dynamic optimizer to balance control flow and predication based on actual runtime behavior. In addition, we study the effectiveness of predicting overall runtime behavior based on a small sample size. Preliminary results show that if we skip the warm-up period of programs, profiles based on a small sample size of a particular run can be quite representative of overall runtime behavior (up to 98% correlation). This profile information can be used effectively in a number of dynamic optimizations. We found that our dynamic if-conversion algorithm can use this collated profile data to incorporate actual branch misprediction rates into the if-conversion decision process. This method acts as an effective means for balancing the results of static if-conversion, achieving speedup values of up to 14.7%, and can be easily incorporated into modern dynamic optimizers.

K. M. Hazelwood and T. M. Conte, "A Lightweight Algorithm for Dynamic If-Conversion during Dynamic Optimization," Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622)(PACT), Philadelphia, Pennsylvania, 2000, pp. 71.
93 ms
(Ver 3.3 (11022016))