Upload
dangcong
View
222
Download
2
Embed Size (px)
Citation preview
Análise de desempenho de programas paralelos
Prof. Lucas M. Schnorr (UFRGS)
Escola Regional de Alto DesempenhoAlegrete, RS, Brasil
Março 2014
Made with Org Mode
1/78
Apresentação do professor
I Prof. Lucas M. Schnorr
I Doutorado em co-tutela UFRGS/INPG (2005 � 2009)
I Pesquisador CNRS na França (2009 � 2013)I Processamento ParaleloI Sistemas DistribuídosI Análise de DesempenhoI Visualização de Rastros
I Ferramentas: PajeNG, Viva, SimGrid, Akypuera, Poti, Tupi
I Professor de Compiladores e MLP
I ContatoI UFRGS, Prédio 43425, Sala 202I http://www.inf.ufrgs.br/∼schnorr/I [email protected]
2/78
Funcionamento / Sondagem
I Interrupções são bem-vindas
I Dúvidas, pergunte imediatamente
I Experiência prévia?
3/78
Introduçãoe motivação
4/78
Introdução
I Desenvolvimento de aplicações paralelas→ Tarefa complexa
I Di�culdade de se programar em paraleloI Linguagens de programação não apropriadas
I Restrições na forma de se utilizar os recursosI CPU versus GPU
I Indeterminismo da execuçãoI Comportamentos diferentes para a mesma entrada
I Escalabilidade dos supercomputadores
5/78
Escalabilidade: Xeon Phi �Knights Corner�64 cores (256 threads) para obter 1 Tera�op
6/78
Escalabilidade: Kalray MPAA 256256 cores com NoC para obter 0.5 Tera�op, baixo consumo
7/78
Escalabilidade: NVidia Tesla K402888 processadores para obter 4.29 TF in precisão simples
8/78
Escalabilidade: Tianhe-2 Supercomputer3120000 (cpu e gpu) cores para obter 34 Peta�ops
#1 na lista Top500 em novembro de 2013
9/78
Introdução � Controlando a complexidade
I Estratégias de controle da complexidadeI Uso de interfaces de programação (MPI, OpenMP, CUDA)I Bom conhecimento do sistema de execução
I Alto desempenho em uma aplicação paralelaI Ótimo mapeamento dos requisitos da aplicação nos recursosI Vários ciclos de análise de desempenho
10/78
Introdução � Melhorando o desempenho
I Aplicação paralela/distribuída livre de erros de programação
I Objetivo da análise de desempenhoI Veri�car bom desempenho considerando o sistema
I Processo cíclicoI Execuções experimentaisI Coleta e análise de dados da execuçãoI Modi�cação/recon�guração da aplicação
11/78
Introdução � Fases da análise de desempenho
I Fase de coletaI Ocorre durante a execução da aplicaçãoI Registrar informações consideradas importantes
I Fase de análise dos dadosI Identi�car problemas de desempenho e suas causas
I Na maioria das vezes, as fases são independentesI Não há consenso: alguns as realizam ao mesmo tempo
12/78
Introdução � Análise de desempenho
I Análise de desempenho é crucialI Durante o seu desenvolvimentoI Portabilidade da aplicação paralela/distribuída
I Objetivo do minicurso, dar uma visão geral deI conceitos básicos, terminologiaI técnicas de coletaI técnicas de análiseI algumas ferramentas
13/78
Roteiro
Apresentação
Introdução
Conceitos básicos
Técnicas de observação e registro
Intervalo / Co�ee-break
Técnicas para análise de desempenho
Ferramentas e bibliotecas
Conclusão e discussão
14/78
Conceitos básicose terminologia
15/78
Visão geral dos conceitos básicos
I Efeito de sonda
I Análise online versus o�ine
I Sincronização de relógios
I Outros conceitosI Casamento de eventos independentesI Execução não-determinística (e replay)I Obtenção de estado globalI Resolução de relógiosI Formato de arquivoI Observabilidade
16/78
Efeito de SondaI Comportamento natural
I Nenhum tipo de coleta de dadosI Ausência de atividades de análise
I Efeito de sonda: tempo gasto no registro do comportamentoI Alteração do comportamento natural da aplicação
I Manifesta-se sob diferentes formasI MemóriaI CPUI DiscoI Tempo (ex: 3% mais lento)
I Quesitos na escolha de um sistema de coletaI FuncionalidadesI Facilidade de usoI Recursos necessários (memória, processamento e disco)I Efeito de sonda (intrusão)
I (Discussão sobre fases da análise de desempenho)
17/78
Caracterização da intrusão
I Medir a amplitude do efeito de sondaI Normalmente em tempo
I FuncionamentoI Medir o tempo de cada observaçãoI Granularidade �na
I Uso principal da caracterizaçãoI Corrigir o comportamento alterado registro pela observaçãoI Compensar com uma granularidade �na os pontos de medição
I Objetivo: anular o efeito de sondaI Difícil de ser obtido, depende do ambiente de execução
18/78
Intrusão zero, possível?
I Caracterização → Compensação: nem sempre funcionam
I SimulaçãoI Tempo de simulação versus tempo de execuçãoI No registro do comportamento: tempo de simulação é parado
19/78
Análise online versus o�ine
I Análise de desempenho: fases de coleta e de análise
I Abordagem onlineI Coleta e análise simultâneas
I Abordagem o�ineI Coleta e análise separadas
20/78
Análise onlineColeta e análise simultâneas
I VantagensI Ausência do custo de gerência dos dados→ Evita escrita em disco
I Interatividade na análiseI Analista pode in�uenciar os rumos da análiseI Exemplo
I DesvantagensI Escalabilidade
I Transferência dos dadosI Processamento necessário para análise
(compete com a própria aplicação) → Efeito de sonda
I Abordagem pouco implementada em ferramentas
21/78
Análise o�ine (post-mortem)Coleta e análise independentes
I Desvantagens e vantagens opostas àquelas da análise onlineI Gerenciamento dos dados comportamentaisI Falta de interatividadeI Melhor escalabilidade
I Técnicas de baixa intrusão relacionadas à escalabilidadeI Uso extensivo da memória durante a observaçãoI Uso de formato binário de dados
22/78
Aplicabilidade das abordagens online e o�ine
I Qual é a melhor?
I Abordagem online relacionada a depuração de erros
I Abordagem post-mortem permite análise de desempenho
23/78
Sincronização de relógios
I Sistemas distribuídos e paralelosI Cada máquina tem seu próprio relógioI Na grande maioria das vezes, não há sincronia
I Principal problema (para a análise de desempenho)I Manter a causalidade entre os eventos
24/78
Técnicas de sincronização de relógiosPor software e hardware
I NTP (Network Time Protocol)I Capaz de obter sincronia na ordem de milisegundosI Problema: sincronização insu�ciente
I PTP (Precision Time Protocol)I Sincroniza na ordem de microsegundosI Em redes de baixa latência (supercomputadores)
I Sincronização de relógio por hardwareI Relógios atômicos (fornecem hora precisa)I Receptores GPS (Global Positioning System)I Precisão na ordem de nanosegundos
25/78
Outros conceitos relacionados
I Execução não-determinísticaI Di�culdade de estudar um problema de desempenhoI Reexecução determinística
I Registra-se o comportamento em um primeiro momentoI Repete-se a execução obedecendo o comportamento inicial
I Obtenção de estado global (snapshot)I Útil para veri�car propriedades globais da aplicaçãoI Di�culdades: latência da rede,I Exemplo de incoerência
I Observabilidade (níveis de abstração)
I Casamento de informações independentes
I Resolução de relógios
I Formato de arquivo
26/78
Técnicas de observação e registroconceitual e prática
27/78
Visão geral das técnicas de observação / coleta
I Técnicas de observaçãoI MonitoramentoI Geração de índices estatísticosI De�nição de um per�l de execuçãoI Observação comportamental
I Técnicas de coleta e registroI AmostragemI CronometragemI ContagemI Rastreamento
28/78
Técnicas de observação (conceitual)
I Métodos utilizados para observar o comportamento
I Internos versus externos
I Observação internaI Fonte dos dados interna ao programaI Sondas de observaçãoI Instrumentação
I ExternaI Fonte externaI Somente o efeito é observado
29/78
Técnicas de observação
I Monitoramento (observação externa)I Aplicação paralela é inalteradaI Poucos detalhesI Foco: sistemas computacionais, redes de interconexão
I Geração de índices estatísticos (interna)I Tendências estatísticas através de métricas de desempenhoI Métricas
I Tempo de espera em regiões de códigoI Tempo médio de execução de uma tarefa
I Útil para isolar uma parte do programa a ser melhoradaI (necessita de uma técnica de coleta de dados)
30/78
Técnicas de observação
I De�nição de um per�l de execução (interna ou externa)I Estima o tempo gasto em partes do programaFunção / método / módulo / região de código
I Indicador global → cautela em execuções de longa duração
I Observação comportamental (interna)I Indenti�cador preciso do comportamentoI Fornece informações detalhadas para a análiseI Desvantagens relacionadas ao efeito de sonda
31/78
Qual a melhor técnica de observação?
I DependeI Tipo de análise de desempenhoI Conhecimento do analista a respeito da aplicação
I ExemplosI Per�l de execução → observação comportamentalI Monitoramento e índices estatísticos → per�l de execuçãoI Observação comportamental
I Escolha deve ser feita caso a casoI Aplicação versus sistema paralelo
32/78
Técnicas de coleta e registro (prática)
I Situação idealI Registro preciso do comportamentoI Nível de intrusão próximo de zeroI Efeito de sonda passível de compensação
I Difícil de se obter
I Cada técnica de coleta traz um equilíbrioI precisão versus intrusão
33/78
Classi�cação das técnicas de coleta
I De acordo como a maneira que o registro é lançadoI Dirigida pelo tempo ou por eventos
34/78
Amostragem (guiada pelo tempo)
I Examinar periodicamente o estado do programa
I Intervalo de tempo → frequência da amostragemI De�nido pelo analista
I Funcionamento: no momento da mediçãoI Sistema dispara uma ordem de observação
I Veri�ca qual o estado do programa, registra em memóriaI Recon�gura para que a medição ocorra novamente
I Uso bastante comum → Gerar um per�l de execuçãoI Exemplo: frequência de 20 microsegundos, função em execução
I Per�l indica somente quantas vezes a função foi executadaI Resultados são em porcentagem da quantidade de amostras
35/78
AmostragemI Qualidade dos resultados
I Inversamente proporcional ao tamanho do intervaloI Exemplo: 100 nanosegundos versus 1 segundo
I Funções em geral se executam na ordem de microsegundos
I Efeito de sonda causado pelo amostragemI Diretamente proporcional à frequência de amostragem
I Achar um bom equilíbrio entre qualidade e intrusãoI Caracterizar intrusão versus frequência da amostragem
Complexidade no uso em uma aplicação paralela
I Vários processos e computadores
I Múltiplos per�s de execução
36/78
Cronometragem (guiada por evento)
I Medir o tempo passado em uma região de código
I Instrumentação manual ou automática do código do programaI Inserir instruções extras responsáveis pela cronometragem
I FuncionamentoI No local de início da medição, disparo do cronômetroI No local do �m da medição, tempo é contabilizadoI Medições são somadas e associadas à região observada
I Gera um per�l de execuçãoI Comparação com a amostragem
37/78
CronometragemI Intrusão
I Diretamente relacionada a quantidade de cronômetrosI Mais controlável quando comparada a amostragem
I Exemplo e contra-exemploI Cronometrar a região dentro de um laço
Vantagens e desvantagens
I Flexível (analista de�ne os cronômetros)
I Manual e eventualmente complexa
Complexidade no uso em uma aplicação paralela
I Vários processos e computadores
I Múltiplos per�s de execução
38/78
Contagem (guiado por evento)
I Medir a quantidade de ocorrências de um eventoI Execução de uma funçãoI Uso de um recurso
I FuncionamentoI Quando um evento é geradoI Procura-se o contador correspondente em memóriaI Incrementa o contador
I Maior vantagemI Baixa intrusão (incremento de um contador para cada evento)I Uso em programas de longa duração com eventos frequentes
39/78
ContagemI Implementação multi-nível
I Contadores em software e hardwareI Combinação entre eles
I Contadores em softwareI Flexibilidade, adaptação, portabilidade
I Em hardwareI Imutabilidade, intrusão próxima de zeroI Esforço de padronização (PAPI)
I ExemplosI Quantidade de faltas no acesso a memória cacheI Quantas instruções foram executadas
Complexidade no uso em uma aplicação paralela
40/78
Rastreamento (guiada por evento)
I Registrar dados signi�cativos na forma de eventos datados
I Objetivo de análise: reconstrução do comportamento original
I FuncionamentoI Quando um ponto de geração de evento é atingidoI Um evento é criado e registrado em um arquivo de rastro
I Reconstrução do comportamento originalI Precisão, coerência e qualidade versus intrusão
41/78
Rastreamento � o que é um evento?
I Ocorrência de comportamento especí�co durante a execução
I ContémI Um tipoI Uma dataI Informações adicionadas de acordo com o seu tipo
I ExemplosI Início da execução de uma funçãoI Acesso ao um recurso de memóriaI Envio de uma mensagemI Liberação de um lock (mutex)
Discussão: abrangência do rastreamento
I Abordagem mais genérica que as outras
42/78
Formas de rastreamentohardware, software e híbrido
I Por hardwareI Equipamentos especializadosI Falta de �exibilidadeI Baixa intrusão
I Por softwareI Dentro da aplicação ou em bibliotecas associadasI Instruções extras embutidas
I HíbridoI Procura-se obter um bom equilíbrio entre os doisI Eventos frequentes são registrados em hardwareI Menos frequentes e con�guráveis em software
I Maioria das ferramentas → rastreamento por software
Complexidade no uso em uma aplicação paralela
43/78
Qual a melhor técnica de coleta e registro?
Amostragem, cronometragem, contagem, rastreamento?
I Depende do nível de conhecimento que se pretende obter
I ExemplosI Panorama geral (sem alterar código) → per�l por amostragemI Histograma temporal → per�l por cronometragem
I Registrando o comportamento das funções suspeitasI Enriquecer com contadores de hardware do processador
I Mesclando informações do nível da aplicaçãoI Rastreamento investiga problemas de comunicação
I Escolha deve ser feita caso a casoI Aplicação versus sistema paraleloI Suposição do analista e conhecimento prévio
44/78
IntervaloCo�ee-break
45/78
Técnicas para análise de desempenho
46/78
Técnicas para análise de desempenho
I Lembrando as fases de análiseI Coleta / registro de comportamentoI Interpretação / análise do comportamento
I Inúmeras técnicas para a análise do comportamentoI Inspiradas e in�uenciadas pela forma da coleta
I ExemplosI Análise através de índices estatísticosI Construção de uma representação visual dos dados
Variabilidade de técnicas de análise
I Visão global de desempenho
I Análise local de desempenho
47/78
Objetivos da análise de desempenho
I Melhorar o desempenho da aplicação paralelaI Tempo de execuçãoI AceleraçãoI E�ciência
I Aumentar a e�ciência de utilização de recursos
I Outros objetivos?
48/78
Visão geral das técnicas de análise de desempenho
I Análise de per�s de execução
I Análise automática
I Análise por transformação de dados
I Análise interativa por visualização de rastros
49/78
Análise de per�s de execução
I Forma mais simples de ter uma ideia do desempenho
I FuncionamentoI Amostragem / cronometragemI Criação de um histograma
I Quantidade de vezes detectada (amostragem)I Tempo de execução (cronometragem)
I Histograma global versus localI Aplicação inteira / processos individuais
I Lembrete: per�l condizente com a realidadeI Discussão sobre a frequência de coleta
I Histograma baseado em dados de rastreamento
50/78
Análise automática
I Supercomputadores compostos de milhares de processadoresI Aplicações cada vez maiores
I Rastreamento e a grande quantidade de dados geradosI Ondes3D: propagação de ondas sísmicas em 3D
I 32p, execução de 50s , 100K eventosI LU.A.32: Solver Lower-upper gauss-seidel
I 32p, 4.79s, cerca de 7 milhões de eventos (142 Mbytes)I Simulador de partículas: BSP, implementação quadrática
I 32p, 6.26s, cerca de 200 milhões de eventos (2.5 Gbytes)
I Análise manual e interativa se torna difícil
51/78
Análise automática
I Detectar problemas de desempenho automaticamente
I Funcionamento através de um programa de computadorI Utiliza como entrada o registro de comportamentoamostragem / cronometragem / contagem / rastros
I Rastreamento é mais utilizada devido ao nível de detalhamentoI Investiga problemas de desempenho (data mining)I Apresenta os problemas identi�cados ao analista
Escalabilidade
I Uma quantidade maior de dados penaliza menos a análise
I Mineração de dados pode ser paralelizada e distribuída
52/78
Análise automática � padrões de desempenho ruim
I Problemas de desempenho devem ser previamente conhecidos
I Um padrão de desempenho ruim deve conterI Quantidade de processos envolvidosI Qual o comportamento de cada processo (estados e variáveis)I Estado das comunicações entre os processos
I DesvantagensI Limitada aos padrões conhecidosI Necessidade de se conhecer a semântica dos dados
53/78
Análise por transformações de dados
I Transformar os dados comportamentais coletados
I Razões para a transformaçãoI Reduzir o volume dos dados originaisI Necessidade de criação de (novas) métricas de desempenho
I Alterar a natureza das métricas comportamentaisI Colocar em evidência características relevantes da aplicação
I ExemploI Aplicação de larga escala
I Muitos processos com comportamento semelhanteI Agrupar comportamento semelhantes
54/78
Análise por transformações de dados
I Melhor aplicada em dados oriundos do rastreamentoI Mais detalhes, estado da aplicação, do sistemaI Maiores possibilidades de transformação
I Duas abordagensI Agregação
I Operadores de agregação para redução dos dadosI Agrupamento (clustering)
I Agrupar o comportamento por semelhança
55/78
Análise por transformação de dados � agregação
I Utilização de operadores de agregaçãoI Média, Max, Min, Soma, Subtração, . . .
I ObjetivoI Agregar o comportamento de um conjunto de processosI Obter um valor que representa o comportamento do conjunto
I Dados de amostragem / cronometragemI Feita diretamente sobre os per�s de execução obtidos
I Dados de rastreamentoI Integração temporal sobre variáveis e métricas de um processoI Integração espacial sobre vários processos da aplicaçãoI Ambas
56/78
Análise por transformação de dados � agrupamento
I Procura por comportamentos similaresI Utilizando uma ou mais métricas disponíveis
I Escolhe-se um processo representativoI Minimizando as diferenças entre ele o os outros do grupo
I Amostragem / cronometragemI Per�s semelhantes de execução
I RastreamentoI Comportamento semelhante ao longo do tempoI Reduz a complexidade da análise
57/78
Análise por transformação de dados
I Vantagens (sumário)I Reduz a complexidade, o volume dos dadosI Permite de�nir uma nova visão sobre o comportamento
Desvantagens
I AgregaçãoI Suavização demasiada do comportamento heterogêneo
I AgrupamentoI Processo representativo muito diferente da média do grupo
58/78
Análise por visualização de rastros
I Criar uma representação visual dos dados comportamentaisI Interatividade
I Se apoia sobre a experiência do analista
I Exemplo de visualização espaço/tempo
59/78
Análise por visualização de rastros � categoriasI Técnicas de visualização comportamental
I Espaço / tempo (grá�cos de Gantt)I Eixo vertical, eixo horizontalI Eventual organização hierárquica no espaçoI Pontos fortes
I Ênfase na causalidade entre eventosI Análise de desempenho de grão �no
I Técnicas estruturaisI Evidenciam a estrutura da aplicação ou do sistemaI Correlacionam o comportamento da aplicaçãoI Independentes da linha do tempo
I Valores instantâneos ou agregados temporalmente
I Técnicas estatísticasI Grá�cos estatísticos de dispersãoI Duas ou mais variáveis correlacionadas
60/78
Análise de visualização de rastrosExemplo de técnica estrutural
Clusters
Sites
Hosts
Grid
61/78
Análise de visualização de rastros
I Vantagens (sumário)I Representação visualI InteratividadeI Experiência do analista
I DesvantagensI Escalabilidade (análise manual, limitação técnica)I Necessidade de combinar com outras técnicas
I Transformação de dados / análise automática
62/78
Qual a melhor técnica de análise?
Per�s, automática, transformação, visualização?
I Depende do tipo do problema de desempenho
I Técnicas de análise são complementaresI Per�s → Visualização de rastrosI Combinação diversa de técnicas
I Global versus local
63/78
Ferramentas e bibliotecasapresentação não exaustiva
64/78
Visão geral de ferramentas e bibliotecas
I Coleta e registroI Score-PI TAUI EZTraceI AkypueraI SimGrid
I AnáliseI VampirI ScalascaI ViteI PajéNGI Viva
65/78
Score-P
I Scalable Performance Measurement Infrastructure for ParallelCodes
I Focado em aplicações paralelas MPII http://www.score-p.org/
I Desenvolvido porI German BMBF project SILCI US DOE project PRIMAI Consórcio de laboratórios europeus e americanos
I Implementa várias técnicas de coletaI Rastreamento (com o formato OTF2)I Geração de per�s de execução (com o formato CUBE3)
66/78
TAU
I Tuning and Analysis UtilitiesI Suporta várias linguagens (Fortran, C, C++, Java, Python)I http://www.cs.uoregon.edu/research/tau/
I Desenvolvido porI Universidade do Oregon (Estados Unidos)
I ImplementaI Rastreamento (formato próprio)I Amostragem
I Colaboração com o projeto Score-P
67/78
EZTrace
I EZTrace � easy to use trace generatorI Focado em aplicações MPI e OpenMPI http://eztrace.gforge.inria.fr/
I Desenvolvido na França
I Implementa rastreamentoI Exporta rastros em Pajé e OTF
I Extensível (novos tipos de eventos)
I Interceptação dinâmica
68/78
Akypuera
I Akypuera (rastro em guarani)I Desenvolvido em Porto Alegre, foco em aplicações MPII https://github.com/schnorr/akypuera
I Utiliza a librastro (formato binário conciso)
I Conversores de TAU, OTF, OTF2 para Pajé
69/78
SimGrid
I SimGrid � Versatile Simulation of Distributed SystemsI Desenvolvido na FrançaI http://simgrid.gforge.inria.fr/
I Módulo de rastreamento
70/78
VampirI Ferramenta comercial oriunda de laboratório de pesquisa
I TU-Dresden, GermanyI http://vampir.eu/
I Visualização de rastros, per�s de execução, agrupamentoI Altamente escalável com distribuição
71/78
Scalasca
I ScalascaI Forschungszentrum Jülich (Alemanha)I http://www.scalasca.org/
I Análise automática, per�s de execuçãoI Algoritmos de mineração de dadosI Uma centena de padrões de desempenho ruim
I Formato CUBE4 (gerado por Score-P)
72/78
ViteI Vite
I Desenvolvido pelo INRIA BordeauxI http://vite.gforge.inria.fr/
I Visualização de rastrosI Formato Pajé e OTF
73/78
PajéNG
I PajéNGI Desenvolvido em Porto AlegreI https://github.com/schnorr/pajengI Reimplementação em C++ do Pajé original (http://paje.sf.net)
I Visualização comportamental de rastrosI pajeng, pj_dump
I Utiliza exclusivamente o formato PajéI Exporta para formato CSV
74/78
Viva
I VivaI Desenvolvido em Porto AlegreI https://github.com/schnorr/viva
I Visualização estrutural, agregação espaço-temporalI Topologia da rede (posicionamento dinâmico)I Treemaps
I Simbiose com rastros gerados pelo SimGrid
B Hierarchy: Site (10) - Cluster(10) - Machine (10) - Processor (100) C Hierarchy: Site (10) - Cluster(10) - Machine (10) - Processor (100) D Hierarchy: Site (10) - Cluster(10) - Machine (10) - Processor (100) E Maximum Aggregation
75/78
Conclusão e discussão
76/78
Conclusão
I Desenvolvimento de aplicações paralelas de alto desempenho→ Tarefa complexa
I Análise de desempenhoI Etapa crucial no desempenho de aplicações de alto desempenho
I PortabilidadeI Processo cíclico
I Execução e coleta, seguidas por análise
77/78
Discussão
I Como utilizar estes conceitos na prática?
I Di�culdades possíveis?
78/78