Escolar Documentos
Profissional Documentos
Cultura Documentos
Computação
Aula 3: Entendendo Desempenho
Leandro Santiago
Entendendo
Desempenho
Desempenho
→ Desempenho é a chave para entender a motivação subjacente
para o hardware e sua organização
→ Medir, relatar e resumir o desempenho permite que os usuários
façam:
◦ escolhas inteligentes
◦ vejam além do hype do marketing
• Por que alguns hardwares são melhores que outro para programas
diferentes?
• Quais fatores de desempenho do sistema são relacionados ao hardware?
• Como o conjunto de instruções de uma máquina afetam o desempenho?
3
O que medimos? Define o desempenho...
5
Métricas de Desempenho
→ Métricas de desempenho para processadores - avalia o
desempenho de uma unidade de processamento, normalmente
feito medindo a velocidade ou o número de operações que ela faz
em um determinado período de tempo
7
Medidas de Desempenho para Processadores
8
Desempenho Computacional: TEMPO, TEMPO,
TEMPO!!!
→ Tempo de resposta (tempo decorrido, latência)
◦ Quanto tempo leva para o meu job rodar?
◦ Quanto tempo para executar (iniciar e terminar) meu job?
◦ Quanto tempo devo esperar por uma query no banco de dados?
→ Vazão (Throughput)
◦ Quantos jobs a máquina pode rodar de uma vez?
◦ Qual é a taxa de execução média?
◦ Quanto trabalho está sendo feito?
→ Tempo de CPU
◦ Não conta espera por I/O ou tempo gasto rodando outros
programas
◦ Pode ser dividido em tempo de CPU do usuário e tempo de CPU
do sistema (chamada de SO)
tempo CPU = tempo CPU usuário + tempo CPU sistema
10
Tempo de Execução
11
Definição de Desempenho
→ Para um programa que roda na máquina X:
Desempenhox = 1
Tempo_de_execucaox
Desempenhox Tempo_de_execucaoy
Desempenhoy = Tempo_de_execucaox =n
12
Ciclos de Clock
→ Frequentemente usamos ciclos para calcular o tempo de execução
13
Ciclos de Clock
→ A duração de um ciclo completo do clock é o período do clock e o
número de ciclos por segundo é a taxa do clock (ou frequência do
clock), que é o inverso do período do clock.
Frequencia_clock(Hz) = 1
Periodo_de_clock(s)
equivalente (Programa P)
equivalente
Ciclos_clock_CPUp
Tempo_execucao_CPUp = Velocidade_clock
15
Equação de Desempenho I
16
Quantos Ciclos são necessários para um programa?
→ Poderia assumir que # de ciclos = # de instruções
19
Terminologia
→ Um dado programa precisa
◦ algum número de instruções
◦ algum número de ciclos
◦ algum número de segundos
21
Equação de Desempenho II
Tempo_CPU_Programa =
Contagem_instrucao × media_CPI × Tempo_ciclo_clock
equivalente
Contagem_instrucao×media_CPI
Tempo_CPU_Programa = Velocidade_clock
Contagem_instrucao
MIPS = Tempo_execucao×106
→ Benchmarks pequenos
◦ agradável para arquitetos e designers
◦ fácil de padronizar
◦ pode ser abusado
→ Suítes de Benchmark
◦ SPEC: combinação de código de organização da indústria
◦ Linpack: pacote de álgebra linear 27
Lei de Amdahl
Tempo_execucao_melhoria =
Tempo_afetado_melhoria
Tempo_nao_afetado_melhoria + Quantidade_melhoria
29
Exemplos
→ Suponha que melhoramos um computador para realizar todas as
operações de ponto flutuante 5 vezes mais rápidas. O tempo de
execução de um benchmark antes da melhoria é 10 segundos.
Qual será a aceleração (speedup) se a metade de 10 segundos é
gasta executando operações de ponto flutuante?
→ Estamos procurando um benchmark para mostrar a nova unidade
de ponto flutuante descrita acima e queremos um benchmark que
mostre um speedup de 3. Estamos considerando que roda em 100
segundos com o hardware antigo.
Quanto tempo de execução as instruções de ponto flutuante
teriam que levar em conta neste programa para gerar a
aceleração desejada nesse benchmark?
30
Resumo
→ Desempenho é específico à um programa
Tempo de execução total é um resumo consistente de
desempenho
31
Próxima Aula
32
leandro@ic.uff.br