• Like
[Arnold oopsla 02] resumo do artigo "Online Feedback-Directed Optimization of Java"
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

[Arnold oopsla 02] resumo do artigo "Online Feedback-Directed Optimization of Java"

  • 156 views
Published

No artigo, os autores descrevem a implementação de um sistema de otimização dirigida por dados coletados durante a execução (online feedback-directed optimization system – FDO), totalmente …

No artigo, os autores descrevem a implementação de um sistema de otimização dirigida por dados coletados durante a execução (online feedback-directed optimization system – FDO), totalmente
automatico, não requerendo que estas informações sejam
capturados em uma execução prévia da aplicação (offline
profile).

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
156
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. jan2012 Online Feedback-Directed Optimization of Java Matthew Arnold* Michael Hind Barbara G. Ryder* IBM T.J. Watson Research Center *Rutgers University hind@watson.ibm.com {marnold, ryder}@cs.rugters.edu Resumo realizado por Marcio Machado Pereira – RA 780681 código otimizado ou durante toda a execução; e por quanto tempo os dados são coletados. I. INTRODUÇÃON o artigo[1], os autores descrevem a implementação de um sistema de otimização dirigida (guiada) por dadoscoletados durante a execução (online feedback-directed Coletar dados durante o estágio inicial pode não ser efetivo ou não produtivo uma vez que o comportamento dominante da aplicação não é exercitado neste estágio. Coletar dados sobreoptimization system – FDO). O mesmo é totalmente código otimizado pode endereçar o problema descrito acimaautomatico, não requerendo que estas informações sejam porém o overhead pode ser proibitivo, principalmente quandocapturados em uma execução prévia da aplicação (offline instrumentação é inserida no código para se coletarprofile). Para isto, o sistema usa um framework de baixo informações de granularidade mais fina. Coletar dados porimpacto (low-overhead) denominado “general um período curto (short bursts) pode reduzir o overheadinstrumentation sampling framework – ISF”[2] que coleta porém o resultado é menos preciso, principalmente se odados como, por exemplo, a frequencia nas arestas de comportamento do programa varia no tempo.controle do fluxo de execução. Estas informações são usadaspara guiar várias otimizações tradicionais, bem como uma Alguns tipos de coleta de informações podem ser realizadastransformação conhecida como Splitting, no qual o artigo faz sem a necessidade de instrumentação no código. Por exemplo,uma contribução apresentando um algoritmo denominado o Jikes RVM AOS coleta dados para a construção do grafo de“feedback-directed splitting” mais agressivo que seus chamadas (call graph) amostrando a pilha de chamada (callpredecessores. stack) em intervalos regulares. Infelizmente, muitos tipos de informações de granularidade mais fina como por exemplo, aOs autores argumentam que a realização de “profiling” e frequencia de execução de blocos básicos podem ser difíciesotimizações “online” é uma bordagem atrativa pois evita os de coletar usando esta abordagem. Para resolver estas limitações, os autores propuseram um framework denominadoincovenientes do “profiling” realizado “offline”. No entanto “full-duplication instrumentation sampling framework”,esta abordagem pode ocasionar um overhead no tempo de descrito a seguir.execução para se coletar as informações de profile, tomar asdecisões baseadas nestas informações e realizar as III.INSTRUMENTATION SAMPLINGotimizações selecionadas. Para solucionar estes problemas A idéia chave da técnica de full-duplication, mostrada nautilizou-se o ISF para obter um profiling eficiente e o sistema figura abaixo, é o seguinte:de otimização adaptativo AOS (ver seção II) que proveu ocontexto para a implementação do FDO. II. BACKGROUNDA implementação do FDO é uma instância da arquiteturaJikes RVM Adaptive Optimization System – AOS[3]. AOSprovê um design de alto nível para a realização deotimizações guiadas por feedback, tanto offline quanto online.No entanto, as otimizações dirigidas por feedback online sãomais difíceis do que as otimizações dirigidas por feedbackoffline. As principais razões são: o aumento (overhead) notempo de execução e a precisão e disponibilidade dasinformações de profile. Esta última depende dos dados queestão sendo coletados; quando a coleta é realizada, se durantea execução do código não-otimizado, durante a execução do  O trabalho em referência foi apresentado na conferência OOPSLA’02realizado na cidade de Seattle, Washington, USA. O resumo é parte do trabalhode pesquisa de doutorado do Instituto de Computação da UNICAMP (IC-Unicamp) e foi elaborado por Pereira, M. M. (e-mail: mpereira@ic.unicamp.br ).
  • 2. jan2012Quando um método é instrumentado, o corpo do método é otimizações a saber: Splitting, Code motion, method inliningduplicado e toda instrumentação é inserida no código e loop unrolling.duplicado. A versão original é minimamente instrumentadanos pontos de amostragem para permitir que o controle seja Feedback-Directed Splitting Splitting é uma transformaçãotransferido para o código duplicado. Amostras são tomadas que expõe novas oportunidades de otimização tornandoem intervalos regulares através de um mecanismo de otimizações existentes mais efetivas, principalmente àquelasamostragem baseada em contador. Este mecanismo mostrou que dependem de informações do fluxo de dados à frente,ser de baixo overhead e de alta acuracia para muitos como por exemplo, load elimination, array boundsexemplos de instrumentação. A principal desvantagem desta elimination, devirtualization, etc. O algoritmo utilizadotécnica é que o método inteiro é duplicado aumentando o resultou em duas vantagens em relação às abordagensespaço e o tempo de compilação, portanto, métodos anteriores: Primeiro, os esforços são focados no “caminhoscandidatos para instrumentação online precisam ser quentes” permitindo um Splitting mais agressivo do que osescolhidos cuidadosamente. possíveis baseados em heurísticas estáticas. Segundo, o algoritmo é simples de implementar, não impactando nas outras analises. IV. FDO IMPLEMENTATIONAOS provê um ambiente de execução para implementação do Feedback-Directed Method Inlining Usar dados de profileFDO na qual um mecanismo leve identifica os métodos para melhorar as decisões de expandir métodos “em linha”quentes e os promove para níveis mais altos de otimização. A pode ter um impacto significativo no desempenho deimplementação do FDO adiciona neste métodos informações linguagens orientadas a objetos. A frequencia de execução depara se coletar dados de granularidade mais fina com os blocos básicos provê informações de profile de granularidadeobjetivos de melhorar o desempenho de aplicações de longa mais fina e são usadas para melhorar as decisões de Inlining.duração; manter o desempenho na inicialização e melhorar odesempenho o mais cedo possível. Para isto, os autores Feedback-Directed Code Positioning Code Positioningempregaram uma estratégia de dois passos. Primeiro, o rearranja a ordem de blocos básicos com o objetivo desistema utiliza os mecanismos de amostragem existentes no aumentar a localidade e reduzir o número de desviosAOS para se encontrar os métodos quentes. Segundo, para incondicionais. FDO usa a frequencia de execução de blocosestes métodos, o sistema aplica um mecanismo de básicos para conduzir o algoritmo de posicionamento descritoinstrumentação para coletar dados mais detalhados. Esta por Pettis e Hansen [4].abordagem é consistente com o projeto geral do AOS e podeainda ser generalizado para incluir uma hierarquia de Feedback-Directed Loop Unrolling Loop unrolling é umamecanismos de profile para prover mais informações, com transformação na qual o corpo do laço é duplicado diversasum overhead adicional, porém aplicados em porções menores vezes permitindo melhores otimizações dentro do laço. Ada aplicação. implementação FDO usa a frequencia de execução dos blocos básicos para desenrolar mais o laço e aumentar oOs passos desta abordagem estão descritas abaixo: desempenho, porém laços que não são executados frequentemente são desenrolados menos, preservando tempo 1. A execução inicia sem instrumentação e o sistema de compilação e espaço. AOS recompila os métodos baseado nas amostras coletadas (timer-based samples), possívelmente utilizando múltiplos níveis de otimização. 2. Após o método ser otimizado “estaticamente” (em VI. REFERENCIAS tempo de execução, porém sem FDO) este continua a [1] Arnold, M. Hind, M., and Ryder B. G. 2002. Online feedback-directed ser monitorado usando o mesmo mecanismo de optimization of Java. ACM SIGPLAN Notices 37, 11 (Nov.), 111-129. Proceedings of the 2002 ACM SIGPLAN Conference on Object Oriented amostragem baseado em intervalos regulares. Se o Programming, Systems, Languages and Applications (OOPSLA02) mesmo sem mantém suficientemente quente ele então é instrumentado para se coletar informações de [2] Matthew Arnold and Barbara Ryder. A framework for reducing the cost of granularidade mais fina usando a técnica descrita instrumented code. In SIGPLAN 2001 Conference on Programming Language acima. Design and Implementation, pages 168—179, June 2001 3. Após se coletar informações suficientes, o método é [3] Matthew Arnold , Stephen Fink , David Grove , Michael Hind , Peter F. recompilado e as otimizações guiadas por este Sweeney, Adaptive optimization in the Jalapeño JVM, Proceedings of the 15th feedback são aplicadas. ACM SIGPLAN Conference on Object-oriented programming, systems, 4. Conforme o tempo passa, o comportamento do languages, and applications, p.47-65, October 2000, Minneapolis, Minnesota, programa pode mudar. Para garantir que o seu United States. desempenho não degrade com o passar do tempo, [4] Karl Pettis and Robert C. Hansen. Profile guided code positioning. In dados de profile podem ser reavaliados SIGPLAN 90 Conference on Programming Language Design and periodicamente. Implementation, June 1990. V. FEEDBACK-DIRECTED OPTIMIZATIONSMuitas otimizações podem se beneficiar deste mecanismo.Para validar o sistema, os autores implementaram 4