Você está na página 1de 34

Organizao de

Computadores
Marcelo Lobosco
DCC/UFJF

Avaliando e
Compreendendo o
Desempenho
Aula 09

Agenda

Avaliando e Compreendendo o
Desempenho
Introduo

Definindo Desempenho
Medindo o Desempenho

Desempenho

da CPU e seus Fatores

Introduo

Como medir, informar e resumir o desempenho


Principais fatores que determinam o desempenho
Desempenho do hardware fundamental para
eficincia de todo o sistema
Avaliar o desempenho pode ser complicado
Escala

e complexidade do software, tcnicas de


melhoria de desempenho do hardware

Introduo

Para diferentes tipos de aplicaes,


diversas medies de desempenho podem
ser apropriadas
Diferentes

aspectos podem ser os mais


significativos na determinao do desempenho
geral

Veja atravs da propaganda de marketing


Vital para entender a motivao
organizacional subjacente

Introduo

Por que alguns hardwares so melhores do que


outros para diferentes programas?
Que fatores do desempenho de sistema so
relacionados ao hardware? (por exemplo,
precisamos de uma nova mquina ou de um
novo sistema operacional?)
Como o conjunto de instrues da mquina
afeta o desempenho?

Definindo Desempenho

A questo do desempenho pode ser sutil


Que avio tem melhor desempenho?

O quanto mais rpido o Concorde comparado


com o 747?
O quanto maior o 747 do que o Douglas DC-8?

Definindo Desempenho

Vencedores
Capacidade:

Boeing 747
Autonomia: Douglas DC-8-50
Velocidade: BAC/Sud Concorde
Vazo: Boeing 747

Desempenho pode ser definido de vrias


formas diferentes

Definindo Desempenho

Tempo de resposta ou execuo (latncia)

Quanto tempo leva para meu trabalho ser realizado?


Quanto tempo preciso esperar para a consulta ao banco de
dados?
Tempo necessrio para o computador completar uma tarefa
Importante para usurio de computador individual

Vazo (throughput)

Quantos trabalhos a mquina pode realizar ao mesmo tempo?


Qual a velocidade de execuo mdia?
Quanto trabalho est sendo feito?
Quantidade total de trabalho feito em um determinado tempo
Importante para gerentes de CPDs

Definindo Desempenho

Questo: As seguintes mudanas em um


sistema computacional aumentam a vazo,
diminuem o tempo de resposta ou as duas
coisas?
Se

atualizarmos uma mquina com um novo


processador?
Se incluirmos processadores adicionais em um
sistema multiprocessado usado para tarefas
distintas?

Definindo Desempenho

Foco em tempo de resposta

Para maximizar o desempenho, devemos minimizar


o tempo de execuo de uma tarefa:

1
Desempenho X =
Tempo de Execuo X

Desempenho de X n vezes superior a Y:

Desempenho X
Desempenho Y

=n

Definindo Desempenho

Se X n vezes mais rpido que Y, ento o


tempo de execuo de Y n vezes maior do que
em X:

Desempenho X
Desempenho Y

Tempo de Execuo Y
Tempo de Execuo X

=n

Definindo Desempenho

Exemplo: Se computador A executa um programa


em 10s e B o executa em 15s, o quanto A mais
rpido do que B?

Desempenho A
Desempenho B

Tempo de Execuo B
Tempo de Execuo A

15
=1,5
10

A 1,5 vezes mais rpido do que B.

=n

Medindo o Desempenho

Tempo de relgio, decorrido ou de resposta


Conta

tudo (acessos a disco e a memria, E/S etc.)


Nmero til, mas normalmente no ideal para fins de
comparao

Tempo de CPU
Tempo

real que a CPU gasta computando uma tarefa


especfica
No conta E/S ou tempo gasto executando outros
programas
Pode ser dividido em tempo de sistema e tempo de
usurio

Medindo o Desempenho

Ciclos de clock
Tempo

para cada perodo de clock

Velocidade de clock (freqncia) = ciclos por


segundo (1Hz = 1 ciclo/segundo)

Velocidade de clock e tempo de ciclos so inversos!

Exemplo: um clock de 4Ghz possui um tempo de


ciclo de

1 / (4 x 109) = 0,25 x 10-9 = 250 x 10-12 = 250 ps

Medindo o Desempenho

Diferentes aplicaes so sensveis a


diferentes aspectos do desempenho de um
sistema
Servidores

=> desempenho de E/S

Tempo decorrido

Para melhorar o desempenho


Que

mtrica importante
Procurar gargalos medindo execuo

Medindo o Desempenho

Questo: O desempenho do computador


C 4 vezes melhor do que o computador
B, que leva 28s para executar uma
determinada aplicao. Quanto tempo C
levar para executar essa aplicao?

Desempenho da CPU e seus


Fatores
Desempenho examinado usando
diferentes mtricas
Se mtricas pudessem ser relacionadas,
poderamos determinar os efeitos de uma
mudana de projeto no desempenho
Frmula que relaciona mtricas de CPU:
Tempo de execuo da CPU para um
programa = Ciclos de clock da CPU para
um programa X Tempo do ciclo de clock

Desempenho da CPU e seus


Fatores

Outra alternativa (velocidade de clock e tempo


de ciclo so inversos):
Tempo de execuo da CPU para um programa =

Ciclos de clock de CPU para um programa


velocidade de clock

Como melhorar o desempenho?


Reduzindo

a durao do ciclo de clock


Reduzindo o nmero de ciclos de clock necessrio
para um programa

Desempenho da CPU e seus


Fatores

Exemplo: Um programa executado em


10s no computador A, com clock de
4GHz. Um computador B est sendo
construdo para executar este programa
em 6s. Entretanto, B exigir 1,2 vezes
mais ciclos de clock do que A. Qual a
velocidade de clock necessria para B?

Desempenho da CPU e seus


Fatores
Primeiro passo: quantos ciclos de CPU so
necessrios em A?
Tempo de CPU A=

Ciclos de clock da CPU A

Velocidade de clock A
Ciclos de clock da CPU A
10 segundos=

9 ciclos
4 x 10
segundo
9 ciclos
Ciclos de clock da CPU A=4 x 10
x 10 segundos
segundo
Ciclos de clock da CPU A=4 x 1010 ciclos

Desempenho da CPU e seus


Fatores
Tempo de CPU para B:
Tempo de CPU B =

1,2 x Ciclos de clock da CPU A


Velocidade de clock B

1,2 x 4 x 10 10 ciclos
6 segundos=

Velocidade de clock B
10

4,8 x 10 ciclos
Velocidade de clock B =

6 segundos
8 x 109 ciclos
Velocidade de clock B =
= 8 GHz
segundo

Desempenho da CPU e seus


Fatores

Poderamos considerar que o nmero de ciclos


igual ao nmero de instrues?
6.

5.

4.

3. Instruo

2. Instruo

1. Instruo

Tempo

Essa suposio incorreta! Diferentes instrues levam a


diferentes perodos em diferentes mquinas.

Desempenho da CPU e seus


Fatores

Multiplicao leva mais tempo do que adio


Operaes de ponto flutuante levam mais tempo
do que operaes com inteiros
Acessar memria leva mais tempo do que
acessar registradores
Importante: mudar o tempo de ciclo
normalmente muda o nmero de ciclos
necessrios para vrias instrues

Desempenho da CPU e seus


Fatores
Tempo de execuo pode ser expresso em
funo do nmero de instrues executadas:
Ciclos de clock da CPU = Instrues para um
programa x Mdia dos ciclos de clock por
instruo
Mdia dos ciclos de clock por instruo => CPI
CPI permite comparar duas implementaes
diferentes do mesmo conjunto de instrues

Desempenho da CPU e seus


Fatores

Exemplo: Suponha que tenhamos duas implementaes


da mesma arquitetura do conjunto de instrues (ISA).
Para um determinado programa,
A mquina A tem um tempo de ciclo de clock de 250 ps
e uma CPI de 2,0 e
a mquina B tem um tempo de ciclo de clock de 500 ps
e uma CPI de 1,2
Que mquina mais rpida para esse programa e o
quanto?

Desempenho da CPU e seus


Fatores
Soluo:
Mesmo nmero de instrues (I)
Nmero de ciclos de clock para cada computador:

Ciclos de clock da CPUA = I x 2,0


Ciclos de clock da CPUB = I x 1,2

Tempo de CPU para cada computador:


Tempo de CPUA = Ciclos de Clock da CPUA x Tempo de Ciclo de ClockA =>
I x 2,0 x 250ps = (500 x I)ps
Tempo de CPUB = Ciclos de Clock da CPUB x Tempo de Ciclo de ClockB =>
I x 1,2 x 500ps = (600 x I)ps

Desempenho da CPU e seus


Fatores

A mais rpido, mas o quanto?

Desempenho A

Tempo de Execuo B

Desempenho B Tempo de Execuo A


(600 x I )ps
=1,2
(500 x I )ps

=n

Desempenho da CPU e seus


Fatores

Frmula de desempenho em funo do nmero


de instrues, CPI e tempo de ciclo de clock:

Tempo de CPU = Contagem de instrues x CPI x Tempo de ciclo de clock

ou

Contagem de instrues x CPI


Tempo de CPU =
velocidade de clock

Trs fatores chaves para desempenho

Desempenho da CPU e seus


Fatores

Como determinar esses valores?


Tempo

de CPU => execuo do programa


Tempo de ciclo de clock => manuais
Contagem de instrues => ferramentas de trace de
execuo, simulador de arquitetura, contadores de
hardware
CPI => contadores de hardware

Varia por aplicao e entre implementaes do mesmo


conjunto de instrues

Desempenho da CPU e seus


Fatores

possvel calcular ciclos de clock da CPU


usando contagem de ciclos individuais:
n

Ciclos de clock da CPU = (CPI i x Ci )


i=1

onde Ci a contagem do nmero de instrues da classe i


executadas, CPIi a mdia dos ciclos por instruo para
a classe i e n o nmero de classes de instruo

CPI geral depende do nmero de ciclos para


cada tipo de instruo e de suas freqncias de
execuo.

Desempenho da CPU e seus


Fatores
Componente
Algoritmo

Afeta o qu?

Contagem de instrues,
possivelmente CPI
Linguagem de Programao Contagem de instrues,
CPI
Compilador
Contagem de instrues,
CPI
Conjunto de Instrues
Contagem de instrues,
velocidade de clock, CPI

Desempenho da CPU e seus


Fatores

Exerccio: Um projetista de compilador est tentando decidir entre


duas seqncias de cdigo para um determinada mquina.
Baseado na implementao de hardware, existem trs classes
diferentes de instrues: Classe A, Classe B e Classe C, e elas
exigem um, dois e trs ciclos, respectivamente.
A primeira seqncia de cdigo possui 5 instrues: 2 de A, 1 de B
e 2 de C. A segunda seqncia possui 6 instrues: 4 de A, 1 de B
e 1 de C.
Que seqncia ser mais rpida? O quanto mais rpida? Qual a
CPI para cada seqncia?

Prxima Aula...

Avaliando e Compreendendo o
Desempenho
Avaliando

o Desempenho
Benchmark SPEC
Falcias e Armadilhas

Você também pode gostar