Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

1,231 views
1,182 views

Published on

Palestra ministrada por Luciano Palma no Intel Software Conference nos dias 6 de Agosto (NCC/UNESP/SP) e 12 de Agosto (COPPE/UFRJ/RJ).

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,231
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

  1. 1. Identificando Hotspots & Intel® VTune™ Amplifier Luciano Palma Community Manager – Servers & HPC Intel Software do Brasil Luciano.Palma@intel.com
  2. 2. 2 Metodologia de Análise de Desempenho Uma proposta de abordagem para Otimização Config. Sistema, BIOS, Sistema Operacional, I/O de Rede, I/O de Disco, Otimização do BD, etc. Projeto da Aplicação, Otimização de Algoritmo, Ajuste de Drivers, Paralelismo Cache, Memória Instruções SIMD, Outros Sistema Aplicação ProcessadorVTune™ Amplifier XE pode ajudar aqui! A abordagem utilizada é Top-Down É necessário entender as características da aplicação e do sistema ¤ Utilização de ferramentas adequadas em cada nível
  3. 3. Intel® VTune™ Amplifier XE Performance Profiler 3 Gastando Tempo? Desperdiçando Tempo? Esperando demais? Otimização de funções que rodam mais tempo Análise de call stacks Análise de tempo no código- fonte Identificar cache misses, branch mis-predictions e outras ineficiências Otimizar banda de memória Analisar locks pelo tempo de espera Sinalização Vermelho/Verde para uso de CPU durante a espera Windows & Linux Baixo overhead Sem necessidade de recompilação especial Claire Cates Principal Developer, SAS Institute Inc. “We improved the performance of the latest run 3 fold. We wouldn't have found the problem without something like Intel® VTune™ Amplifier XE.” Profiling Avançado para Desempenho Multicore com Escalabilidade Onde minha aplicação está…
  4. 4. Perfis de Desempenho Rápidos e Precisos ¤ Hotspots (Statistical call tree) ¤ Call counts (Estatístico) ¤ Coleta de Eventos de HW Thread Profiling ¤ Visualização de interações entre threads na timeline ¤ Balanceamento de cargas Configuração Rápida ¤ Perfis de desempenho pré-definidos ¤ Uso de build normal de produção 4 Intel® VTune™ Amplifier XE Otimizando Aplicações para Desempenho Multicore com Escalabilidade
  5. 5. Respostas com Agilidade ¤ Filtro de dados irrelevantes ¤ Visualização de resultados no código fonte/assembly Compatibilidade ¤ Microsoft, GCC, compiladores Intel ¤ C/C++, Fortran, Assembly, .NET, Java ¤ Últimos processadores Intel® e compatíveis1 Windows or Linux ¤ Integraçãop com Visual Studio (Windows) ¤ GUI Standalone e linha de comando ¤ 32 e 64-bits 5 Intel® VTune™ Amplifier XE Otimizando Aplicações para Desempenho Multicore com Escalabilidade 1 IA32 and Intel® 64 architectures. Many features work with compatible processors. Event based sampling requires a genuine Intel® Processor.
  6. 6. VTune™ Amplifier XE – Layout da GUI 6
  7. 7. 7 Toolbar VTune™ Amplifier XE – Layout da GUI
  8. 8. 8 Navegador de Projetos VTune™ Amplifier XE – Layout da GUI
  9. 9. 9 Tab de Resultados VTune™ Amplifier XE – Layout da GUI
  10. 10. 10 Layout do Grid Pull-down menu de Agrupamento VTune™ Amplifier XE – Layout da GUI
  11. 11. 11 Painel da Stack VTune™ Amplifier XE – Layout da GUI
  12. 12. 12 Display da Timeline VTune™ Amplifier XE – Layout da GUI
  13. 13. 13 Tipo de Análise da atual execução Viewpoint utilizado na exibição atual VTune™ Amplifier XE – Layout da GUI
  14. 14. 14 Tabs com opções de visualização do resultado VTune™ Amplifier XE – Layout da GUI
  15. 15. 15 Área de filtros e outras funções VTune™ Amplifier XE – Layout da GUI
  16. 16. Duas formas de Coletar Dados Intel® VTune™ Amplifier XE 16 Software Collector Hotspots, Concurrency, Locks & Waits Hardware Collector Lightweight Hotspots, Advanced Analysis Utiliza interrupções do SO Utiliza a Performance Monitoring Unit (PMU) do processador Coleta de uma única process tree Coleta de todo Sistema ou de uma única process tree ~10ms de resolução (default) ~1ms de resolução (default) (granularidade menor  coleta funções menores) Coleta dados utilizando processadores Intel® e compatíveis Requer processador Intel® para a coleta Call stacks mostram sequências de chamadas Novo: Coleta call stacks (opcional) Funciona em ambientes virtuais Funciona em ambientes virtuais suportados pela VM (ex: vSphere* 5.1) Não requer driver específico Requer driver Sem necessidade de recompilação especial - C, C++, C#, Fortran, Java, Assembly
  17. 17. 17 Um extenso conjunto de dados sobre Desempenho Intel® VTune™ Amplifier XE Software Collector Qualquer processador IA, virtual, sem driver Hardware Collector Maior resolução, menor overhead, todo sistema Hotspots Quais funções rodam por mais tempo? Lightweight Hotspots Quais funções rodam por mais tempo? Onde usar inline? – Contagem estatística de chamadas Concurrency Otimização do paralelismo Cores sinalizam o número de núcleos em uso General Exploration Onde esta a maior oportunidade? Cache misses? Branch mispredictions? Locks and Waits Otimização da principal causa de baixo desempenho de threads – espera com núcleos ociosos. Advanced Analysis Análise profunda para otimizar banda, cache misses, contenções de acesso, etc.
  18. 18. Perfis pré-definidos e fáceis de usar Intel® VTune™ Amplifier XE Selecione facilmente um Tipo de Análise Clique em New Analysis Selecione um Tipo de Análise Hotspots Quais funções rodam mais tempo? Clique [+] para ver a call stack Duplo-Clique para ver o código-fonte Concurrency As cores mostram o número de núcleos usados. Adicione paralelismo aos hotspots com baixa concorrência Locks and Waits Esperar por longos intervalos num lock é ruim se os núcleos estão sendo sub-utilizados durante a espera 18 1 2
  19. 19. 19 Duplo-clique para ver o código-fonte Encontre Respostas com Agilidade Intel® VTune™ Amplifier XE Ajuste dos Grupos de Dados … (Lista Parcial) Filtro por Processo & Outros Controles Filtro por Seleção da Timeline (ou por Seleção do Grid) Clique [+] para Call Stack Oportunidades de Otimização mostradas em rosa (com dicas)
  20. 20. 20 Visualização de Dados do Perfil no Fonte / Assembly Duplo-clique para Grid ou Timeline Ver Fonte / Asm ou ambos Rolagem rápida para hotspots. “Heat Map” da barra de rolagem é resumo dos hotspots Clique no jump para rolagem do Asm Navegação Rápida no Asm: Selecione o fonte p/ destacar o Asm Clique (dir.) para manual de refer. da instruçãoTempo CPU
  21. 21. 21 A Timeline visualiza o comportamento das Threads Intel® VTune™ Amplifier XE Opcional: Uso da API para marcar frames e tarefas do usuário Opcional: Adição de “marca” durante a coleta CPU Time Hovers: Transitions Hotspots Lightweight HotspotsLocks & Waits
  22. 22. 22 Visualização de Problemas de Desempenho Paralelo Busca de Padrões Comuns Locks de Alta Granularidade (Coarse Grain) Alta Contenção gerada por Locks Desbalanceamento de Cargas Baixa Concorrência http://software.intel.com/en-us/intel-vtune-amplifier-xe#pid-3659-760
  23. 23. Otimização de Software Paralelo Porque é importante conhecer o Hardware 23 FRONT-END BACK-END
  24. 24. Otimização de Software Paralelo Porque é importante conhecer o Hardware 24 Situação Ideal: Front-End consegue preencher todos os slots em cada ciclo de clock Back-End consegue retirar µ-ops de cada slot em cada ciclo de clock
  25. 25. Otimização de Software Paralelo Porque é importante conhecer o Hardware 25 Nem sempre acontece a situação ideal… O VTune ajuda a entender o que está acontecendo Cada núcleo (core) tem uma PMU que fornece informações
  26. 26. 26 Interface de Linha de Comando Automação de Análises amplxe-cl é o comando CLI: Windows: C:Program Files (x86)IntelVTune Amplifier XE bin[32|64]amplxe-cl.exe Linux: /opt/intel/vtune_amplifier_xe/bin[32|64]/amplxe-cl Help: amplxe-cl –help É possível gerar a linha de comando a partir da GUI Excelente para análise de regressão – permite enviar o arquivo de resultados para o Desenvolvedor Resultados obtidos pela linha de commando podem ser analisados pela GUI
  27. 27. 27 Coleta de Dados Remota Analise de forma conveniente os dados coletados em sistemas remotos 1. Configure a coleta usando a GUI localmente 2. Copie as instruções da linha de commando para o Clipboard 3. Abra um shell remote para o sistema de destino 4. Cole a linha de commando (Paste) e execute a coleta 5. Copie os resultados para seu sistema local 6. Abra o arquivo usando a GUI local Sistema Local VTune™ Amplifier XE GUI completa Sistema Remoto Lightweight command line collector Copia a linha de comando Copia os arquivos de resultado • “Performance footprint” minimo durante a coleta • Configuração simplificada utilizando a GUI • Fácil análise dos Resultados
  28. 28. 28 Compare Resultados Rapidamente–Ordene por Diferenças Intel® VTune™ Amplifier XE Identifique rapidamente causas nas regressões – Rodando uma análise diária por linha de commando – Identificando responsáveis pelas principais funções, para saber quem deve ser alertado Compare 2 otimizações – O que melhorou? Compare 2 sistemas – Por que aumentou (ou não) o desempenho?
  29. 29. 29 Profiling para Java* com Baixo Overhead Intel® VTune™ Amplifier XE 2013 Precisão & Baixo Overhead – Amostragem rápida / não instrusiva – Amostragem de Hardware ainda mais rápida (agora com stacks opcionais) – Perfis avançados exclusivos (cache misses, banda…) Versátil & Fácil de usar – Múltiplas JVMs simultâneas – Ambiente misto Java / C++ / Fortran – Veja os resultados no código Java Melhores Informações, Menor Overhead, Mais Fácil de usar
  30. 30. 30 Aumente a Eficiência Energética Intel® VTune™ Amplifier XE 2013 Otimização Tradicional – Redução da utilização total de recursos – Atingida através de: • Uso de novas instruções • Aumento do Paralelismo Nova Otimização – Aumento do tempo ocioso sem interrupção – Atingida através de: • Redução da frequência da atividade • Consolidação de atividades Minimize os “Wake-Ups” de Timers e Interrupções
  31. 31. 31 Analise o Consumo de Energia da CPU Intel® VTune™ Amplifier XE 2013 Minimize os “Wake-Ups” para reduzir o consumo da CPU Identifique as causas dos “Wake-ups” • Timers disparados pela aplicação • Interrupções mapeadas p/ níveis de interrupção de Hardware • Visualização da taxa de “Wake-Up” Visualize o código fonte dos eventos que “acordam” o processador Visualize frequências da CPU por núcleo (core) • A frequência da CPU muda de acordo com o nível de atividade Somente para Linux Selecione & filtre para ver um objeto “wake-up” único Identifique a causa dos “Wake-Ups” analisando as call stacks dos timers
  32. 32. 32 Disponível em Versões Windows & Linux GUI Standalone, Linha de Comando, Integração com Visual Studio Microsoft Windows* – Windows XP*, Windows Vista*, Windows 7* – Windows Server* 2003, 2008 – Microsoft Visual Studio* 2008, 2010 e 2012 – GUI Standalone e Linha de Comando – IA32 e Intel® 64 Linux* – RHEL*, Fedora*, SUSE*, CentOS*, Ubuntu* – Outras distros também podem funcionar – GUI Standalone e Linha de Comando – IA32 e Intel® 64 Usuário Individual ou licenças “flutuantes”
  33. 33. 33 Pacote Intel® Parallel Studio XE Conjuntos de Ferramentas “All in one” Crie código com velocidade e confiabilidade Intel® Cluster Studio XE Intel® Parallel Studio XE Análise ● ● Intel® VTune™ Amplifier XE – Análise de Desempenho (Profiler) ● ● Intel® Inspector XE – Análise de Memória & Threads ● ● Static Analysis & Pointer Checker – Encontre erros de Código & Segurança ● ● Intel® Advisor XE – Assistente para a implementação de Threading ● Intel® Trace Analyzer & Collector – Ferramenta para Otimização de MPI Compiladores& Bibliotecas ● ● Intel® Compiler – Compilador Otimizado para C, C++ e Fortran ● ● Intel® Integrated Performance Primitives† - Otimizações para Mídia e Dados ● ● Intel® Threading Building Blocks† - Paralelismo de Aplicações com Alto Desempenho ● ● Intel® Math Kernel Library – Biblioteca Matemática de Alto Desempenho ● Intel® MPI Library – Messaging Flexível, Eficiente e Escalável † Disponível somente para C e C++ Versões do Parallel Studio XE somente para C, C++ ou somente para Fortran também estão disponíveis
  34. 34. 34 Nota sobre Otimização
  35. 35. 35 • INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. • A "Mission Critical Application" is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL'S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS' FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS. • Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined". Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. • The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. • Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. Go to: http://www.intel.com/products/processor_number. • Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. • Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1- 800-548-4725, or go to: http://www.intel.com/design/literature.htm • Intel, Core, Atom, Pentium, Intel inside, Sponsors of Tomorrow, Pentium, 386, 486, DX2 and the Intel logo are trademarks of Intel Corporation in the United States and other countries. • *Other names and brands may be claimed as the property of others. • Copyright ©2012 Intel Corporation. Legal Disclaimer

×