Finding Good Compiler Optimization Sets - A Case-based Reasoning Approach

Nilton Luiz Queiroz Junior, Anderson Faustino da Silva

2015

Abstract

Case-Based Reasoning have been used for a long times to solve several problems. The first Case-Based Reasoning used to find good compiler optimization sets, for an unseen program, proposed several strategies to tune the system. However, this work did not indicate the best parametrization. In addition, it evaluated the proposed approach using only kernels. Our paper revisit this work, in order to present an detail analysis of an Case-Based Reasoning system, applied in the context of compilers. In adition, we propose new strategies to tune the system. Experiments indicate that Case-Based Reasoning is a good choice to find compiler optimization sets that outperform a well-engineered compiler optimization level. Our Case-Based Reasoning approach achieves an average performance of 4.84% and 7.59% for cBench and SPEC CPU2006, respectively. In addition, experiments also indicate that Case-Based Reasoning outperforms the approach proposed by Purini and Jain, namely Best10.

References

  1. Aamodt, A. and Plaza, E. (1994). Case-based reasoning; foundational issues, methodological variations, and system approaches. AI Communications, 7(1):39-59.
  2. Aho, A. V., Lam, M. S., Sethi, R., and Ullman, J. D. (2006). Compilers: Principles, Techniques and tools. Prentice Hall.
  3. cBench (2014). The collective benchmarks. http://ctuning.org/wiki/index.php/CTools:CBench. Access: January, 20 - 2015.
  4. Cooper, K. and Torczon, L. (2011). Engineering a Compiler. Morgan Kaufmann, USA, 2nd edition.
  5. Erbacher, R. and Hutchinson, S. (2012). Extending casebased reasoning to network alert reporting. In Proceeding of the International Conference on Cyber Security, pages 187-194.
  6. Henning, J. L. (2006). Spec cpu2006 benchmark descriptions. SIGARCH Computer Architecture News, 34(4):1-17.
  7. Jimenez, T., de Miguel, I., Aguado, J., Duran, R., Merayo, N., Fernandez, N., Sanchez, D., Fernandez, P., Atallah, N., Abril, E., and Lorenzo, R. (2011). Casebased reasoning to estimate the q-factor in optical networks: An initial approach. In Proceedings of the European Conference on Networks and Optical Communications, pages 181-184.
  8. Kim, W., Baik, S. W., Kwon, S., Han, C., Hong, C., and Kim, J. (2014). Real-time strategy generation system using case-based reasoning. In Proceedings of the International Symposium on Computer, Consumer and Control, pages 1159-1162.
  9. Lattner, C. and Adve, V. (2004). Llvm: A compilation framework for lifelong program analysis & transformation. In Proceedings of the International Symposium on Code Generation and Optimization, Palo Alto, California.
  10. Lima, E. D., De Souza Xavier, T., Faustino da Silva, A., and Beatryz Ruiz, L. (2013). Compiling for performance and power efficiency. In Proceedings of the International Workshop onPower and Timing Modeling, Optimization and Simulation, pages 142-149.
  11. LLVM Team (2014). The llvm compiler infrastructure. http://llvm.org. Access: January, 20 - 2015.
  12. Mendes, E. and Watson, I. (2002). A Comparison of Case-Based Reasoning Approaches to Web Hypermedia Project Cost Estimation. Proceedings of the International Conference on World Wide Web, pages 272- 280.
  13. Mitchell, T. M. (1997). Machine Learning. McGraw-Hill, Inc., New York, NY, USA, 1 edition.
  14. Mucci, P. J., Browne, S., Deane, C., and Ho, G. (1999). Papi: A portable interface to hardware performance counters. In Proceedings of the Department of Defense HPCMP Users Group Conference, pages 7-10.
  15. Muchnick, S. S. (1997). Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
  16. Purini, S. and Jain, L. (2013). Finding good optimization sequences covering program space. ACM Transactions on Architecture and Code Optimization, 9(4):1-23.
  17. Richter, M. M. and Weber, R. (2013). Case-Based Reasoning: A Textbook. Springer, USA.
  18. Shalev-Shwartz, S. and Ben-David, S. (2014). Understanding Machine Learning: From Theory to Algorithms. Cambridge University Press, Cambridge, USA.
  19. Srikant, Y. N. and Shankar, P. (2007). The Compiler Design Handbook: Optimizations and Machine Code Generation. CRC Press, Inc., Boca Raton, FL, USA, 2nd edition.
  20. Zhou, X. and Wang, F. (2014). A spatial awareness casebased reasoning approach for typhoon disaster management. In Proceedings of the IEEE International Conference on Software Engineering and Service Science, pages 893-896.
  21. Zhou, Y.-Q. and Lin, N.-W. (2012). A Study on Optimizing Execution Time and Code Size in Iterative Compilation. Third International Conference on Innovations in Bio-Inspired Computing and Applications, pages 104-109.
Download


Paper Citation


in Harvard Style

Queiroz Junior N. and da Silva A. (2015). Finding Good Compiler Optimization Sets - A Case-based Reasoning Approach . In Proceedings of the 17th International Conference on Enterprise Information Systems - Volume 1: ICEIS, ISBN 978-989-758-096-3, pages 504-515. DOI: 10.5220/0005380605040515


in Bibtex Style

@conference{iceis15,
author={Nilton Luiz Queiroz Junior and Anderson Faustino da Silva},
title={Finding Good Compiler Optimization Sets - A Case-based Reasoning Approach},
booktitle={Proceedings of the 17th International Conference on Enterprise Information Systems - Volume 1: ICEIS,},
year={2015},
pages={504-515},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005380605040515},
isbn={978-989-758-096-3},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 17th International Conference on Enterprise Information Systems - Volume 1: ICEIS,
TI - Finding Good Compiler Optimization Sets - A Case-based Reasoning Approach
SN - 978-989-758-096-3
AU - Queiroz Junior N.
AU - da Silva A.
PY - 2015
SP - 504
EP - 515
DO - 10.5220/0005380605040515