Buscar

Slides perfeitos do Livro_AOC2_aula7

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Arquitetura Arquitetura ee Organiza Organizaçãçãoo
dede Computadores Computadores IIII
Universidade Federal de Pelotas
Instituto de Física e Matemática
Departamento de Informática
Bacharelado em Ciência da Computação
Aula 7
Avaliação de Desempenho
Prof. José Luís Güntzel
guntzel@ufpel.edu.br
www.ufpel.edu.br/~guntzel/AOC2/AOC2.html
slide 7.2
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
 Medida de desempenho corresponde, grosso modo, à
medida da velocidade com que um determinado software
vai rodar em uma máquina
 Medir o desempenho não é algo trivial…
 Não é possível determinar a velocidade com que um dado
software roda em uma máquina apenas analisando seus
conjunto de instruções
 É necessário conhecer os fatores que influenciam o
desempenho
 É necessário conhecer as medidas de desempenho e suas
limitações…
Introdução
slide 7.3
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
 Maneira como o compilador utiliza as instruções da
máquina, na hora de gerar o código executável
 Maneira como as instruções estão implementadas no
hardware (organização do processador)
 Maneira como a memória e os dispositivos de E/S se
comportam durante o processamento do programa
Algumas características ligadas ao hardware, que têm
influência na execução de um programa:
Introdução
slide 7.4
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
• Qual é a definição de desempenho?
Exemplo:
79.4245448720146Douglas DC-8-50
178.20013504000132Concorde
286.7006104150470Boieng 747
228.7506104630375Boeing 777
throughput de passageiros
(pas. X milhas/h)
Vel. de cruzeiro
(milhas/h)
Autonomia
(milhas)
Capacidade
(passageiros)
avião
Definição de Desempenho
slide 7.5
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Throughput e Tempo de Resposta
Tempo de resposta ou tempo de execução:
 Tempo transcorrido entre o início e o término da execução
de um programa
 Influenciado por acessos a disco, atividades de I/O,
overhead do sistema operacional, da rede, ...
Throughput (às vezes traduzido por “Vazão”):
 Quantidade total de trabalho executado em um
determinado intervalo de tempo
Qual das duas medidas acima é mais conveniente otimizar?
slide 7.6
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Throughput e Tempo de Resposta
Para aumentar o desempenho, deve-se reduzir tempo de
execução
Desempenhox α
1
Tempo de Execuçãox
Então, se Desempenhox > Desempenhoy, tem-se que:
1
Tempo de Execuçãox
>
1
Tempo de Execuçãoy
e Tempo de Execuçãox Tempo de Execuçãoy<
slide 7.7
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
 distinção entre …
 tempo total para a execução de um programa e
 tempo gasto pelo processador (tempo de CPU ou tempo de
processador) em benefício deste programa (com tarefas
específicas do programa)
 não inclui tempo de execução de outros programas, nem o
tempo de espera por I/O, ...
 O tempo de CPU está dividido em ...
 tempo de CPU do usuário (user CPU time) – tempo gasto
executando instruções do programa do usuário
 tempo de CPU do sistema (system CPU time) – tempo gasto com
tarefas do S.O. necessárias para a execução do programa do
usuário
Medidas de Desempenho
Tendo em vista os objetivos desta disciplina, desempenho de CPU será
medido apenas em função do tempo de CPU do usuário
slide 7.8
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
 No UNIX, o comando “time” pode retornar:
Medidas de Desempenho
90.7u 12.9s 2:39 65%
Tempo de CPU do usuário (user CPU time) = 90,7 segundos
Tempo de CPU do sistema (system CPU time) = 12,9 segundos
Tempo total transcorrido (elapsed time) = 2 minutos e 39 segundos (= 159
segundos)
Precentual do tempo total transcorrido que foi gasto pela CPU no programa
é:
90.7 + 12.9
159
= 0.65
slide 7.9
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
 ciclos de clock = intervalos básicos de tempo nos quais
são executadas as operações elementares de uma
instrução
 transferências de valores entre registradores
 operações aritméticas na ALU
 período do clock T = tempo de duração de um ciclo de
clock
 p.ex. 4 ns
 freqüência de operação f = número de ciclos de clock
por unidade de tempo
 f = 1 / T
 se T = 4 ns
 então f = 1 / 4.10-9 = 2.5 x 108 = 250 MHz
Medidas de Desempenho
slide 7.10
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
 tempo de CPU
 de um programa
nº de ciclos de clock
 do programa período do clock= X
por exemplo:
– programa gasta 10x106 ciclos
– período do clock é 4 ns
tempo de CPU do programa =
10.106 x 4.10-9 = 40.10-3 = 40 ms
 tempo de CPU
 de um programa =
Alternativamente:
nº de ciclos de clock do programa
freqüência do clock
formas de aumento do desempenho:
– diminuir o período do clock
– diminuir nº de ciclos necessários para execução do programa
Estes objetivos são muitas vezes conflitantes.
slide 7.11
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Exercício
 programa roda em 10s na máquina A, que tem clock de
400 MHz
 queremos rodá-lo em 6s numa máquina B com nova
tecnologia
 a máquina B pode ter um aumento substancial de
freqüência de clock
 no entanto, máquina B exigirá 1,2 vezes mais ciclos de
clock para executar instruções do que a máquina A
 qual é a freqüência de clock necessária para a máquina B?
Medidas de Desempenho
slide 7.12
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Solução do exercício
 tempo de CPU
 de um programa =
nº de ciclos de clock do programa
freqüência do clock
10s = 
nº de ciclos de clock em A
400 x 106 ciclos / s
nº de ciclos de clock em A = 4000 x 106 ciclos
6s = 
1,2 x nº de ciclos de clock em A
freqüência do clock em B
=
1,2 x 4000 x 106
freqüência do clock em B
freqüência do clock em B = 800 MHz
Medidas de Desempenho
slide 7.13
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
nº de ciclos de clock
 do programa
 nº médio de ciclos
de clock por instrução= X
nº instruções
do programa
CPI = nº médio de ciclos de clock por instrução é uma média sobre
todas as instruções executadas no programa.
Medidas de Desempenho
CPI permite a comparação de duas implementações (duas
organizações) diferentes para o mesmo conjunto de instruções
slide 7.14
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Exercício:
– Suponhamos que duas máquinas implementem o mesmo conjunto
de instruções
– Um mesmo programa P é rodado em ambas as máquinas
– A máquina A tem período de clock de 10ns e CPI = 2.0 para P
– A máquina B tem período de clock de 20ns e CPI = 1.2 para P
– Qual máquina é mais rápida ?
Medidas de Desempenho
slide 7.15
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
nº de ciclos de clock
 do programa CPI= X
Onde I é o nº instruções
do programa
Solução do exercício
nº de ciclosde clock de A = 2,0 x I
nº de ciclos de clock de B = 1,2 x I
 tempo de CPU
 de um programa
nº de ciclos de clock
 do programa período do clock= X
tempo de CPU de A = 2,0 x I x 10 ns = 20 I ns
tempo de CPU de B = 1,2 x I x 20 ns = 24 I ns
Portanto, a máquina A é 1,2 vezes mais rápida do que B na
execução de P
I
slide 7.16
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
X CPI X
 tempo de CPU =
nº de instruções X CPI
freqüência do clock
período do
clock
tempo de 
CPU
 nº de 
instruções=
Medidas de Desempenho
Equação Básica da Medida de Desempenho
slide 7.17
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Como medir estes fatores?
 tempo de CPU é medido executando-se o programa
 período (ou freqüência) do clock é divulgado pelo fabricante
 nº de instruções e CPI são mais difíceis de obter
– nº de instruções depende da arquitetura e do compilador*
– CPI depende da organização e do programa
 conhecendo-se nº de instruções ou CPI, pode-se determinar o
outro a partir da fórmula
Medidas de Desempenho
* Ferramentas chamadas traçadores (tracers) acompanham a execução de
um programa e contam quantas e quais instruções são usadas.
slide 7.18
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Nº de ciclos de clock de um programa pode ser determinado ...
 pela análise dos diferentes tipos de instruções executados pelo
programa
 pelo nº de ciclos de clock necessários para cada tipo de instrução
Σ nº de ciclos declock do programa=
i = 1
n
( CPIi X Ci )
onde
n = nº de tipos de instruções
CPIi = ciclos de clock por instrução do tipo i
Ci = nº de instruções do tipo i no programa
Medidas de Desempenho
slide 7.19
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Exercício:
Um projetista de compilador deseja decidir entre duas possíveis
seqüências de código para a resolução de um problema dados os tipos
de instruções e o nº de ciclos por instrução de cada tipo, qual
seqüência é mais rápida?
 tipo de
instrução CPI
A 1
B 2
C 3
nº de instruções
código tipo A tipo B tipo C
1 2 1 2
2 4 1 1
Medidas de Desempenho
slide 7.20
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Solução do exercício
Σ nº de ciclos declock do programa =
i = 1
n
( CPIi X Ci )
Nº ciclos de clock para código 1 = ( 2 x 1 ) + ( 1 x 2 ) + ( 2 x 3 ) = 10 ciclos
Nº ciclos de clock para código 2 = ( 4 x 1 ) + ( 1 x 2 ) + ( 1 x 3 ) = 9 ciclos
CPI = ciclos de clocknº de instruções
CPI código 1 = 10 / 5 = 2.0
CPI código 2 = 9 / 6 = 1.5
Código 2 é mais rápido, mesmo que execute uma instrução a mais,
pois necessita de 9 ciclos de clock (portanto, tem CPI mais baixo).
O código 2 executa 4 + 1 + 1 = 6 instruções
O código 1 executa 2 + 1 + 2 = 5 instruções
slide 7.21
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Benchmarks
Workload:
• É o conjunto de programas que um usuário qualquer costuma
rodar
• Para comparar o desempenho de duas máquinas A e B bastaria
rodar o mesmo workload em ambas
• A maioria dos usuários não possui um workload
• Cada classe de usuário está interessado em determinados tipos
de programas
slide 7.22
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Benchmarks
Benchmarks:
• São programas desenvolvidos especialmente para serem
utilizados como exemplos para a medida de desempenho
• Tentam reproduzir o comportamento de workloads reais de
determinados grupos de usuários
• Geralmente, são de domínio público
• Procuram explorar repertório de recursos da arquitetura
• Benchmarks usuais: SPEC (SPECint e SPECfp), Dhrystone,
Whetstone,…
slide 7.23
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Problemas com benchmarks
• melhor avaliação seria feita com a carga de trabalho
efetivamente utilizada em cada máquina
• fabricantes podem tentar otimizar arquitetura e/ou
organização e/ou compilador para executar de forma mais
eficiente apenas os benchmarks
Intel: tem sua própria medida de desempenho (o índice iComp)
Benchmarks
slide 7.24
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
MIPS = nº instruçõestempo de CPU X 106 =
nº instruções
ciclos X período X 106
= nº instruções X freqüêncianº instruções X CPI X 106 =
freqüência
CPI X 106MIPS
Problemas com a medida em MIPS:
– não se pode comparar máquinas com conjuntos de instruções
 diferentes, pois certamente o nº de instruções será diferente para
 um mesmo programa
– MIPS varia de um programa para outro na mesma máquina
– MIPS pode variar inversamente ao desempenho
Outras Medidas: MIPS
slide 7.25
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
Exemplo
 tipo de
instrução CPI
A 1
B 2
C 3
nº de instruções (x 106)
código tipo A tipo B tipo C
compil. 1 5 1 1
compil. 2 10 1 1
freqüência do clock = 100 MHz
Calcular o desempenho do código gerado por cada compilador:
– em MIPS
– em tempo de CPU
Outras Medidas: MIPS
slide 7.26
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
= freqüênciaCPI X 106MIPS
= ciclos de clocknº instruçõesCPI
Σciclos de clock =
i = 1
n
( CPIi X Ci )
= nº instruçõesCPI
Σ ( CPIi X Ci )
=CPI1
( 5x1 + 1x2 + 1x3 ) . 106
( 5 + 1 + 1 ) x 106 =
10
7 = 1.43
=CPI2
( 10x1 + 1x2 + 1x3 ) . 106
( 10 + 1 + 1 ) x 106 =
15
12 = 1.25
MIPS1 =
100 MHz
1.43 x 106 = 69.9 MIPS2 =
100 MHz
1.25 x 106 = 80.0
slide 7.27
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
tempo de CPU = nº instruções X CPIfreqüência
=tempo1
( 5 + 1 + 1 ) . 106 
100 . 106 = 0.10 s
x 1.43
=tempo2
( 10 + 1 + 1 ) . 106 
100 . 106 = 0.15 s
x 1.25
O código 2 gasta portanto mais tempo.
Conclusão: apesar de ter MIPS com maior valor, o código 2 gasta
bem mais instruções.
Outras Medidas: MIPS
slide 7.28
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Prof. José Luís Güntzel
Avaliação de Desempenho
 MFLOPS =
nº de operações de ponto flutuante no programa
tempo de CPU x 106
Não se contam instruções de PF e sim operações para evitar
comparações injustas entre máquinas com instruções diversas
– somas, subtrações, multiplicações, divisões
– precisão simples, precisão dupla
– instruções mais complexas: seno, raiz quadrada
Problemas na comparação:
– máquinas diferentes têm não apenas conjuntos diferentes de 
 instruções, mas também de operações
– certas operações (p.ex. soma em precisão simples) são muito
 mais rápidas do que outras (p.ex. divisão em precisão dupla)
– como na medida de MIPS, pode-se ter gasto maior em tempo
 mesmo tendo mais MFLOPS 
Outras Medidas: MFLOPS

Outros materiais