You are on page 1of 26

Medindo Desempenho dos Processadores

Edna Barros

Agenda

Entender conceito de desempenho. Mtricas para medir desempenho


Tempo de execuo Taxa de processamento

Tempo de Execuo CPI Medindo o CPI Avaliando computadores

O que Desempenho?
Como podemos fazer escolhas inteligentes sobre computadores? Por que alguns hardwares de computador tem um desempenho melhor em alguns programas, mas realiza menos em outros programas? Como podemos medir o desempenho de um computador? Quais so os fatores relacionados ao hardware? E ao software? Como o conjunto de instrues da mquina afeta o desempenho? Compreenso do desempenho fundamental para compreender a motivao organizacional subjacente

Response Time e Throughput


Response Time
Tempo entre o incio e a concluso de uma tarefa, como observado pelo usurio final Tempo de resposta = Tempo de CPU + Tempo de espera (I / O, OS programao, etc) Nmero de tarefas que a mquina pode executar em um determinado perodo de tempo Exemplo: usando uma verso mais rpida de um processador Menos tempo para executar uma tarefa mais tarefas podem ser executadas

Throughput

Diminuindo o tempo de execuo melhora o rendimento


Aumentar a taxa de transferncia tambm pode melhorar o tempo de resposta


Exemplo: aumento do nmero de processadores em um multiprocessador Mais tarefas podem ser executadas em paralelo O tempo de execuo de tarefas individuais seqencial no alterado Mas menos tempo de espera em fila de agendamento reduz o tempo de resposta

Definio de Desempenho

Para algum programa executando na mquina X

PerformanceX =

1 Execution timeX

X n vezes mais rpida que Y

PerformanceX PerformanceY

Execution timeY Execution timeX

=n

O que significa Tempo de Execuo?

Real Elapsed Time


Contagem:
Esperando o tempo de entrada / sada, acesso ao disco, agendamento de OS, etc ...

Nmero til , mas muitas vezes no bom para fins de comparao

Nosso Foco: CPU Execution Time


Tempo gasto ao executar as instrues do programa No conta o tempo de espera para I / O agendamento ou OS Pode ser medido em segundos, ou Pode estar relacionado ao nmero de ciclos de clock da CPU

Clock Cycles
Clock cycle = Clock period = 1 / Clock rate
Cycle 1 Cycle 2 Cycle 3

Clock rate = Clock frequency = Cycles per second


1 Hz = 1 cycle/sec 1 KHz = 103 cycles/sec 1 MHz = 106 cycles/sec 1 GHz = 109 cycles/sec 2 GHz clock has a cycle time = 1/(2109) = 0.5 nanosecond (ns)

Ns usamos frequentemente ciclos de clock para medir o tempo de execuo da CPU CPU Execution Time = CPU cycles cycle time = CPU cycles Clock rate

Melhorando o Desempenho
Para melhorar o desempenho, ns precisamos
Reduzir o nmero de ciclos de clock exigido pelo programa, ou Reduza o tempo de ciclo de clock (aumentar a taxa de clock)

Exemplo:
Um programa executado em 10 segundos no computador X com 2 GHz de clock Qual o nmero de ciclos de CPU no computador X? Queremos o projeto do computador Y para executar um mesmo programa em 6 segundos Mas o computador Y exige ciclos de 10% a mais para executar programa Qual a velocidade do clock para o computador Y?

Soluo:
CPU cycles no computador X = 10 sec 2 109 cycles/s = 20 109 CPU cycles no computador Y = 1.1 20 109 = 22 109 cycles Clock rate para computador Y = 22 109 cycles / 6 sec = 3.67 GHz

Clock Cycles per Instruction (CPI)


Instrues pode usar um nmero diferente de ciclos para executar
Multiplicao leva mais tempo do que a adio Operaes de ponto flutuante demoram mais que inteiro Acessar a memria leva mais tempo do que o acesso aos registradores

CPI um nmero mdio de ciclos de clock por instruo


I1
1 2 3

I2
4 5 6

I3
7

I4 I5
8 9

I6

I7
14

CPI = 14/7 = 2
cycles

10 11 12 13

Importante ponto
Alterar o tempo do ciclo, muitas vezes requer alterao no nmero de ciclos necessrios para vrias instrues

Equao do Desempenho

A execuo de um determinado programa vai exigir ...


nmero de instrues de mquina nmero de ciclos de clock nmero de segundos

Podemos relacionar os ciclos da CPU relgio para contagem de instrues

CPU cycles = Instruction Count CPI


Equao do Desempenho: (relacionado com a contagem de instrues)

Time = Instruction Count CPI cycle time

Entendendo Equao do Desempenho Time = Instruction Count CPI cycle time


I-Count Program Compiler ISA Organization Technology X X X X X X X X X CPI Cycle

Usando Equao do Desempenho


Suponha que temos duas implementaes do mesmo ISA Para um determinado programa
A mquina A tem um tempo de ciclo do clock de 250 ps e um CPI de 2.0 Mquina B tem um tempo de ciclo de clock de 500 ps e um CPI de 1.2 Qual mquina mais rpida para este programa, e de quanto?

Soluo:
Ambos computadores executam o mesmo nmero de instrues = I CPU execution time (A) = I 2.0 250 ps = 500 I ps CPU execution time (B) = I 1.2 500 ps = 600 I ps Computador A mais rpido que computador B por um fator de 1.2 = 600 I

500 I

Determinando a CPI
Diferentes tipos de instrues com CPI diferentes
Seja CPIi= ciclos por instruo para Classe i de instrues Seja Ci = nmero de instrues para a classe i de instrues n
n

CPU cycles =

(CPI C )
i i
i=1

(CPI C )
i i

CPI =

i=1 n

C
i=1

Projetistas muitas vezes obtm CPI por uma simulao detalhada Contadores de hardware so usados tambm para calcular CPIs

Exemplo em determinar CPI


Problema
Um projetista de compilador est tentando decidir entre duas seqncias de cdigo para uma mquina especfica. Com base na implementao de hardware, existem trs classes diferentes de instrues: classe A, classe B e classe C, e exigem um, dois e trs ciclos por instruo, respectivamente. A primeira seqncia de cdigo possui 5 instrues: 2 de A, B 1, e 2 C A segunda seqncia possui 6 instrues: 4 de A, B 1, e 1 de C

Calcular os ciclos de CPU para cada seqncia. Qual seqncia mais rpida? Qual o CPI para cada seqncia? Soluo
CPU cycles (1st sequence) = (21) + (12) + (23) = 2+2+6 = 10 cycles CPU cycles (2nd sequence) = (41) + (12) + (13) = 4+2+3 = 9 cycles Second sequence is faster, even though it executes one extra instruction CPI (1st sequence) = 10/5 = 2 CPI (2nd sequence) = 9/6 = 1.5

Segundo Exemplo CPI


Dado um mix de instrues de um programa em um processador RISC: Qual a CPI mdia? Qual o percentual de tempo utilizado por cada classe de instruo? Classi ALU Load Store Branch Freqi 50% 20% 10% 20% CPIi 1 5 3 2
CPIi Freqi 0.51 = 0.5 0.25 = 1.0 0.13 = 0.3 0.22 = 0.4 %Time 0.5/2.2 = 23% 1.0/2.2 = 45% 0.3/2.2 = 14% 0.4/2.2 = 18%

Average CPI = 0.5+1.0+0.3+0.4 = 2.2

Nmero Instrues como Mtrica de Desempenho


MIPS: Millions Instructions Per Second Algumas vezes usada como mtrica de desempenho
Mquinas rpidas valor de MIPS alto

MIPS especifica a taxa de execuo das instrues

MIPS =

Instruction Count Execution Time 106

Clock Rate CPI 106

Podemos relacionar tempo de execuo a MIPS

Execution Time =

Inst Count MIPS 106

Inst Count CPI Clock Rate

Problemas em usar taxa de execuo (MIPS)


Trs problemas com a mtrica MIPS representando uma mtrica de desempenho No leva em conta a capacidade de instrues No possvel usar o MIPS dos computadores para comparar conjuntos de instrues diferentes, porque a contagem de instrues ser diferente MIPS varia entre os programas no mesmo computador Um computador pode no ter uma classificao MIPS nico para todos os programas MIPS pode variar inversamente com o desempenho Uma classificao elevada do MIPS nem sempre significa melhor desempenho Exemplo no prximo slide mostra esse comportamento anmalo

MIPS exemplo
Dois compiladores diferentes esto sendo testados no mesmo programa para uma mquina de 4 GHz com trs classes diferentes de instrues: Classe A, Classe B e Classe C, que exigem 1, 2 e 3 ciclos, respectivamente. A contagem de instrues produzidos pelo primeiro compilador 5000 milhes de instrues da Classe A, 1 bilho de instrues da Classe B, e 1 bilho de instrues da classe C. O segundo compilador produz 10.000 milhes de instrues da Classe A, 1 bilho de instrues da Classe B, e 1 bilho de instrues da classe C. Qual compilador produz cdigo com o MIPS superior? Qual compilador produz cdigo com o melhor tempo de execuo?

Soluo do MIPS exemplo

Primeiro, encontramos os ciclos de CPU para ambos os compiladores


CPU cycles (compiler 1) = (51 + 12 + 13)109 = 10109 CPU cycles (compiler 2) = (101 + 12 + 13)109 = 15109

Depois, calculamos o tempo de execuo para ambos os compiladores


Execution time (compiler 1) = 10109 cycles / 4109 Hz = 2.5 sec Execution time (compiler 2) = 15109 cycles / 4109 Hz = 3.75 sec

Compilador1 gera programas mais rpidos (less execution time) Agora compute a taxa MIPS para ambos compiladores.
MIPS = Instruction Count / (Execution Time 106) MIPS (compiler 1) = (5+1+1) 109 / (2.5 106) = 2800 MIPS (compiler 2) = (10+1+1) 109 / (3.75 106) = 3200

Assim, o cdigo do compilador 2 tem uma taxa MIPS de execuo mais elevada.

Benchmarks
Desempenho melhor avaliado usando aplicaes reais
Uso de programas tpicos da rea de aplicao Programa representativos da classe de aplicaes. Exemplos: compiladores, editoress, aplicaes cientficas, grficos, ...

SPEC (System Performance Evaluation Corporation)


Fundadoo e suportado por fabricantes e vendedores de computadores. Companhias definiram um conjunto REAL de aplicaes Vrios benchmarks para
CPU performance, graphics, high-performance computing, client-server models, file systems, Web servers, etc.

Interessante indicador de desempenho (e tecnologia de compiladores)

SPEC CPU2000 Benchmarks


12 Integer benchmarks (C and C++) Name
gzip vpr gcc mcf crafty parser eon perlbmk gap vortex bzip2 twolf

14 FP benchmarks (Fortran 77, 90, and C) Name


wupwise swim mgrid applu mesa galgel art equake facerec ammp lucas fma3d sixtrack apsi

Description
Compression FPGA placement and routing GNU C compiler Combinatorial optimization Chess program Word processing program Computer visualization Perl application Group theory, interpreter Object-oriented database Compression Place and route simulator

Description
Quantum chromodynamics Shallow water model Multigrid solver in 3D potential field Partial differential equation Three-dimensional graphics library Computational fluid dynamics Neural networks image recognition Seismic wave propagation simulation Image recognition of faces Computational chemistry Primality testing Crash simulation using finite elements High-energy nuclear physics Meteorology: pollutant distribution

clock time usado como mtrica Benchmarks medem tempo de CPU devido ao pouco I/O

SPEC 2000 Ratings (Pentium III & 4)


SPEC ratio = Execution time is normalized relative to Sun Ultra 5 (300 MHz) SPEC rating = Geometric mean of SPEC ratios
1400

1200

Note the relative positions of the CINT and CFP 2000 curves for the Pentium III & 4

Pentium 4 CFP2000 Pentium 4 CINT2000

1000

800

600 Pe ntium III CINT2000 400 Pentium III CFP2000

200

Pentium III does better at the integer benchmarks, while Pentium 4 does better at the floating-point benchmarks due to its advanced SSE2 instructions
2000 2500 3000 3500

0 500 1000 1500 Clock rate in MHz

Desempenho e Potncia
Potncia um fator limitante
Capacidade das baterias melhora pouco

Necessidade de projeto de processadores eficientes Reduo de potncia por:


Reduo da frequencia Reduo da Tenso Colocando componentes para dormir

Eficincia energtica
Mtrica importante para aplicaes power-limited Definida como o desempenho dividido pela potncia

Performance and Power


1 .6 1 .4 P e ntiu m M @ 1 .6 /0 .6 G H z P e ntiu m 4 - M @ 2 .4 /1 .2 G H z P e ntiu m III- M @ 1 .2 /0 .8 G H z

Relative Performance

1 .2 1 .0 0 .8 0 .6 0 .4 0 .2 0 .0 S P E C IN T 20 00 S P E C F P20 00 S P E C IN T 2 00 0 S P E C F P 2 00 0 S P E C IN T 200 0 S P E C FP 20 00

Always on / maximum clock

Laptop mode / adaptive clock

Minimum power / min clock

Benchmark and Power Mode

Energy Efficiency
Pentium M @ 1.6/0.6 GHz Pentium 4-M @ 2.4/1.2 GHz Pentium III-M @ 1.2/0.8 GHz

Relative Energy Efficiency

Energy efficiency of the Pentium M is highest for the SPEC2000 benchmarks

SPECINT 2000

SPECFP 2000

SPECINT 2000

SPECFP 2000

SPECINT 2000

SPECFP 2000

Always on / maximum clock

Laptop mode / adaptive clock

Minimum power / min clock

Benchmark and power mode

No se esquea.
Desempenho especfico de cada programa
Qualquer medida de desempenho deve refletir o tempo de execuo Tempo de execuo total um consistente resumo para desempenho

Para um dado ISA, melhorias no desempenho so conseguidas com:


Aumento da frequencia do clock (sem aumentar CPI) Melhorias na organizao do processador que diminua CPI Melhorias no cmpilador que reduza CPI ou nmero de instrues Escolhas do algorimo ou da linguagem que afete nmero de instrues

O que deve ser evitado


Usar subconjunto da equao de desempenho como mtrica Supor que a melhoria de um aspecto do computador vai ocasionar um melhoria no desempenho proporcional ao tamanho da melhoria

You might also like