skip to main content
10.1145/2384616.2384678acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Exploiting inter-sequence correlations for program behavior prediction

Published:19 October 2012Publication History

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.

References

  1. Sqlite. http://http://www.sqlite.org/.Google ScholarGoogle Scholar
  2. A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 2nd edition, August 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Burtscher and B. G. Zorn. Exploring last n value prediction. In PACT, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Burtscher and B. G. Zorn. Prediction outcome history-based confidence estimation for load value prediction. Journal of Instruction-Level Parallelism, 1999.Google ScholarGoogle Scholar
  5. M. Burtscher and B. G. Zorn. Hybrid load-value predictors. IEEE Transactions on Computers, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. C. Ding and Y. Zhong. Predicting whole-program locality with reuse distance analysis. In PLDI, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. F. Gabbay. Speculative execution based on value prediction. Technical Report 1080, Israel Institute of Technology, 1996.Google ScholarGoogle Scholar
  11. B. Goeman, H. Vandierendonck, and K. de Bosschere. Differential fcm: Increasing value prediction accuracy by improving table usage efficiency. In HPCA, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. T. Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learning. Springer, 2001.Google ScholarGoogle ScholarCross RefCross Ref
  14. J. Henning. Spec2000: measuring cpu performance in the new millennium. IEEE Computer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. R. Larus. Whole program paths. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Atlanta, Georgia, May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Lattner. LLVM: An Infrastructure for Multi-Stage Optimization. PhD thesis, Computer Science Dept., Univ. of Illinois at Urbana-Champaign, 2002.Google ScholarGoogle Scholar
  20. M. H. Lipasti and J. P. Shen. Exceeding the dataflow limit via value prediction. In MICRO, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Pickett, C. Verbrugge, and A. Kielstra. Adaptive software return value prediction. Technical Report 1, McGill University, 2009.Google ScholarGoogle Scholar
  22. Y. Sazeides and J. E. Smith. The predictability of data values. In MICRO, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. X. Shen, Y. Zhong, and C. Ding. Locality phase prediction. In ASPLOS, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. Sherwood, S. Sair, and B. Calder. Phase tracking and prediction. In ISCA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. K. Tian, Y. Jiang, E. Zhang, and X. Shen. An input-centric paradigm for program dynamic optimizations. In OOPSLA, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. T. Yeh and Y. N. Patt. A comparison of dynamic branch predictors that use two levels of branch history. In ISCA, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. Y. Zhong, X. Shen, and C. Ding. Program locality analysis using reuse distance. ACM Transactions on Programming Languages and Systems, 31(6), 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Zhuravlev, S. Blagodurov, and A. Fedorova. Addressing shared resource contention in multicore processors via scheduling. In ASPLOS, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Exploiting inter-sequence correlations for program behavior prediction

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader