Evaluating Knowledge Representations for Program Characterization

João Fabrício Filho, Luis Gustavo Araujo Rodriguez, Anderson Faustino da Silva

2017

Abstract

Knowledge representation attempts to organize the knowledge of a context in order for automated systems to utilize it to solve complex problems. Among several difficult problems, one worth mentioning is called code-generation, which is undecidable due to its complexity. A technique to mitigate this problem is to represent the knowledge and use an automatic reasoning system to infer an acceptable solution. This article evaluates knowledge representations for program characterization for the context of code-generation systems. The experimental results prove that program Numerical Features as knowledge representation can achieve 85% near to the best possible results. Furthermore, such results demonstrate that an automatic code-generating system, which uses this knowledge representation is capable to obtain performance better than others code-generating systems.

References

  1. Aho, A. V., Lam, M. S., Sethi, R., and Ullman, J. D. (2006). Compilers: Principles, Techniques, and Tools. Prentice Hall, Boston, MA, USA, 2 edition.
  2. Cavazos, J., Fursin, G., Agakov, F., Bonilla, E., O'Boyle, M. F. P., and Temam, O. (2007). Rapidly Selecting Good Compiler Optimizations Using Performance Counters. In Proceedings of the International Symposium on Code Generation and Optimization, pages 185-197, Washington, DC, USA. IEEE Computer Society.
  3. de Lima, E. D., de Souza Xavier, T. C., da Silva, A. F., and Ruiz, L. B. (2013). Compiling for performance and power efficiency. In Power and Timing Modeling, Optimization and Simulation (PATMOS), 2013 23rd International Workshop on, pages 142-149.
  4. Fursin, G. (2017). Collective Benchmark - Enabling realistic benchmarking and optimization. http://ctuning.org/cbench. Access: January, 9 - 2017.
  5. Gouy, I. (2017). The Computer Language Benchmarks Game. http://benchmarksgame.alioth.debian.org/. Access: January, 9 - 2017.
  6. Lattner, C. (2017). The LLVM Compiler Infrastructure. http://llvm.org. Access: January, 9 - 2017.
  7. Martins, L. G. A., Nobre, R., Cardoso, J. a. M. P., Delbem, A. C. B., and Marques, E. (2016). Clustering-based selection for the exploration of compiler optimization sequences. ACM Trans. Archit. Code Optim., 13(1):8:1-8:28.
  8. Namolaru, M., Cohen, A., Fursin, G., Zaks, A., and Freund, A. (2010). Practical Aggregation of Semantical Program Properties for Machine Learning Based Optimization. In International Conference on Compilers Architectures and Synthesis for Embedded Systems, Scottsdale, United States.
  9. Needleman, S. B. and Wunsch, C. D. (1970). A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of Molecular Biology, 48(3):443 - 453.
  10. Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M., and Duchesnay, E. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12:2825-2830.
  11. Purini, S. and Jain, L. (2013). Finding good optimization sequences covering program space. ACM Transactions on Architecture and Code Optimization, 9(4):56:1- 56:23.
  12. Queiroz Junior, N. L. and da Silva, A. F. (2015). Finding good compiler optimization sets - a case-based reasoning approach. In International Conference on Enterprise Information Systems, pages 504-515.
  13. Richter, M. M. and Weber, R. (2013). Case-Based Reasoning: A Textbook. Springer, USA.
  14. Sanches, A. and Cardoso, J. M. P. (2010). On identifying patterns in code repositories to assist the generation of hardware templates. In International Conference on Field Programmable Logic and Applications, pages 267-270, Washington, DC, USA. IEEE Computer Society.
  15. Tartara, M. and Reghizzi, S. C. (2013). Continuous learning of compiler heuristics. ACM Transactions on Architecture and Code Optimization (TACO), 9(4):46:1- 46:25.
  16. Wu, Y. and Larus, J. R. (1994). Static branch frequency and program profile analysis. In Annual International Symposium on Microarchitecture, pages 1-11, New York, NY, USA. ACM.
Download


Paper Citation


in Harvard Style

Fabrício Filho J., Rodriguez L. and da Silva A. (2017). Evaluating Knowledge Representations for Program Characterization . In Proceedings of the 19th International Conference on Enterprise Information Systems - Volume 1: ICEIS, ISBN 978-989-758-247-9, pages 582-590. DOI: 10.5220/0006333605820590


in Bibtex Style

@conference{iceis17,
author={João Fabrício Filho and Luis Gustavo Araujo Rodriguez and Anderson Faustino da Silva},
title={Evaluating Knowledge Representations for Program Characterization},
booktitle={Proceedings of the 19th International Conference on Enterprise Information Systems - Volume 1: ICEIS,},
year={2017},
pages={582-590},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006333605820590},
isbn={978-989-758-247-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 19th International Conference on Enterprise Information Systems - Volume 1: ICEIS,
TI - Evaluating Knowledge Representations for Program Characterization
SN - 978-989-758-247-9
AU - Fabrício Filho J.
AU - Rodriguez L.
AU - da Silva A.
PY - 2017
SP - 582
EP - 590
DO - 10.5220/0006333605820590