Predicting program behavior using real or estimated profiles

There is a growing interest in optimizations that depend on or benefit from an execution profile that tells where time is spent. How well does a profile from one run describe the behavior of a different run, and how does this compare with the behavior predicted by static analysis of the program? This paper defines two abstract measures of how well a profile predicts actual behavior. According to these measures, real profiles indeed do better than estimated profiles, usually. A perfect profile from an earlier run with the same data set, however, does better still, sometimes by a factor of two. Unfortunately, using such a profile is unrealistic, and can lead to inflated expectations of a profile-driven optimization.

[1]  W. Hamburgen,et al.  Pool boiling enhancement techniques for water at low pressure , 1991, 1991 Proceedings, Seventh IEEE Semiconductor Thermal Measurement and Management Symposium.

[2]  John L. Hennessy,et al.  MTOOL: a method for detecting memory bottlenecks , 1991, SIGMETRICS '91.

[3]  Vatsa Santhanam,et al.  Register allocation across procedure and module boundaries , 1990, PLDI '90.

[4]  Karl Pettis,et al.  Profile guided code positioning , 1990, PLDI '90.

[5]  David W. Wall,et al.  Limits of instruction-level parallelism , 1991, ASPLOS IV.

[6]  William R. Hamburgen,et al.  Optimal Finned Heat Sinks , 1986 .

[7]  Deborah Estrin,et al.  Visa Protocols for Controlling Inter-Organizational Datagram Flow : Extended Description , 1989 .

[8]  N. P. Jouppi,et al.  A 20-MIPS sustained 32-bit CMOS microprocessor with high ratio of sustained to peak performance , 1989 .

[9]  David W. Wall,et al.  Global register allocation at link time , 1986, SIGPLAN '86.

[10]  Scott McFarling,et al.  Program optimization for instruction caches , 1989, ASPLOS III.

[11]  Alexandru Nicolau,et al.  Parallel processing: a smart compiler and a dumb machine , 1984, SIGP.

[12]  Jeffrey C. Mogul,et al.  The effect of context switches on cache performance , 1991, ASPLOS IV.

[13]  David W. Wall Predicting program behavior using real or estimated profiles , 1991, PLDI '91.

[14]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.