Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2190025.2190072acmconferencesArticle/Chapter ViewAbstractPublication PagescgoConference Proceedingsconference-collections
Article

Using machines to learn method-specific compilation strategies

Published: 02 April 2011 Publication History

Abstract

Support Vector Machines (SVMs) are used to discover method-specific compilation strategies in Testarossa, a commercial Just-in-Time (JiT) compiler employed in the IBM® J9 Java™ Virtual Machine. The learning process explores a large number of different compilation strategies to generate the data needed for training models. The trained machine-learned model is integrated with the compiler to predict a compilation plan that balances code quality and compilation effort on a per-method basis. The machine-learned plans outperform the original Testarossa for start-up performance, but not for throughput performance, for which Testarossa has been highly hand-tuned for many years.

References

[1]
Ali-Reza Adl-Tabatabai, Michal Cierniak, Guei-Yuan Lueh, Vishesh M. Parikh, and James M. Stichnoth. Fast, Effective Code Generation in a Just-in-Time Java Compiler. SIGPLAN Notices, 33(5):280-290, 1998.
[2]
Matthew Arnold, Stephen Fink, David Grove, Michael Hind, and Peter F. Sweeney. Adaptive Optimization in the Jalapeño JVM. In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 47-65, New York, NY, USA, 2000. ACM.
[3]
Matthew Arnold, Michael Hind, and Barbara Ryder. An Empirical Study of Selective Optimization. Languages and Compilers for Parallel Computing, pages 49-67, 2001.
[4]
S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovic, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications, pages 169-190, New York, NY, USA, October 2006. ACM Press.
[5]
John Cavazos, Grigori Fursin, Felix V. Agakov, Edwin V. Bonilla, Michael F. P. O'Boyle, and Olivier Temam. Rapidly Selecting Good Compiler Optimizations using Performance Counters. In Code Generation and Optimization (CGO), pages 185-197, San Jose, CA, March 2007.
[6]
John Cavazos and Michael F. P. O'Boyle. Method-specific dynamic compilation using logistic regression. In Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), pages 229-240, Portland, OR, 2006.
[7]
Corinna Cortes and Vladimir Vapnik. Support-vector Networks. Machine Learning, 20:273-297, September 1995.
[8]
Christophe Dubach, John Cavazos, Bjön Franke, Grigori Fursin, Michael F.P. O'Boyle, and Olivier Temam. Fast compiler optimisation evaluation using code-feature based performance prediction. In Proceedings of the 4th International Conference on Computing frontiers (CF'07), pages 131-142, New York, NY, USA, 2007. ACM.
[9]
Rong-En Fan, Kai-Wei Chang, Cho-Jui Hsieh, Xiang-Rui Wang, and Chih-Jen Lin. LIBLINEAR: A library for large linear classification. Journal of Machine Learning Research, 9:1871-1874, 2008.
[10]
Grigori Fursin, Albert Cohen, Michael O'Boyle, and Olivier Temam. Quick and Practical Run-time Evaluation of Multiple Program Optimizations. Transactions on High-Performance Embedded Architectures and Compilers I, pages 34-53, 2007.
[11]
Grigori Fursin, Cupertino Miranda, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Ayal Zaks, Bilha Mendelson, Edwin Bonilla, John Thomson, Hugh Leather, Chris Williams, and Michael O'Boyle. MILEPOST GCC: Machine Learning Based Research Compiler. In GCC Developer Summit 2008, Ottawa, ON, 2008.
[12]
James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification. Addison-Wesley Professional, 3rd edition, 2005.
[13]
Nikola Grcevski, Allan Kielstra, Kevin Stoodley, Mark Stoodley, and Vijay Sundaresan. Java Just-In-Time Compiler and Virtual Machine Improvements for Server and Middleware Applications. In VM'04: Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium, page 12, Berkeley, CA, USA, 2004. USENIX Association.
[14]
Trevor Hastie, Robert Tibshirani, and Jerome H. Friedman. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer Verlag, 2009.
[15]
Kenneth Hoste and Lieven Eeckhout. COLE: Compiler optimization level exploration. In Code Generation and Optimization (CGO), pages 165-174. ACM, 2008.
[16]
Kenneth Hoste, A. Georges, and Lieven Eeckhout. Automated just-in-time compiler tuning. In Code Generation and Optimization (CGO). ACM, 2010.
[17]
IBM Corporation. IBM J9 Java Virtual Machine. http://www.ibm.com/developerworks/java/jdk/.
[18]
S. Sathiya Keerthi, S. Sundararajan, Kai-Wei Chang, Cho-Jui Hsieh, and Chih-Jen Lin. A Sequential Dual Method for Large Scale Multi-class Linear SVMs. In Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining (KDD'08), pages 408-416, New York, NY, USA, 2008. ACM.
[19]
Jeremy Lau, Matthew Arnold, Michael Hind, and Brad Calder. Online Performance Auditing: Using Hot Optimizations Without Getting Burned. Programming Language Design and Implementation (PLDI), 41(6):239-251, 2006.
[20]
Robert Love. Linux Kernel Development. Novell Press, 2nd edition, 2005.
[21]
R. N. Sanchez. Applying support vector machines to discover method-specific compilation strategies. Master's thesis, University of Alberta, Edmonton, AB, Canada, September 2010.
[22]
R. N. Sanchez, J. N. Amaral, D. Szafron, M. Pirvu, and M. Stoodley. Using support vector machines to learn how to compile a method. In 22nd International Symposium on Computer Architecture and High-Performance Computing (SBAC-PAD), Petropolis, RJ, Brazil, October 2010.
[23]
Richard W. Stevens and Stephen A. Rago. Advanced Programming in the UNIX Environment. Addison-Wesley Professional, 2nd edition, 2005.
[24]
Kapil Vaswani, Matthew J. Thazhuthaveetil, Y. N. Srikant, and P. J. Joseph. Microarchitecture Sensitive Empirical Models for Compiler Optimizations. In Code Generation and Optimization (CGO), pages 131-143, Los Alamitos, CA, USA, 2007. IEEE Computer Society.

Cited By

View all
  • (2023)Array Bytecode Support in MicroJITProceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3623507.3623557(29-38)Online publication date: 18-Oct-2023
  • (2022)Machine-Learning-Based Self-Optimizing Compiler Heuristics✱Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3546921(98-111)Online publication date: 14-Sep-2022
  • (2018)A Survey on Compiler Autotuning using Machine LearningACM Computing Surveys10.1145/319797851:5(1-42)Online publication date: 18-Sep-2018
  • Show More Cited By
  1. Using machines to learn method-specific compilation strategies

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    CGO '11: Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization
    April 2011
    324 pages
    ISBN:9781612843568

    Sponsors

    Publisher

    IEEE Computer Society

    United States

    Publication History

    Published: 02 April 2011

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    CGO '11 Paper Acceptance Rate 28 of 105 submissions, 27%;
    Overall Acceptance Rate 312 of 1,061 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)5
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 12 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Array Bytecode Support in MicroJITProceedings of the 15th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3623507.3623557(29-38)Online publication date: 18-Oct-2023
    • (2022)Machine-Learning-Based Self-Optimizing Compiler Heuristics✱Proceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3546921(98-111)Online publication date: 14-Sep-2022
    • (2018)A Survey on Compiler Autotuning using Machine LearningACM Computing Surveys10.1145/319797851:5(1-42)Online publication date: 18-Sep-2018
    • (2016)Evolutionary Optimization of Compiler Flag Selection by Learning and Exploiting Flags InteractionsProceedings of the 2016 on Genetic and Evolutionary Computation Conference Companion10.1145/2908961.2931696(1159-1166)Online publication date: 20-Jul-2016
    • (2015)Live Introspection of Target-Agnostic JIT in SimulationProceedings of the International Workshop on Smalltalk Technologies10.1145/2811237.2811295(1-9)Online publication date: 15-Jul-2015
    • (2015)Use of Previously Acquired Positioning of Optimizations for Phase Ordering ExplorationProceedings of the 18th International Workshop on Software and Compilers for Embedded Systems10.1145/2764967.2764978(58-67)Online publication date: 1-Jun-2015
    • (2014)Exploration of compiler optimization sequences using clustering-based selectionACM SIGPLAN Notices10.1145/2666357.259782149:5(63-72)Online publication date: 12-Jun-2014
    • (2014)Automatic optimization of thread-coarsening for graphics processorsProceedings of the 23rd international conference on Parallel architectures and compilation10.1145/2628071.2628087(455-466)Online publication date: 24-Aug-2014
    • (2014)Exploration of compiler optimization sequences using clustering-based selectionProceedings of the 2014 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems10.1145/2597809.2597821(63-72)Online publication date: 12-Jun-2014
    • (2013)Exploring single and multilevel JIT compilation policy for modern machines 1ACM Transactions on Architecture and Code Optimization10.1145/2541228.254122910:4(1-29)Online publication date: 1-Dec-2013
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media