Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula06a PDF
Aula06a PDF
Avaliao de desempenho
Introduo
Edson Moreno
edson.moreno@pucrs.br
http://www.inf.pucrs.br/~emoreno
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?
Vazo (throughput)
Quantos trabalhos a mquina pode realizar em um intervalo de tempo?
Qual a velocidade mdia de execuo ?
Quanto trabalho est sendo feito?
tempo
Tempo de ciclo = tempo entre os tiques = (frao de) segundos por ciclo
Velocidade de clock (freqncia) = nmero de ciclos por segundo
tempo
Tempo de ciclo = tempo entre os tiques = segundos por ciclo
Velocidade de clock (freqncia) = ciclos por segundo
3. Instruo
2. Instruo
1. Instruo
4.
5.
6.
Tempo
Ciclos necessrios por programa
Poderamos considerar que o nmero de ciclos igual ao nmero
de instrues !
3. Instruo
2. Instruo
1. Instruo
4.
5.
6.
Tempo
Lembrando:
Tempo de execuo = nro de ciclos de clock / freqncia do clock
1 seg. = 103 ms = 106 us = 109 ns = 1012 ps
1 Hz = 1 ciclo/seg., 1KHz = 103 ciclo/seg., 1MHz = 106 ciclo/seg.
Exemplo - Soluo
TexecA = 10seg; NroCiclosA=?; FreqA=4*106
TexecB = 6seg; NroCiclosB=1,2* NroCiclosA; FreqA=?
TExecA=NroCiclosA / FreqA
10 = NroCiclosA / 4 * 106
NroCiclosA = 40 * 106
TExecB=NroCiclosB / FreqB
6 = (1,2 * NroCiclosA) / FreqB
FreqB = 8* 106 ou seja 8MHz
Lembrando:
Tempo de execuo = nro de ciclos de clock / freqncia do clock
1 seg. = 103 ms = 106 us = 109 ns = 1012 ps
1 Hz = 1 ciclo/seg., 1KHz = 103 ciclo/seg., 1MHz = 106 ciclo/seg.
Tendo sido entendido os ciclos
Um dado programa vai exigir
Um dado nmero de instrues
Um dado nmero de ciclos
Um dado nmero de segundos
Problema:
- se a mquina A executa um programa em 20 segundos
- e a mquina B executa o mesmo programa em 25 segundos
- defina quantas vez a mquina A mais rpida que a mquina B.
CPI
Nmero de ciclos de clock por instruo
Especfico para cada instruo em um dada arquitetura
Pode-se contabilizar o nmero de ciclos mdio por instruo como medida de
desempenho
Lembrando:
Nro de ciclos de clock = nro de instrues * CPI
Tempo de execuo = nro de ciclos de clock * perodo de um clock
Desempenho = 1 / Tempo de execuo
Exemplo de CPI
Suponha que tenhamos duas implementaes da mesma arquitetura do conjunto de
instrues (ISA)
Para um determinado programa,
A mquina A tem tempo de ciclo de clock de 250 ps e CPI de 2,0
A mquina B tem tempo de ciclo de clock de 500 ps e CPI de 1,2
Que mquina mais rpida para esse programa e o quanto?
Programa tem nroInstrucoesX
NroCiclosA = nroInstrucoesX * 2; NroCiclosB = nroInstrucoesX * 1,2
Tempo de execuo =
nro de instrues * CPI * perodo de clock ou
(nro de instrues * CPI) / frequncia
Equao de desempenho
A partir do conhecimento dos funcionamento das diferentes
instrues que compem uma dada arquitetura e que empregado
em um dado programa, o nmero de ciclos de clock pode ser
calculado a partir da seguinte equao
Exemplo de CPI
O projetista de um compilador deseja decidir entre duas possveis seqncias de
cdigo para a resoluo de um problema. Dado os tipos de instruo o
nmero de ciclos por instruo (CPI) de cada tipo defina:
1) Qual o cdigo mais rpida?
2) Qual a CPI de cada um dos programas?
Exemplo de CPI
O projetista de um compilador deseja decidir entre duas possveis seqncias de
cdigo para a resoluo de um problema. Dado os tipos de instruo o
nmero de ciclos por instruo de cada tipo, qual seqncia mais rpida?
Exemplo:
(25 20)*n = 80
Exemplo: