Avaliação do desempenho
1
Desempenho

Como avaliar o desempenho de um CPU ?

Tipicamente pensa-se na frequência do sinal de
relógio...

Por exemplo,

“O processador XPTO funciona a 2GHz, logo é mais rápido
que o XPTA, que funciona a 1.8GHZ”
... mas será que essa é uma boa medida !??
A frequência do sinal de relógio (apesar de importante) é apenas um de
vários factores que contribuem para o desempenho de um processador...
2
Desempenho

Exemplo: considere dois CPUs com uma unidade de
controlo multi-ciclo:



CPU A

demora 2 ciclos de relógio a executar uma instrução (em média)

funciona a 1.0 GHz (T=1ns)
CPU B

demora 3 ciclos de relógio a executar uma instrução (em média)

funciona a 1.33 GHz (T=0.75 ns)
Qual é o melhor?
Podemos calcular o tempo médio por instrução:
TA = 1.00 ns  2 = 2.00 ns
TB = 0.75 ns  3 = 2.25 ns
Tendo em conta os dados, a
escolha iria para o processador A,
pois em média demora menos
tempo a executar cada instrução
3
Desempenho

O que será então uma boa medida para o
desempenho?

A medida objectiva mais precisa é o tempo de
execução dos programas

Mas os programas são diferentes entre si:


se um programa P1 corre mais depressa num computador A
do que no computador B, nada nos diz que um programa P2
verifique o mesmo.
Para além do CPU, o tempo de execução dos
programas também depende de outros factores

por exemplo, das memórias utilizadas.
4
Desempenho

Exemplo (tempos de execução, em segundos)
Programa

Computador A
Computador B
Computador C
P1
2
10
20
P2
60
30
10
Pode-se afirmar que:

A é 5 vezes mais rápido do que B a correr o programa P1

B é 2 vezes mais rápido do que C a correr o programa P1

C é 6 vezes mais rápido do que A a correr o programa P2

...
Estas afirmações são válidas quanto ao desempenho
mostrado a correr os programas P1 e P2 individualmente ...
5
Desempenho

Tendo em conta o peso de cada um dos programas no sistema
obtém-se uma medida mais consistente

Exemplo: vamos supor que P1 corre 20% das vezes e que P2 corre
80% das vezes
Programa
Computador A
Computador B
Computador C
P1
2
10
20
P2
60
30
10
48.4
26.0
12.0
Tempo médio (seg.)

Pode-se afirmar que:
B
é 1.86 vezes mais rápido que A para os programas P1 e P2
C
é 4.03 vezes mais rápido que A para os programas P1 e P2
C
é 2.17 vezes mais rápido que B para os programas P1 e P2
6
Desempenho


Conclusão:
Só se conseguiria avaliar objectivamente o desempenho de um
sistema caso se soubesse os tempos de execução de todos os
programas, bem como a sua carga relativa...

Impossível...,

… mas conseguem-se aproximações válidas para os casos típicos
Existem programas para avaliação de desempenho – benchmarks –
que visam estabelecer aproximações realistas

Alguns exemplos

SPECs (Standard Performance Evaluation Corporation)

SYSMark (BapCo - Business Applications Performance Corporation)

PCMark e 3DMark (FutureMark)
7
Desempenho

Desempenho do processador

Tempo de execução de um programa:
Texecução = Nciclos  Trelógio
= Ninstruções  CPI  Trelógio
= Ninstruções  CPI / frelógio
Ninstruções – número de instruções do programa
CPI – número de ciclos por instrução
frelógio – frequência do sinal de relógio
8
Desempenho
Compilador

Sintetizando:
Texecução 
Conjunto de instruções
Ninstruções  CPI
frelógio
Organização do sistema
Hardware
Conjunto de instruções
Organização do sistema
9
Desempenho

Conclusão
O desempenho do processador depende de
vários factores:

Hardware (circuitos, tecnologia de fabrico)

Organização (datapaths, unidade de controlo, etc.)

Conjunto de instruções

Compilador (e programador, claro está )
A frequência do relógio apenas está ligada aos dois primeiros factores...
10
Desempenho

Outras medidas populares

MIPS Million of Instructions Per Second
MIPS 
Ninstruções
Tempode execução 106

frelógio
CPI  106
Depende apenas do CPI e da frequência de relógio...

MFLOPS million floating-point operations per second
MFLOPS
Noperações
sobre nº s reais
Tempode execução 106
Grande parte dos programas efectua operações sobre inteiros,
pelo que esta medida pode não ser adequada
11
Lei de Amdahl

Lei de Amdahl
Visa quantificar o ganho no desempenho de um sistema
que resulta após a introdução (ou actualização) de um
novo componente na arquitectura.

Define-se o ganho (ou speedup) como sendo
Ganho 
Told
Tnew
Told – tempo de execução antes da introdução do novo componente
Tnew – tempo de execução após a introdução do novo componente
12
Lei de Amdahl

O ganho global do sistema depende essencialmente de
dois factores:

Gc – ganho do componente


Ganho trazido pelo novo componente para as situações em que é
utilizado
rc – rácio de utilização do componente

fracção do tempo de execução em que se tira partido do novo
componente
13
Lei de Amdahl

Colocando em equação, tem-se:
Tnew  Told  1  rc   Told
rc

Gc
Sabendo que o ganho é igual a Told / Tnew obtém-se:
Ganho global

rc

  1  rc  
Gc




1
14
Lei de Amdahl

Exemplo
Está-se a ponderar sobre qual dos seguintes
upgrades se irá efectuar num processador:
Hipótese 1
Acelerar o cálculo das multiplicações por um factor de 20. Sabe-se o
cálculo de multiplicações consome 10% do tempo de execução.
Hipótese 2
Melhorar todas as operações sobre números reais por um factor de
aceleração de 5. As operações que envolvem números reais
correspondem a 40% do tempo de execução.
15
Lei de Amdahl

Exemplo (cont.)
Hipótese 1:
Hipótese 2:
rc = 0.1
rc = 0.4
Gc = 20
Gc = 5
Ganho 1 
1
0. 1
0 .9 
20
 1.105
Ganho 2 
1
0. 6 
0 .4
5
 1.47
Conclusão: a segunda hipótese é a mais vantajosa.
16
Lei de Amdahl

Conclusão

O esforço para aumentar o desempenho de um
sistema devem ser orientados para melhorar as
situações mais frequentes


Uma grande melhoria num componente que é pouco utilizado
tem pouco peso no desempenho global do sistema
A lei de Amdahl pode ajudar a quantificar de forma
objectiva as opções que podem ser tomadas
17
Download

ppt