Professional Documents
Culture Documents
Edna Barros
Agenda
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
Throughput
Definio de Desempenho
PerformanceX =
1 Execution timeX
PerformanceX PerformanceY
=n
Clock Cycles
Clock cycle = Clock period = 1 / Clock rate
Cycle 1 Cycle 2 Cycle 3
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
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
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
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
MIPS =
Execution Time =
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?
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, ...
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
1200
Note the relative positions of the CINT and CFP 2000 curves for the Pentium III & 4
1000
800
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
Desempenho e Potncia
Potncia um fator limitante
Capacidade das baterias melhora pouco
Eficincia energtica
Mtrica importante para aplicaes power-limited Definida como o desempenho dividido pela potncia
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
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
SPECINT 2000
SPECFP 2000
SPECINT 2000
SPECFP 2000
SPECINT 2000
SPECFP 2000
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