Buscar

Aula 2

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

1
Organização de Computadores I
DCC006
Prof. Omar Paranaiba Vilela Neto
Aula 2 – Desempenho
2
• Medidas, Relatórios e Resumos
• Escolhas inteligentes
• marketing 
• Organização
 
Porque um hardware é melhor que outros para diferentes programas?
Quais fatores do desempenho são relacionados com o hardware?
(i.e., Nós necessitamos de uma nova máquina ou um novo sistema 
operacional?)
Como um conjunto de instruções afeta o desempenho?
Desempenho
Por que nos preocupamos com o desempenho dos 
computadores?
3
Qual o avião tem o melhor desempenho?
Avião Passageiros Autonomia (mi) velocidade (mph)
Boeing 737-100 101 630 598
Boeing 747 470 4150 610
BAC/Sud Concorde 132 4000 1350
Douglas DC-8-50 146 8720 544
 Concorde comparado com o 747
 747 comparado com o DC-8
4
• Tempo de Resposta (latency)
— Demora para uma tarefa rodar
— Demora para executar uma tarefa
— Espera de uma consulta a base de dados
• Throughput (vazão)
— Quantos jobs a máquina pode rodar cada vez?
— Qual a taxa média de execução?
— Quantos trabalhos são concluídos?
Se um novo processador é colocado na máquina o que nós melhoramos?
Se uma nova máquina é colocada no laboratório o que melhoramos?
Desempenho dos computadores: TIME, TIME...
5
• Tempo decorrido 
– Tempo total para uma tarefa incluindo acesso a disco, 
memória, I/O, ... 
– Freqüentemente não é bom para comparações
• Tempo de CPU
– Não considera I/O ou tempo gasto por outros programas
– pode ser dividido em system time, e user time
• Nosso foco: Tempo de CPU do Usuário 
– tempo despendido para executar a linha de código em 
nosso programa
Tempo de Execução
6
• Para vários programas rodando em uma máquina X, 
DesempenhoX = 1 / Tempo de execuçãoX
• "X é n vezes mais rápido que Y"
DesempenhoX / DesempenhoY = n
• Problema:
– máquina A roda um programa em 20 segundos 
– máquina B roda o mesmo programa em 30 segundos
– O quanto A é mais rápido que B
Definições de Desempenho
7
Ciclos de Clock
• Podemos usar no lugar do tempo de execução em segundos o 
número de ciclos
• Pulso de Clock indica quando iniciar atividades:
• tempo de ciclo = tempo entre pulsos = segundos por ciclo 
– 2 nanoseg.
• taxa de clock (freqüência) = ciclos por segundo (1 Hz. = 1 ciclo/seg)
clock a 200 Mhz. tem tempo de ciclo 
time
seconds
program
=
cycles
program
×
seconds
cycle
 
1
200 × 106 
× 109 = 5 nanoseconds
8
Para melhorar o desempenho nós podemos:
Como melhorar o desempenho 
seconds
program
=
cycles
program
×
seconds
cycle
 melhorar o # de ciclos requerido por um programa 
ou
 melhorar o tempo de ciclo de clock ou (taxa de clock)
9
• Poderíamos assumir que # de ciclos = # de instruções
Esta afirmação é incorreta,
instruções gastam tempos diferentes em máquinas diferentes.
Como? lembrem -se que são instruções de máquina e não linhas de código C 
Quantos ciclos são requeridos em um programa?
10
• Multiplicação gasta mais tempo que adição
• Operações de ponto flutuante são mais longas que inteiros
• Acesso a memória gasta mais tempo que acesso a registro 
• Ponto importante: Mudanças no tempo de ciclo freqüentemente muda o 
número de ciclos requeridos por várias instruções (mais tarde)
tempo
Diferentes números de ciclos para diferentes instruções
11
• Nosso programa roda em 10 segundos em um computador A, que 
tem um clock de 4 Ghz. Nós estamos ajudando alguém projetar uma 
nova máquina B, que deverá rodar este programa em 6 segundos. O 
projetista poderá usar uma nova (ou mais cara) tecnologia para 
melhorar substancialmente a taxa de clock, mas ele tem a informação 
de que este aumento afetará o projeto do resto da CPU e por essa 
razão a máquina B requer 1,2 vezes mais ciclos de clock que a 
máquina A para um mesmo programa. Qual a taxa de clock a nova 
máquina deverá ser projetada?
Exemplo
12
Exemplo - Resposta
13
• Um dado programa requer
– várias instruções (instruções de máquina )
– vários ciclos
– vários segundos
• Nós temos um vocabulário que relaciona estas grandezas:
– tempo de ciclo (segundos por ciclo)
– taxa de clock (ciclos por segundo)
– CPI (# médio de ciclos por instrução) 
 uma aplicação intensiva em ponto flutuante poderia ter um alto CPI 
– MIPS (milhões de instruções por segundo)
poderia ser bom para um programa usando instruções simples 
Depois de entender ciclos
14
Desempenho
• Desempenho é determinado pelo tempo de execução 
• Como podemos quantificar o desempenho?
– # de ciclos para executar um programa
– # de instruções no programa
– # de ciclos por segundo
– média # de ciclos por instrução
– Média # de instruções por segundo
• Erro comum: indicar uma das variáveis como desempenho 
quando ela realmente não é. 
15
• Suponha que você tem duas implementações de um mesmo 
conjunto de instruções. 
Máquina A tem um tempo de ciclo de clock de 250 ps. e CPI de 2.0 
Máquina B tem um tempo de ciclo de clock de 500 ps. e CPI de 1.2 
Qual a máquina mais rápida para este programa e quanto?
CPI - Exemplo
16
CPI – Exemplo – Resposta
17
• Um projetista de compilador decidindo entre duas seqüências de 
código para uma máquina particular. Baseado em implementações 
de hardware, existem três diferentes classes de instruções (classe A, 
classe B e classe C, que necessitam de um, dois e três ciclos 
respectivamente). 
A primeira seqüência de código tem 5 instruções: 2 de A, 1 de B e 2 
de C
A segunda seqüência tem 6 instruções: 4 de A, 1 de B e 1 de C.
Qual a seqüência mais rápida? Quanto?
Qual o CPI de cada seqüência?
# de Instruções - Exemplo
18
# de Instruções – Exemplo – Resultado 
19
• Dois diferentes compiladores estão sendo testados para uma 
máquina de 4 GHz. A máquina tem três diferentes classes de 
instruções: Classe A, Classe B e Classe C, que requer um, dois e 
três ciclos respectivamente. Os compiladores são usados para 
produzir um grande bloco de software.
O código do primeiro compilador usa 5 bilhões de instruções da 
classe A, 1 bilhão da classe B e 1 bilhão da classe C. 
O código do segundo compilador usa 10 bilhões de instruções da 
classe A, 1 bilhão da classe B e 1 bilhão da classe C.
• Qual a seqüência mais rápida de acordo com MIPS?
• Qual a seqüência mais rápida de acordo com tempo de execução?
 
MIPS - Exemplo
20
MIPS – Exemplo – Resultado 
21
• O desempenho pode ser melhor determinado rodando uma aplicação 
real
– Usando programas tipicamente utilizados
– Ou, classe de aplicações típicas 
i.e., compiladores/editores, aplicações científicas, gráficas, etc.
• Pequenos benchmarks
– bom para projetistas 
– fácil padronização
– pode ser reutilizado 
• SPEC (System Performance Evaluation Cooperative)
– empresas fornecem um conjunto de programas reais e entradas
– pode ser reutilizado 
– indicador de desempenho válido 
Benchmarks
22
SPEC ‘89
• Melhorias nos compiladores 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
 r
at
io
23
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 Shallowwater 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
wave5 Plasma physics; electromagnetic particle simulation
24
Tempo de execução após melhoria = 
Tempo de execução não afetado +(Tempo de execução afetado / melhoria )
• Princípio: Faça o caso comum mais rápido
Lei de Amdahl
“O maior aumento de desempenho possível introduzindo 
melhorias numa determinada característica é limitado pela 
percentagem em que essa característica é utilizada”
25
Exemplo
Exemplo: Considere um programa com Texec=100 seg, 
sendo 20% adições. Qual o ganho se a adição for 4 
vezes mais rápida?
E se for o resto 2 vezes mais rápida?
sTexec 85804
20
=+= 18.1
85
100
==ganho
sTexec 602
8020 =+= 67.160
100
==ganho
26
• Desempenho é especifico para um programa particular
– Tempo total de execução é um resumo consistente do 
desempenho 
• Para uma dada arquitetura o desempenho aumenta quando:
– Aumento da taxa de clock (sem efeitos adversos no CPI)
– Melhorias na organização do processador que diminuam o CPI
– Melhorias no compilador que diminuam o CPI e/ou número de 
instruções
• Armadilha: Melhorias de desempenho em um aspecto da máquina 
afetará o desempenho total
Relembrando
	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

Outros materiais