Abstract
Program dynamic optimization, for being adaptive to runtime behavior changes, has become increasingly important for both performance and energy savings. However, most runtime optimizations often suffer from the lack of a global picture of a program’s execution, and cannot afford sophisticated program analysis. On the other hand, offline profiling techniques overcome both obstacles but are oblivious to the effects of program inputs.
An approach in the between is to offline find the connections between program inputs and runtime behavior, and then apply the knowledge to runtime optimizations. Although it potentially gets the best of both worlds, it faces a fundamental challenge: How to discover and model the relations between inputs and runtime behavior for general programs.
This work tackles the problem from three aspects. It proposes an extensible input characterization language to resolve the complexity of program inputs. A translator to the langauage helps automatically convert a raw input into an attribute vector, which is then refined by a feature selector to remove redundancies and noises. Finally, statistical learning builds input-behavior models. Experiments on IBM XL compilers show accurate prediction of detailed execution profiles, helping profile-directed compilation outperform both static and offline profiling-based compilations, demonstrating the potential of the technique for continuous program optimizations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Berube, P., Amaral, J.N.: Benchmark design for robust profile-directed optimization. In: Standard Performance Evaluation Corporation (SPEC) Workshop (2007)
Chang, P.P., Mahlke, S.A., Chen, W.Y., Hwu, W.: Profile-guided automatic inline expansion for c programs. Software Practice and Experience 22(5) (1992)
Chen, W., Bhansali, S., Chilimbi, T.M., Gao, X., Chuang, W.: Profile-guided proactive garbage collection for locality optimization. In: Proceedings of ACM SIGPLAN Conference on Programming Languages Design and Implementation (2006)
Childers, B., Davidson, J., Soffa, M.L.: Continuous compilation: A new approach to aggressive and adaptive code transformation. In: Proceedings of 2003 International Parallel and Distribute Processing Symposium (IPDPS) (2003)
Dean, J., Chambers, C.: Towards better inlining decisions using inlining trials. In: Proceedings of ACM Conference on Lisp and Functional Programming (1994)
Ding, C., Zhong, Y.: Predicting whole-program locality with reuse distance analysis. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, San Diego, CA (June 2003)
Diniz, P., Rinard, M.: Dynamic feedback: an effective technique for adaptive computing. In: Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, Las Vegas (May 1997)
Edvardsson, J.: A survey on automatic test data generation. In: Proceedings of the 2nd Conference on Computer Science and Engineering, pp. 21–28 (October 1999)
Godefroid, P., Klarlund, N., Sen, K.: Dart: Directed automated random testing. In: Proceedings of the Conference on Programming Language Design and Implementation (2005)
Hastie, T., Tibshirani, R., Friedman, J.: The elements of statistical learning. Springer, Heidelberg (2001)
Kanungo, T., Mount, D.M., Netanyahu, N., Piatko, C., Silverman, R., Wu, A.Y.: A local search approximation algorithm for k-means clustering. In: Proceedings of the 18th ACM Symposium on Computational Geometry (2002), http://www.cs.umd.edu/users/mount/Projects/KMeans/
King, J.C.: Symbolic execution and program testing. Communications of the ACMÂ 19(7) (1976)
Kistler, T.P., Franz, M.: Continuous program optimization: a case study. ACM Transactions on Programming Languages and Systems 25(4), 500–548 (2003)
Lau, J., Arnold, M., Hind, M., Calder, B.: Online performance auditing: Using hot optimizations without getting burned. In: Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation (2006)
Leavens, G., Baker, A., Ruby, C.: Preliminary design of JML: A behavioral interface specification language for java. ACM SIGSOFT Software Engineering Notes 31(3), 1–38 (2006)
Li, X., Garzaran, M.J., Padua, D.: A dynamically tuned sorting library. In: Proceedings of the International Symposium on Code Generation and Optimization (2004)
Shen, X., Mao, F.: Modeling relations between inputs and dynamic behavior for general programs. Technical Report WM-CS-2007-07, Computer Science Dept., College of William and Mary (July 2007)
Shen, X., Zhong, Y., Ding, C.: Locality phase prediction. In: Proceedings of the Eleventh International Conference on Architect ural Support for Programming Languages and Operating Systems (ASPLOS XI), Boston, MA (2004)
Shen, X., Zhong, Y., Ding, C.: Phase-based miss rate prediction. In: Proceedings of the International Workshop on Languages and Compilers for Parallel Computing, West Lafayette, IN (September 2004)
Thomas, N., Tanase, G., Tkachyshyn, O., Perdue, J.: A framework for adaptive algorithm selection in stapl. In: Proceedings of ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2005)
Voss, M., Eigenmann, R.: High-level adaptive program optimization with ADAPT. In: Proceedings of ACM Symposium on Principles and Practice of Parallel Programming, Snowbird, Utah (June 2001)
Whaley, J., Martin, M.C., Lam, M.S.: Automatic extraction of object-oriented component interfaces. In: Proceedings of International Symposium on Software Testing and Analysis (2002)
Zhong, Y., Dropsho, S.G., Shen, X., Studer, A., Ding, C.: Miss rate prediction across program inputs and cache configurations. IEEE Transactions on Computers 56(3) (2007)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shen, X., Mao, F. (2008). Modeling Relations between Inputs and Dynamic Behavior for General Programs. In: Adve, V., Garzarán, M.J., Petersen, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2007. Lecture Notes in Computer Science, vol 5234. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85261-2_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-85261-2_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-85260-5
Online ISBN: 978-3-540-85261-2
eBook Packages: Computer ScienceComputer Science (R0)