190 likes | 449 Views
Avaliação do desempenho. 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 !??.
E N D
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...
Tendo em conta os dados, a escolha iria para o processador A, pois em média demora menos tempo a executar cada instrução 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
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.
Desempenho • Exemplo (tempos de execução, em segundos) • 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 ...
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 • 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
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)
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
Desempenho Compilador Conjunto de instruções • Sintetizando: Organização do sistema Hardware Conjunto de instruções Organização do sistema
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...
Desempenho • Outras medidas populares • MIPS Million of Instructions Per Second • MFLOPS million floating-point operations per second Depende apenas do CPI e da frequência de relógio... Grande parte dos programas efectua operações sobre inteiros, pelo que esta medida pode não ser adequada
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 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
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
Lei de Amdahl • Colocando em equação, tem-se: Sabendo que o ganho é igual a Told / Tnew obtém-se:
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.
Lei de Amdahl • Exemplo (cont.) Hipótese 2: rc = 0.4 Gc = 5 Hipótese 1: rc = 0.1 Gc = 20 Conclusão: a segunda hipótese é a mais vantajosa.
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