Compilação Dinâmica com Seleção Inteligente de Otimizações
Resumo
Sistemas que utilizam compilação dinâmica geram código alvo em tempo de execução, fazendo com que o tempo de compilação seja incluı́do no tempo total do sistema. Portanto, é crucial que o sistema de compilação dinâmico tenham ao mesmo tempo um baixo custo e seja capaz de gerar código de boa qualidade. Neste artigo apresentamos um sistema de aprendizado de máquina para seleção inteligente de otimizações que aprende quais as melhores sequências de otimizações para cada região de código compilado por um compilador dinâmico. O sistema foi implementado e testado em um tradutor dinâmico de binários, o OI-DBT, trazendo um ganho médio de desempenho de 26,32%.
Referências
Cavazos, J. and O’boyle, M. F. (2006). Method-specific dynamic compilation using logistic regression. In ACM SIGPLAN Notices, volume 41, pages 229–240. ACM.
Duesterwald, E. and Bala, V. (2000). Software profiling for hot path prediction: Less is more. ACM SIGOPS, 34(5):202–211.
Hiniker, D., Hazelwood, K., and Smith, M. D. (2005). Improving region selection in dynamic optimization systems. MICRO 38, pages 141–154, Washington, DC, USA. IEEE Computer Society.
Hoste, K., Georges, A., and Eeckhout, L. (2010). Automated just-in-time compiler tuning. In CGO’10, pages 62–72. ACM.
Ishizaki, K., Takeuchi, M., Kawachiya, K., Suganuma, T., Gohda, O., Inagaki, T., Koseki, A., Ogata, K., Kawahito, M., Yasue, T., et al. (2003). Effectiveness of cross-platform optimizations for a java just-in-time compiler. In ACM SIGPLAN Notices, volume 38, pages 187–204. ACM.
Muchnick, S. S. (1997). Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
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. J. Mol. Biol., 48:443–453.
Ottoni, G. (2018). HHVM JIT: A profile-guided, region-based compiler for PHP and Hack. In ACM SIGPLAN Notices, volume 53, pages 151–165. ACM.
Richter, M. M. and Weber, R. O. (2013). Case-Based Reasoning: A Textbook. Springer Publishing Company, Incorporated.
Sanchez, R. N., Amaral, J. N., Szafron, D., Pirvu, M., and Stoodley, M. (2011). Using machines to learn method-specific compilation strategies. In CGO, pages 257–266. IEEE.
Venners, B. (1998). The Java Virtual Machine. McGraw-Hill, New York.
Wang, C., Zheng, B., Kim, H., Jr., M. B., and Wu, Y. (2007). Two-pass MRET trace selection for dynamic optimization. Patent number 20070079293.
Yadav, R. and Bhadoria, R. S. (2015). Performance analysis for Android runtime environment. In CSNT’15, pages 1076–1079. IEEE.
Zhao, J. (2004). Jikes RVM Adaptive Optimization System with Intelligent Algorithms. PhD thesis, PhD thesis, School of Computer Science, The University of Manchester.