ABSTRACT
Prediction of program dynamic behaviors is fundamental to program optimizations, resource management, and architecture reconfigurations. Most existing predictors are based on locality of program behaviors, subject to some inherent limitations. In this paper, we revisit the design philosophy and systematically explore a second source of clues: statistical correlations between the behavior sequences of different program entities. Concentrated on loops, it examines the correlations' existence, strength, and values in enhancing the design of program behavior predictors. It creates the first taxonomy of program behavior sequence patterns. It develops a new form of predictors, named sequence predictors, to effectively translate the correlations into large-scope, proactive predictions of program behavior sequences. It demonstrates the usefulness of the prediction in dynamic version selection and loop importance estimation, showing 19% average speedup on a number of real-world utility applications. By taking scope and timing of behavior prediction as the first-order design objectives, the new approach overcomes limitations of existing program behavior predictors, opening up many new opportunities for runtime optimizations at various layers of computing.
- Sqlite. http://http://www.sqlite.org/.Google Scholar
- A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 2nd edition, August 2006. Google ScholarDigital Library
- M. Burtscher and B. G. Zorn. Exploring last n value prediction. In PACT, 1999. Google ScholarDigital Library
- M. Burtscher and B. G. Zorn. Prediction outcome history-based confidence estimation for load value prediction. Journal of Instruction-Level Parallelism, 1999.Google Scholar
- M. Burtscher and B. G. Zorn. Hybrid load-value predictors. IEEE Transactions on Computers, 2002. Google ScholarDigital Library
- J. Cavazos and M. O'Boyle. Method-specific dynamic compilation using logistic regression. In Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, 2006. Google ScholarDigital Library
- T. M. Chilimbi and M. Hirzel. Dynamic hot data stream prefetching for general-purpose programs. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Berlin, Germany, June 2002. Google ScholarDigital Library
- P. Chuang, H. Chen, G. Hoflehner, D. Lavery, and W. Hsu. Dynamic profile driven code version selection. In Proceedings of the 11th Annual Workshop on the Interaction between Compilers and Computer Architecture, 2007.Google Scholar
- C. Ding and Y. Zhong. Predicting whole-program locality with reuse distance analysis. In PLDI, 2003. Google ScholarDigital Library
- F. Gabbay. Speculative execution based on value prediction. Technical Report 1080, Israel Institute of Technology, 1996.Google Scholar
- B. Goeman, H. Vandierendonck, and K. de Bosschere. Differential fcm: Increasing value prediction accuracy by improving table usage efficiency. In HPCA, 2001. Google ScholarDigital Library
- S. Govindan, J. Choi, B. Urgaonkar, A. Sivasubramaniam, and A. Baldini. Statistical profiling-based techniques for effective power provisioning in data centers. In EuroSys, 2009. Google ScholarDigital Library
- T. Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learning. Springer, 2001.Google ScholarCross Ref
- J. Henning. Spec2000: measuring cpu performance in the new millennium. IEEE Computer, 2000. Google ScholarDigital Library
- S. Hu, R. Bhargava, and L. K. John. The role of return value prediction in exploiting speculative method-level parallelism. Journal of Instruction-Level Parallelism, 2003.Google Scholar
- Y. Jiang, E. Zhang, K. Tian, F. Mao, M. Geathers, X. Shen, and Y. Gao. Exploiting statistical correlations for proactive prediction of program behaviors. In CGO, 2010. Google ScholarDigital Library
- P. Jonathan, W. J. Krzanowski, and W. V. McCarthy. On the use of cross-validation to assess performance in multivariate prediction. Statistics and Computing, 10(3), 2000. Google ScholarDigital Library
- J. R. Larus. Whole program paths. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Atlanta, Georgia, May 1999. Google ScholarDigital Library
- C. Lattner. LLVM: An Infrastructure for Multi-Stage Optimization. PhD thesis, Computer Science Dept., Univ. of Illinois at Urbana-Champaign, 2002.Google Scholar
- M. H. Lipasti and J. P. Shen. Exceeding the dataflow limit via value prediction. In MICRO, 1996. Google ScholarDigital Library
- C. Pickett, C. Verbrugge, and A. Kielstra. Adaptive software return value prediction. Technical Report 1, McGill University, 2009.Google Scholar
- Y. Sazeides and J. E. Smith. The predictability of data values. In MICRO, 1997. Google ScholarDigital Library
- X. Shen, Y. Zhong, and C. Ding. Locality phase prediction. In ASPLOS, 2004. Google ScholarDigital Library
- T. Sherwood, S. Sair, and B. Calder. Phase tracking and prediction. In ISCA, 2003. Google ScholarDigital Library
- K. Tian, Y. Jiang, E. Zhang, and X. Shen. An input-centric paradigm for program dynamic optimizations. In OOPSLA, 2010. Google ScholarDigital Library
- Z. Wang and M. O'Boyle. Mapping parallelism to multi-cores: a machine learning based approach. In PPOPP'09: Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 75--84, 2009. Google ScholarDigital Library
- T. Yeh and Y. N. Patt. A comparison of dynamic branch predictors that use two levels of branch history. In ISCA, 1993. Google ScholarDigital Library
- E. Z. Zhang, Y. Jiang, and X. Shen. Does cache sharing on modern cmp matter to the performance of contemporary multithreaded programs? In PPoPP, 2010. Google ScholarDigital Library
- Y. Zhong, X. Shen, and C. Ding. Program locality analysis using reuse distance. ACM Transactions on Programming Languages and Systems, 31(6), 2009. Google ScholarDigital Library
- S. Zhuravlev, S. Blagodurov, and A. Fedorova. Addressing shared resource contention in multicore processors via scheduling. In ASPLOS, 2010. Google ScholarDigital Library
Index Terms
- Exploiting inter-sequence correlations for program behavior prediction
Recommendations
Exploiting inter-sequence correlations for program behavior prediction
OOPSLA '12Prediction of program dynamic behaviors is fundamental to program optimizations, resource management, and architecture reconfigurations. Most existing predictors are based on locality of program behaviors, subject to some inherent limitations. In this ...
Exploiting statistical correlations for proactive prediction of program behaviors
CGO '10: Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimizationThis paper presents a finding and a technique on program behavior prediction. The finding is that surprisingly strong statistical correlations exist among the behaviors of different program components (e.g., loops) and among different types of program ...
Call sequence prediction through probabilistic calling automata
OOPSLA '14Predicting a sequence of upcoming function calls is important for optimizing programs written in modern managed languages (e.g., Java, Javascript, C#.) Existing function call predictions are mainly built on statistical patterns, suitable for predicting ...
Comments