skip to main content
research-article

An input-centric paradigm for program dynamic optimizations

Authors Info & Claims
Published:17 October 2010Publication History
Skip Abstract Section

Abstract

Accurately predicting program behaviors (e.g., locality, dependency, method calling frequency) is fundamental for program optimizations and runtime adaptations. Despite decades of remarkable progress, prior studies have not systematically exploited program inputs, a deciding factor for program behaviors.

Triggered by the strong and predictive correlations between program inputs and behaviors that recent studies have uncovered, this work proposes to include program inputs into the focus of program behavior analysis, cultivating a new paradigm named input-centric program behavior analysis. This new approach consists of three components, forming a three-layer pyramid. At the base is program input characterization, a component for resolving the complexity in program raw inputs and the extraction of important features. In the middle is input-behavior modeling, a component for recognizing and modeling the correlations between characterized input features and program behaviors. These two components constitute input-centric program behavior analysis, which (ideally) is able to predict the large-scope behaviors of a program's execution as soon as the execution starts. The top layer of the pyramid is input-centric adaptation, which capitalizes on the novel opportunities that the first two components create to facilitate proactive adaptation for program optimizations.

By centering on program inputs, the new approach resolves a proactivity-adaptivity dilemma inherent in previous techniques. Its benefits are demonstrated through proactive dynamic optimizations and version selection, yielding significant performance improvement on a set of Java and C programs.

References

  1. }}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
  2. }}R. Allen and K. Kennedy. Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann Publishers, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}M. Arnold, S. Fink, D. Grove, M. Hind, and P. Sweeney. Adaptive optimization in the Jalapeno JVM. In Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, pages 47--65, Minneapolis, MN, October 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}M. Arnold, M. Hind, and B. G. Ryder. Online feedback-directed optimization of Java. In Proceedings of ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 111--129, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}M. Arnold, A. Welc, and V. Rajan. Improving virtual machine performance using a cross-run profile repository. In the Conference on Object-Oriented Systems, Languages, and Applications, pages 297--311, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}P. Berube and J. N. Amaral. Benchmark design for robust profile-directed optimization. In Standard Performance Evaluation Corporation (SPEC) Workshop, 2007.Google ScholarGoogle Scholar
  7. }}J. Bilmes, K. Asanovic, C.-W. Chin, and J. Demmel. Optimizing matrix multiply using PHiPAC: A portable, high-performance, ANSI C coding methodology. In Proceedings of the ACM International Conference on Supercomputing, pages 340--347, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}W. Chen, S. Bhansali, T. M. Chilimbi, X. Gao, and W. Chuang. Profile-guided proactive garbage collection for locality optimization. In Proceedings of PLDI, pages 332--340, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}B. Childers, J. Davidson, and M. L. Soffa. Continuous compilation: A new approach to aggressive and adaptive code transformation. In Proceedings of NSF Next Generation Software Workshop, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}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
  11. }}J. Dean and C. Chambers. Towards better inlining decisions using inlining trials. In Proceedings of ACM Conference on Lisp and Functional Programming, pages 273--282, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}P. Diniz and M. Rinard. Dynamic feedback: an effective technique for adaptive computing. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 71--84, Las Vegas, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}M. Ernst, J. Perkins, P. Guo, S. McCamant, M. T. C. Pacheco, and C. Xiao. The daikon system for dynamic detection of likely invariants. Science of Computer Programming, 69:35-- 45, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}M. Frigo and S. G. Johnson. The design and implementation of FFTW3. Proceedings of the IEEE, 93(2):216--231, 2005.Google ScholarGoogle ScholarCross RefCross Ref
  15. }}B. Grant, M. Philipose, M. Mock, C. Chambers, and S. J. Eggers. An evaluation of staged run-time optimizations in DyC. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 293--304, Atlanta, Georgia, May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}N. Grcevski, A. Kilstra, K. Stoodley, M. Stoodley, and V. Sundaresan. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In Proceedings of the 3rd Virtual Machine Research and Technology Symposium (VM), May 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}D. Gu and C. Verbrugge. Phase-based adaptive recompilation in a JVM. In Proceedings of the International Symposium on Code Generation and Optimization, pages 24--34, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}T. Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learning. Springer, 2001.Google ScholarGoogle ScholarCross RefCross Ref
  19. }}E.-J. Im, K. Yelick, and R. Vuduc. Sparsity: Optimization framework for sparse matrix kernels. Int. J. High Perform. Comput. Appl., 18(1):135--158, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}Y. Jiang, X. Shen, J. Chen, and R. Tripathi. Analysis and approximation of optimal co-scheduling on chip multiprocessors. In Proceedings of the International Conference on Parallel Architecture and Compilation Techniques (PACT), pages 220--229, October 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}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 Proceedings of the International Symposium on Code Generation and Optimization (CGO), pages 248--256, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. }}T. P. Kistler and M. Franz. Continuous program optimization: a case study. ACM Transactions on Programming Languages and Systems, 25(4):500--548, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}C. Lattner. Macroscopic Data Structure Analysis and Optimization. PhD thesis, Computer Science Dept., Univ. of Illinois at Urbana-Champaign, May 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}J. Lau, M. Arnold, M. Hind, and B. Calder. Online performance auditing: Using hot optimizations without getting burned. In Proceedings of PLDI, pages 239--251, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. }}X. Li, M. J. Garzaran, and D. Padua. A dynamically tuned sorting library. In Proceedings of the International Symposium on Code Generation and Optimization, pages 111--124, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. }}M. Lipasti and J. Shen. Exceeding the dataflow limit via value prediction. In Proceedings of the International Symposium on Microarchitecture (MICRO-29), pages 226--237, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. }}F. Mao and X. Shen. Cross-input learning and discriminative prediction in evolvable virtual machine. In Proceedings of the International Symposium on Code Generation and Optimization (CGO), pages 92--101, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. }}F. Mao, E. Zhang, and X. Shen. Influence of program inputs on the selection of garbage collectors. In Proceedings of the International Conference on Virtual Execution Environments (VEE), pages 91--100, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. }}R. Marlet, C. Consel, and P. Boinot. Efficient incremental run-time specialization for free. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 281--292, Atlanta, GA, May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. }}M. A. Namjoshi and P. A. Kulkarni. Novel online profiling for virtual machines. In Proceedings of the International Conference on Virtual Execution Environments (VEE), pages 133--144, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. }}M. Paleczny, C. Vic, and C. Click. The Java Hotspot(TM) server compiler. In USENIX Java Virtual Machine Research and Technology Symposium, pages 1--12, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. }}M. Polettto, W. Hsieh, D. R. Engler, and M. F. Kaashoek. 'C and tcc: A language and compiler for dynamic code generation. ACM Transactions on Programming Languages and Systems, 21(2):324--369, March 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. }}M. Puschel, J. Moura, J. Johnson, D. Padua, M. Veloso, B. Singer, J. Xiong, F. Franchetti, A. Gacic, Y. Voronenko, K. Chen, R. Johnson, and N. Rizzolo. SPIRAL: code generation for DSP transforms. Proceedings of the IEEE, 93(2):232--275, 2005.Google ScholarGoogle ScholarCross RefCross Ref
  34. }}X. Shen and F. Mao. Modeling relations between inputs and dynamic behavior for general programs. In Proceedings of the Workshop on Languages and Compilers for Parallel Computing, 2007.Google ScholarGoogle Scholar
  35. }}X. Shen, Y. Zhong, and C. Ding. Locality phase prediction. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, pages 165--176, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. }}T. Sherwood, S. Sair, and B. Calder. Phase tracking and prediction. In Proceedings of International Symposium on Computer Architecture, pages 336--349, San Diego, CA, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. }}J. Singer, G. Brown, I. Watson, and J. Cavazos. Intelligent selection of application-specific garbage collectors. In Proceedings of the International Symposium on Memory Management, pages 91--102, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. }}A. Snavely and D. Tullsen. Symbiotic jobscheduling for a simultaneous multithreading processor. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, pages 66--76, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. }}S. Soman, C. Krintz, and D. F. Bacon. Dynamic selection of application-specific garbage collectors. In Proceedings of the International Symposium on Memory Management, pages 49--60, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. }}N. Thomas, G. Tanase, O. Tkachyshyn, J. Perdue, N. M. Amato, and L. Rauchwerger. A framework for adaptive algorithm selection in STAPL. In Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 277--288, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. }}M. Voss and R. Eigenmann. High-level adaptive program optimization with ADAPT. In Proceedings of ACM Symposium on Principles and Practice of Parallel Programming, pages 93--102, Snowbird, Utah, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. }}C. Wang and Z. Li. Parametric analysis for adaptive computation offloading. In Proceedings of ACM SIGPLAN Conference on Programming Languages Design and Implementation, pages 119--130, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. }}R. C. Whaley, A. Petitet, and J. Dongarra. Automated empirical optimizations of software and the ATLAS project. Parallel Computing, 27(1-2):3--35, 2001.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. }}R. W. Wisniewski, P. F. Sweeney, K. Sudeep, M. Hauswirth, E. Duesterwald, C. Cascaval, and R. Azimi.Performance and environment monitoring for whole-system characterization and optimization. In PAC2 Conference on Power/Performance Interaction with Architecture, Circuits, and Compilers, 2004.Google ScholarGoogle Scholar
  45. }}T. Yeh and Y. N. Patt. A comparison of dynamic branch predictors that use two levels of branch history. In Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 257--266, May 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. }}C. Zhang and M. Hirzel. Online phase-adaptive data layout selection. In Proceedings of the European Conference on Object-Oriented Programming, pages 309--334, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. }}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

Index Terms

  1. An input-centric paradigm for program dynamic optimizations

    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

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!