Buscar

O Papel da Performance

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

O Papel da Performance
Capítulo 01 - “Organização e Projeto de 
Computadores: A Interface 
Hardware/Software”
● Eficiência de um sistema inteiro
● Avaliar e compreender o desempenho 
trata:
– Medir
– Informar
– Resumir
– Fatores determinantes
2
O Papel da Performance
O Papel da Performance
● É complexo avaliar o desempenho 
desse tipo de sistema
– Complexidade e escala dos softwares 
modernos
– Ampla gama de técnicas de melhoria de 
desempenho
● Impossível sentar com um manual do 
conjunto de instruções e determinar a 
velocidade de execução de um sistema
3
● Desempenho é um fator importante para os 
projetistas
– O que determina o desempenho de um 
computador?
4
O Papel da Performance
5
Avião Passageiros Autonomia (mi) Velocidade (mph)
Boeing 777 375 4630 610
Boeing 747 470 4150 610
BAC/Sud Concorde 132 4000 1350
Douglas DC-8-50 146 8720 544
●Analogia com aviões de passageiro
●Desempenho determinado pela velocidade:
● Quão rápido é o Concorde comparado 
com o 747?
● 1 passageiro de um ponto a outro
● 450 passageiro de um ponto a outro
Definição de Desempenho
6
Latência e Vazão
●Tempo de Resposta (Latência)
● Quanto tempo leva para executar uma tarefa?
●Throughput (Vazão)
● Quantas tarefas a máquina pode executar de uma 
vez?
● O que é a taxa média de execução?
● Qual o impacto, se substituir o processador 
por uma versão mais rápida?
● Qual o impacto, se adicionarmos uma nova 
máquina no laboratório?
7
tempo de execuçãoB
tempo de execuçãoA
=n
Latência e Vazão
●Tempo de Resposta ou Tempo de 
Execução
● Tempo entre inicio e término de uma 
tarefa
● Diminuir o tempo de resposta quase 
sempre melhora a vazão
● Dizer que uma máquina A é n vezes mais 
rápida que uma máquina B significa que:
● Desempenho é definido como o inverso 
do tempo de execução
● Desempenho Relativo
8
1
tempo de execuçãoA
=desempenhoA
n=
tempo de execuçãoB
tempo de execução A
=
1
desempenhoB
1
desempenhoA
=
desempenho A
desempenhoB
Desempenho
● Problema:
– máquina A executa um programa em 10 
segundos
– máquina B executa o mesmo programa em 
15 segundos
Calcular n:
n=
desempenhoA
desempenhoB
=
tempo de execução B
tempo de execução A
n=15
10
n=1,5
Desempenho
● Tempo decorrido
– Tempo de CPU gasto no SO realizando as 
tarefas a pedido do programa.
● Tempo de CPU 
– Não conta E/S ou tempo dispendido rodando 
outros programas.
– Significa o tempo que a CPU consome 
computando.
● Nosso foco: tempo de CPU do usuário 
– tempo gasto executando linhas de código que 
estão “dentro” do nosso programa.
Tempo de Execução
● Caracterizado por limitações de tempo 
real
● Dois tipos de limitações
– Tempo real rígido
● Define um limite fixo para responder ou 
processar um evento (ex: freios ABS)
– Tempo real flexível
● Uma resposta média ou uma resposta dentro de 
um tempo limitado a uma grande fração dos 
eventos (ex: manipular quadros de vídeos em 
um sistema de reprodução)
11
Desempenho - Detalhado
● Métricas utilizadas
– Ciclos de clock (ciclos)
– Tempo de ciclo (nanoseg.)
– Instruções por programa
– Média dos ciclos de clock por instrução
ou
12
tempo de execução = ciclos de clock x tempo do ciclo
tempo de execução= ciclos de clockvelocidade de clock
Desempenho - Fatores
● Porém nas equações anteriores não 
fazemos referência ao número de 
instruções necessárias para o programa, 
logo o número de ciclos de clock pode 
ser estendido como:
● Ciclos de clock por instrução pode ser 
chamado como CPI
13
ciclos de clock = Instruções para x média dos ciclos
 o programa por instrução
tempo de execução = CPI x Nº de Inst x tempo do ciclo
Desempenho - Fatores
● Ao invés de reportar o tempo de 
execução em segundos, geralmente 
usa-se ciclos.
● Um “tick” de clock indica quando se 
inicia uma atividade 
– Tempo de ciclo = tempo entre ticks = 
segundos por ciclo.
– Taxa de clock (frequência) = ciclos por 
segundo (1 Hz = 1 ciclo/s).
Ciclos de Clock
● Assumir que # de ciclos = # de 
instruções
– Essa consideração é apenas uma aproximação, pois 
diferentes instruções levam diferentes tempos para 
serem executadas. 
time
1ª inst rução
2ª in strução
3ª in struçã o 4ª 5ª 6ª
...
Quantos ciclos são requeridos por 
um programa?
● Multiplicação leva mais tempo que 
soma.
● Operações de ponto flutuante levam 
mais tempo que operações de inteiros.
● Acessar memória leva mais tempo que 
acessar registradores.
– Importante: alterando o tempo de ciclo muitas vezes 
altera o número de ciclos requerido para várias 
instruções.
tempo
Diferentes números de ciclos para 
diferentes instruções
● Computador A executa um programa em 
10 segundos e tem um clock de 4 GHz
● Computador B execute esse programa 
em 6 segundos e B exija 1,2 vez mais 
ciclos de clock do que o computador A
● Qual a velocidade de clock de B?
17
Desempenho - Exemplos
18
tempo de execução A=
ciclos de clock A
velocidade de clock A
10 s =
ciclos de clock A
4x109
A= 40 x109 ciclos
ciclos de clock
tempo de execuçãoB=
1,2 xciclos de clock A
velocidade de clock B
6 sxvelocidade de clock B=1,2 x 40 x10
9
velocidade de clock B=8 GHz
Desempenho - Exemplo
● Um dado programa irá requerer
– Certo número de instruções (instruções de 
máquina)
– Certo número de ciclos
– Certo tempo em segundos
Agora que compreendeu-se o 
ciclo
● A única medida completa e confiável do 
desempenho é o tempo:
20
Tempo= InstruçõesPr ograma X
Ciclos de clock
Instruções X
Segundos
Ciclos de clock
Tempo= Segundos
Pr ograma
Componentes de desempenho Unidades de medida
Tempo de execução da CPU de um programa Segundos para o programa
Contagem de instruções Instruções executadas para o programa
CPI Número médio de ciclos de clock por instrução
Tempo do ciclo de clock Segundos por ciclo de clock
Combinando os Fatores
● MIPS Milhões de instruções por segundo
● Número de instruções de código de 
máquina que o processador pode 
executar em um segundo
● Porém não é possível usá-lo como 
medida de desempenho
21
MIPS= Nº de Instruções
Tempo de Execução X 106
Medida MIPS
22
Component
e de 
hardware 
ou software
●Afeta o quê? ●Como?
● Algoritmo
● Contagem de 
instruções, 
possivelmente o CPI
● Determina o Nº de instruções do programa 
fonte executadas. 
● Pode favorecer instruções mais lentas ou 
rápidas.
● Linguagem de 
Programação
● Contagem de 
instruções e CPI
● Instruções da linguagem traduzidas em 
instrução do processador. 
● Pode usar chamadas indiretas (CPI mais 
altos).
● Compilador
● Contagem de 
instruções e CPI
●Afeta a contagem de instruções e a média de 
CPI já que determina a tradução da 
linguagem de programação para instrução
● Conjunto de 
instruções
● Contagem de 
instruções, velocidade 
de clock e CPI
●Afeta as instruções necessárias para função, 
o custo em ciclos de cada instrução e a 
velocidade geral do processador.
Desempenho de um Programa
● O desempenho é determinado pelo 
tempo de execução.
● As variáveis abaixo não determinam o 
desempenho:
– N° de ciclos para executar um programa;
– N° de instruções num programa;
– N° de ciclos por segundo;
– N° médio de ciclos por instrução; e
– N° médio de instruções por segundo.
Desempenho
● Considerar que temos duas implementações da 
mesma arquitetura do conjunto de instruções (ISA). 
Para certo programa:
Máquina A tem um tempo de ciclo de clock de 250 ps 
e um CPI de 2.0 
Machine B tem um tempo de ciclo de clock de 500 pse um CPI de 1.2 
● Qual máquina é mais rápida para esse programa, e 
por quanto?
Exemplo de CPI
25
ciclos de clock A=Ix 2,0
ciclos de clock B=Ix 1,2
TempoA =ciclos de clock A x tempo do ciclo de clock A
Ix 2,0 x 250 ps=500 xIps
TempoB=ciclos de clock B x tempo do ciclo de clockB
Ix1,2 x 500 ps= 600 xIps
n=
tempo de execução B
tempo de execução A
=600 xIps
500 xIps
=1,2
● Um projetista de compilador está tentando decidir 
entre duas sequências de código para uma máquina 
particular. Baseado numa implementação de 
hardware, existem 3 classes diferentes de instruções: 
Classe A, Classe B, e Classe C, que requerem um, 
dois e três ciclos (respectivamente). 
A primeira sequência tem 5 instruções: 2 de A, 1 de 
B, e 2 de C
A segunda sequência tem 6 instruções: 4 de A, 1 de 
B, e 1 de C.
Qual sequência será mais rápida? Quanto?
Qual o CPI para cada sequência?
Exemplo de Nº de Instruções
● Determinação melhor do desempenho executando 
aplicações reais 
– Usa programas típicos de carga de trabalho (workload) desejada
– Ou, típicos de classes de aplicações desejadas
ex., compiladores/editores, aplicações científicas, gráficos, etc.
● Pequenos benchmarks
– Bom para arquitetos e projetistas
– Fácil para padronização
– Podem ser abusados (usados erroneamente)
● SPEC (System Performance Evaluation Cooperative)
– As companhias adotam um conjunto de programas reais 
– Podem ser abusados 
Benchmarks
● Gráfico de “melhoramento” do 
compilador e desempenho
0
100
200
300
400
500
600
700
800
tomcatvfppppmatrix300eqntottlinasa7doducspiceespressogcc
Benchmark
Compiler
Enhanced compiler
S
P
E
C
 p
er
fo
rm
an
ce
 ra
tio
SPEC'95
Benchmark Description
go Artificial intelligence; plays the game of Go
m88ksim Motorola 88k chip simulator; runs test program
gcc The Gnu C compiler generating SPARC code
compress Compresses and decompresses file in memory
li Lisp interpreter
ijpeg Graphic compression and decompression
perl Manipulates strings and prime numbers in the special-purpose programming language Perl
vortex A database program
tomcatv A mesh generation program
swim Shallow water model with 513 x 513 grid
su2cor quantum physics; Monte Carlo simulation
hydro2d Astrophysics; Hydrodynamic Naiver Stokes equations
mgrid Multigrid solver in 3-D potential field
applu Parabolic/elliptic partial differential equations
trub3d Simulates isotropic, homogeneous turbulence in a cube
apsi Solves problems regarding temperature, wind velocity, and distribution of pollutant
fpppp Quantum chemistry
SPEC'95
Dobrando a taxa de clock dobra o desempenho?
 Uma máquina com uma taxa de clock lenta pode 
ter um melhor desempenho? 
Clock rate (MHz)
S
P
E
C
in
t
2
0
4
6
8
3
1
5
7
9
10
200 25015010050
Pentium
Pentium Pro
Pentium
Clock rate (MHz)
S
P
E
C
fp
Pentium Pro
2
0
4
6
8
3
1
5
7
9
10
200 25015010050
SPEC'95
● As decisões de projeto devem favorecer 
os casos mais frequentes: tornar rápido 
o caso mais comum
● A lei de Amdahl define o speed-up (S), 
que consiste do ganho em desempenho 
que pode ser obtido ao melhorar 
determinada característica do 
computador.
31
Lendas e Falhas
● Speed Up (S)
32
S= desempenho de toda a operação usando a melhoriadesempenho de toda a operação sem usar a melhoria
S= tempo de execução de toda a operação sem usar a melhoriatempo de execução de toda a operação usando a melhoria
O Speed-up
● O speed up a partir de alguma melhoria 
depende de dois fatores
● A fração do tempo de computação na máquina 
original que pode tirar vantagem da melhoria 
(Fmelhoria): se 20s do tempo de execução de 
um programa, que leva 60s para ser executado, 
podem ser melhorados, a fração é 20/60;
● O ganho obtido com a execução da melhoria 
(Smelhoria): se a melhoria leva 2s para ser 
executada e a original leva 5s, o ganho é 5/2.
33
Armadilha - Speed-UP
● O tempo de execução usando a 
máquina original com a melhoria (tenovo) 
será igual ao tempo gasto usando a 
parte da máquina sem melhoria mais o 
tempo gasto usando a melhoria
34
tenovo =teantigo×((1−Fmelhoria )+ FmelhoriaSmelhoria )
Armadilhas - Speed-up
● O speed up total (Stotal) é a razão entre os 
tempos de execução
35
S total=
teantigo
tenovo
= 1
(1−Fmelhoria)+
Fmelhoria
Smelhoria
Armadilhas - Speed-up
● Suponha uma melhoria que executa 10 
vezes mais rápido do que o original, mas 
é utilizada somente 40% do tempo
● A lei de Amdahl serve como um indicativo de quanto uma 
melhoria irá aumentar o desempenho total e como distribuir 
recursos para melhorar a relação custo/desempenho.
● O objetivo é investir recursos proporcionalmente aonde o tempo 
é gasto
36
Fmelhoria=0 . 4
Smelhoria=10
S total=
1
0 .6+ 0 . 4
10
=
1
0 .64≈1. 56⇒
Armadilhas – Exemplo de Speed-up
Desempenho é específico a um 
programa particular.
O tempo de execução total é um 
resultado do desempenho.
Para que uma dada arquitetura 
melhore deve-se:
Aumentar a taxa de clock (sem afetar o 
CPI)
Melhorar a organização do processador 
para diminuir o CPI
Melhorar o compilador para diminuir o 
CPI e/ou número de instruções.
Conclusões
● Cuidado: não esperar que a melhoria do 
desempenho num aspecto de uma 
máquina melhore sempre o seu 
desempenho total!
38
Conclusão
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38

Continue navegando