identificando hotspots e intel® vtune™ amplifier - intel software conference

36
Identificando Hotspots & Intel® VTune™ Amplifier Luciano Palma Community Manager – Servers & HPC Intel Software do Brasil [email protected]

Upload: intel-software-brasil

Post on 02-Jul-2015

875 views

Category:

Technology


3 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

IdentificandoHotspots &Intel® VTune™ Amplifier

Luciano Palma

Community Manager – Servers & HPC

Intel Software do Brasil

[email protected]

Page 2: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

2

Metodologia de Análise de DesempenhoUma 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 ferramentasadequadas em cada nível

Page 3: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

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 CatesPrincipal 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á…

Page 4: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

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çõesentre 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

Page 5: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

Respostas com Agilidade

¤ Filtro de dados irrelevantes

¤ Visualização de resultadosno 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.

Page 6: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

VTune™ Amplifier XE – Layout da GUI

6

Page 7: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

7

Toolbar

VTune™ Amplifier XE – Layout da GUI

Page 8: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

8

Navegadorde Projetos

VTune™ Amplifier XE – Layout da GUI

Page 9: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

9

Tab de Resultados

VTune™ Amplifier XE – Layout da GUI

Page 10: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

10

Layout do Grid

Pull-down menu de Agrupamento

VTune™ Amplifier XE – Layout da GUI

Page 11: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

11

Painel da Stack

VTune™ Amplifier XE – Layout da GUI

Page 12: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

12

Display da Timeline

VTune™ Amplifier XE – Layout da GUI

Page 13: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

13

Tipo de Análiseda atual

execução

Viewpointutilizado na

exibição atual

VTune™ Amplifier XE – Layout da GUI

Page 14: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

14

Tabs com opções de

visualização do resultado

VTune™ Amplifier XE – Layout da GUI

Page 15: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

15

Área de filtros e outras funções

VTune™ Amplifier XE – Layout da GUI

Page 16: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

Duas formas de Coletar DadosIntel® VTune™ Amplifier XE

16

Software CollectorHotspots, Concurrency, Locks & Waits

Hardware CollectorLightweight 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 únicaprocess tree

~10ms de resolução (default) ~1ms de resolução (default) (granularidade menor coleta funções menores)

Coleta dados utilizando processadoresIntel® 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 virtuaissuportados 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

Page 17: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

17

Um extenso conjunto de dados sobre DesempenhoIntel® VTune™ Amplifier XE

Software CollectorQualquer processador IA, virtual, sem driver

Hardware CollectorMaior resolução, menor overhead, todo sistema

HotspotsQuais funções rodam por mais tempo?

Lightweight HotspotsQuais funções rodam por mais tempo?

Onde usar inline? – Contagem estatística de

chamadas

ConcurrencyOtimização do paralelismo

Cores sinalizam o número de núcleos em uso

General ExplorationOnde esta a maior oportunidade?

Cache misses? Branch mispredictions?

Locks and WaitsOtimizaçã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.

Page 18: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

Perfis pré-definidos e fáceis de usarIntel® VTune™ Amplifier XE

Selecione facilmente um Tipo de Análise

Clique em New Analysis

Selecione um Tipo de Análise

HotspotsQuais funções rodam mais tempo?

Clique [+] para ver a call stack

Duplo-Clique para ver o código-fonte

ConcurrencyAs cores mostram o número de núcleos usados.

Adicione paralelismo aos hotspots com baixa

concorrência

Locks and WaitsEsperar por longos intervalos num lock é ruim

se os núcleos estão sendo sub-utilizados

durante a espera

18

1

2

Page 19: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

19

Duplo-clique para

ver o código-fonte

Encontre Respostas com AgilidadeIntel® 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)

Page 20: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

20

Visualização de Dados do Perfil no Fonte / AssemblyDuplo-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

Page 21: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

21

A Timeline visualiza o comportamento das ThreadsIntel® 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:

TransitionsHotspots Lightweight HotspotsLocks & Waits

Page 22: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

22

Visualização de Problemas de Desempenho ParaleloBusca de Padrões Comuns

Locks de Alta Granularidade(Coarse Grain)

Alta Contençãogerada por Locks

Desbalanceamentode Cargas

BaixaConcorrência

http://software.intel.com/en-us/intel-vtune-amplifier-xe#pid-3659-760

Page 23: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

Otimização de Software ParaleloPorque é importante conhecer o Hardware

23

FRONT-END

BACK-END

Page 24: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

Otimização de Software ParaleloPorque é 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

Page 25: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

Otimização de Software ParaleloPorque é 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

Page 26: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

26

Interface de Linha de ComandoAutomação de Análises

amplxe-cl é o comando CLI:

Windows: C:\Program Files (x86)\Intel\VTune 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

Page 27: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

27

Coleta de Dados RemotaAnalise 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

Page 28: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

28

Compare Resultados Rapidamente – Ordene por DiferençasIntel® 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?

Page 29: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

29

Profiling para Java* com Baixo OverheadIntel® 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

Page 30: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

30

Aumente a Eficiência EnergéticaIntel® 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 seminterrupçã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

Page 31: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

31

Analise o Consumo de Energia da CPUIntel® 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

Page 32: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

32

Disponível em Versões Windows & LinuxGUI 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”

Page 33: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

33

Pacote Intel® Parallel Studio XEConjuntos de Ferramentas “All in one”

Crie código com velocidade e confiabilidade

Intel®

ClusterStudio XE

Intel®

Parallel Studio XE

An

ális

e

● ● 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

Co

mp

ilad

ore

s&

Bib

liote

cas

● ● 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

Page 34: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

34

Nota sobre Otimização

Page 35: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference

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

Page 36: Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference