SlideShare uma empresa Scribd logo
1 de 97
Baixar para ler offline
Arquitetura de Computadores
ACH2055
Aula 02 – Medindo Desempenho
Norton Trevisan Roman
(norton@usp.br)
30 de agosto de 2019
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 1 / 46
M´aquina de Von Neumann
Componentes Cl´assicos
Entrada
Sa´ıda
Mem´oria
Processador
Datapath e
controle
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 2 / 46
M´aquina de Von Neumann
Definindo Desempenho
Depende muito de seu
uso
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 3 / 46
M´aquina de Von Neumann
Definindo Desempenho
Depende muito de seu
uso
Centros de Dados:
Importa a vaz˜ao
(throughput)
A quantidade total de
trabalho feito em um dado
tempo
Desempenho = Vaz˜ao
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 3 / 46
M´aquina de Von Neumann
Definindo Desempenho
Usu´ario individual:
Importa o tempo de
resposta (ou de execu¸c˜ao)
O tempo entre o in´ıcio e
finaliza¸c˜ao de uma tarefa
Desempenho =
1
Tempo de Execu¸c˜ao
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 4 / 46
Desempenho – Medindo Tempo
Qual tempo medir?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 5 / 46
Desempenho – Medindo Tempo
Qual tempo medir?
Tempo de resposta (ou
tempo transcorrido)
Tempo total para
completar uma tarefa
Inclui acessos a disco,
mem´oria, E/S etc
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 5 / 46
Desempenho – Medindo Tempo
Qual tempo medir?
Tempo de CPU
Tempo que a CPU gasta
trabalhando na tarefa
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 6 / 46
Desempenho – Medindo Tempo
Qual tempo medir?
Tempo de CPU
Tempo que a CPU gasta
trabalhando na tarefa
Subdivide-se em:
Tempo de CPU do
usu´ario: tempo de CPU
gasto no programa
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 6 / 46
Desempenho – Medindo Tempo
Qual tempo medir?
Subdivide-se em
(cont.):
Tempo de CPU do
sistema: tempo de CPU
gasto no SO executando
tarefas por conta do
programa
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 7 / 46
Desempenho – Medindo Tempo
Qual tempo medir?
Aqui focaremos no
Tempo de CPU do
usu´ario
Sem levar em conta
acesso a disco etc
Essa ser´a nossa medida de
desempenho da CPU
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 8 / 46
Medindo Tempo
Comparando computadores
DesempenhoX
DesempenhoY
= r
“X ´e r vezes mais r´apido que Y ”
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 9 / 46
Medindo Tempo
Comparando computadores
DesempenhoX
DesempenhoY
= r
“X ´e r vezes mais r´apido que Y ”
DesempenhoX
DesempenhoY
=
Tempo de Execu¸c˜aoY
Tempo de Execu¸c˜aoX
= r
“O tempo gasto em Y ´e r vezes maior que o gasto
em X”
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 9 / 46
Desempenho da CPU
Projeto e Desempenho
Como determinar os efeitos de uma mudan¸ca de
projeto no desempenho (da CPU) experimentado
pelo usu´ario?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 10 / 46
Desempenho da CPU
Projeto e Desempenho
Como determinar os efeitos de uma mudan¸ca de
projeto no desempenho (da CPU) experimentado
pelo usu´ario?
tP = CP × tc, onde
tP ´e o tempo de execu¸c˜ao de um programa P na CPU
CP ´e o n´umero de ciclos de clock gastos no programa P
tc ´e o tempo de um ciclo de clock (seu per´ıodo)
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 10 / 46
Desempenho da CPU
Projeto e Desempenho
Lembre que a frequˆencia do clock fc ´e dada por
fc =
1
tc
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 11 / 46
Desempenho da CPU
Projeto e Desempenho
Lembre que a frequˆencia do clock fc ´e dada por
fc =
1
tc
Podemos ent˜ao reescrever tP = CP × tc:
tP =
CP
fc
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 11 / 46
Desempenho da CPU
Projeto e Desempenho
Lembre que a frequˆencia do clock fc ´e dada por
fc =
1
tc
Podemos ent˜ao reescrever tP = CP × tc:
tP =
CP
fc
Melhoramos o desempenho reduzindo o n´umero de ciclos de
clock necess´arios para o programa, ou aumentando a
frequˆencia do clock
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 11 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
tP = CP × tc
Como podemos medir o total de ciclos CP?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 12 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
tP = CP × tc
Como podemos medir o total de ciclos CP?
Dif´ıcil. Contudo, sabemos o n´umero de instru¸c˜oes do
programa
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 12 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
tP = CP × tc
Como podemos medir o total de ciclos CP?
Dif´ıcil. Contudo, sabemos o n´umero de instru¸c˜oes do
programa
E sabemos quantos ciclos s˜ao necess´arios para cada
instru¸c˜ao do circuito (a partir de seu projeto)
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 12 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
tP = CP × tc
Como podemos medir o total de ciclos CP?
Dif´ıcil. Contudo, sabemos o n´umero de instru¸c˜oes do
programa
E sabemos quantos ciclos s˜ao necess´arios para cada
instru¸c˜ao do circuito (a partir de seu projeto)
Logo, sabemos o n´umero m´edio de ciclos por instru¸c˜ao
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 12 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
Ent˜ao CP = nP × CPIP, onde
CPIP ´e o n´umero m´edio de ciclos de clock que cada
instru¸c˜ao de P leva para executar
nP o n´umero de instru¸c˜oes do programa P
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
Ent˜ao CP = nP × CPIP, onde
CPIP ´e o n´umero m´edio de ciclos de clock que cada
instru¸c˜ao de P leva para executar
nP o n´umero de instru¸c˜oes do programa P
E tP = CP × tc
= nP × CPIP × tc
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
Ent˜ao CP = nP × CPIP, onde
CPIP ´e o n´umero m´edio de ciclos de clock que cada
instru¸c˜ao de P leva para executar
nP o n´umero de instru¸c˜oes do programa P
E tP = CP × tc
= nP × CPIP × tc
O tempo de execu¸c˜ao
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
Ent˜ao CP = nP × CPIP, onde
CPIP ´e o n´umero m´edio de ciclos de clock que cada
instru¸c˜ao de P leva para executar
nP o n´umero de instru¸c˜oes do programa P
E tP = CP × tc
= nP × CPIP × tc
O tempo de execu¸c˜ao ´e o n´umero de instru¸c˜oes executadas
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
Desempenho da CPU
Tempo de Execu¸c˜ao do Programa
Ent˜ao CP = nP × CPIP, onde
CPIP ´e o n´umero m´edio de ciclos de clock que cada
instru¸c˜ao de P leva para executar
nP o n´umero de instru¸c˜oes do programa P
E tP = CP × tc
= nP × CPIP × tc
O tempo de execu¸c˜ao ´e o n´umero de instru¸c˜oes executadas
multiplicado pelo tempo m´edio de cada instru¸c˜ao
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
Segundos
Programa
=
Instru¸c˜oes
Programa
×
Ciclos de clock
Instru¸c˜ao
×
Segundos
Ciclo de clock
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
Segundos
Programa
=
Instru¸c˜oes
Programa
×
Ciclos de clock
Instru¸c˜ao
×
Segundos
Ciclo de clock
Unimos, assim, os 3 fatores-chave que afetam o desempenho
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
Segundos
Programa
=
Instru¸c˜oes
Programa
×
Ciclos de clock
Instru¸c˜ao
×
Segundos
Ciclo de clock
Unimos, assim, os 3 fatores-chave que afetam o desempenho
Alternativamente
tP =
nP × CPIP
fc
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
Segundos
Programa
=
Instru¸c˜oes
Programa
×
Ciclos de clock
Instru¸c˜ao
×
Segundos
Ciclo de clock
Unimos, assim, os 3 fatores-chave que afetam o desempenho
Alternativamente
tP =
nP × CPIP
fc
Podemos ent˜ao usar essas express˜oes para comparar
diferentes arquiteturas
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
´E preciso ter em mente que a ´unica medida
completa e confi´avel de desempenho ´e o tempo
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 15 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
´E preciso ter em mente que a ´unica medida
completa e confi´avel de desempenho ´e o tempo
Mudar o conjunto de instru¸c˜oes (nP) para reduzir o n´umero
de instru¸c˜oes pode levar a uma organiza¸c˜ao com um ciclo de
clock (tc) mais lento ou alto CPI, anulando assim a melhoria
na contagem de instru¸c˜oes
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 15 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
´E preciso ter em mente que a ´unica medida
completa e confi´avel de desempenho ´e o tempo
Da mesma forma, uma vez que o CPI depende do tipo de
instru¸c˜ao, um c´odigo que execute menos instru¸c˜oes pode
n˜ao ser o mais r´apido
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 16 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
´E preciso ter em mente que a ´unica medida
completa e confi´avel de desempenho ´e o tempo
Da mesma forma, uma vez que o CPI depende do tipo de
instru¸c˜ao, um c´odigo que execute menos instru¸c˜oes pode
n˜ao ser o mais r´apido
Quando comparamos 2 computadores, devemos olhar os 3
componentes da equa¸c˜ao em conjunto
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 16 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
E como medimos os termos da equa¸c˜ao?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 17 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
E como medimos os termos da equa¸c˜ao?
Podemos medir o tempo de execu¸c˜ao diretamente,
rodando o programa
De fato, rodando m´ultiplas vezes e ent˜ao tomando o tempo
m´edio
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 17 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
O per´ıodo do clock, por sua vez, ´e dado pelo
fabricante
Sua frequˆencia, na verdade
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 18 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
O per´ıodo do clock, por sua vez, ´e dado pelo
fabricante
Sua frequˆencia, na verdade
O n´umero de instru¸c˜oes pode ser medido usando-se
ferramentas (profilers) que perfilam a execu¸c˜ao
Que fazem a an´alise dinˆamica do software
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 18 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
Dados tP, tc e nP, CPIP ´e obtido
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 19 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
Dados tP, tc e nP, CPIP ´e obtido
Outra alternativa ´e usar, quando dispon´ıveis no
processador, contadores dedicados a medir
estat´ısticas de execu¸c˜ao
N´umero de instru¸c˜oes executadas, CPI m´edio etc
Bastante ´uteis para alguns algoritmos do SO
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 19 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
tP = nP × CPIP × tc
E se n˜ao pudermos rodar o software para obter tP,
pelo hardware estar em projeto?
Nesse caso, os demais elementos precisam ser identificados
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 20 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Mas, se j´a medimos tP, por que nos preocuparmos
com os demais componentes?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 21 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Mas, se j´a medimos tP, por que nos preocuparmos
com os demais componentes?
Considere o seguinte problema
Um determinado programa leva 15s para rodar em um
computador
Um novo compilador ´e lan¸cado, compilando esse programa
com 60% do n´umero de instru¸c˜oes de antes, por´em
aumentando a CPI em 10%
Quanto tempo podemos esperar que essa nova vers˜ao do
programa rode no mesmo computador?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 21 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Temos ent˜ao que:
tP1 = 15
ninstr2 = 0, 6ninstr1
CPI2 = 1, 1CPI1
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 22 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Temos ent˜ao que:
tP1 = 15
ninstr2 = 0, 6ninstr1
CPI2 = 1, 1CPI1
E
tP2 = ninstr2 × CPI2 × tc
= 0, 6ninstr1 × 1, 1CPI1 × tc
= 0, 6 × 1, 1 × ninstr1 × CPI1 × tc
= 0, 66 × tP1 = 9, 9s
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 22 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Assim a equa¸c˜ao se mostra ´util tamb´em para
estimativa de mudan¸cas
Seja em hardware, seja em software, via recompila¸c˜ao
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 23 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Assim a equa¸c˜ao se mostra ´util tamb´em para
estimativa de mudan¸cas
Seja em hardware, seja em software, via recompila¸c˜ao
Considere esse outro problema:
Um determinado processador possui o seguinte CPI para
cada classe de suas instru¸c˜oes:
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 23 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Um projetista de compilador est´a tentando decidir qual
sequˆencia de instru¸c˜oes usar para representar um
determinado comando. Suas op¸c˜oes s˜ao:
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 24 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Um projetista de compilador est´a tentando decidir qual
sequˆencia de instru¸c˜oes usar para representar um
determinado comando. Suas op¸c˜oes s˜ao:
Fonte: [1]
Qual sequˆencia executa o maior n´umero de instru¸c˜oes? Qual
ser´a mais r´apida? Qual o CPI de cada sequˆencia?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 24 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual sequˆencia executa o maior n´umero de
instru¸c˜oes?
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 25 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual sequˆencia executa o maior n´umero de
instru¸c˜oes?
Fonte: [1]
nS1 = 2 + 1 + 2 = 5
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 25 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual sequˆencia executa o maior n´umero de
instru¸c˜oes?
Fonte: [1]
nS1 = 2 + 1 + 2 = 5 nS2 = 4 + 1 + 1 = 6
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 25 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual sequˆencia executa o maior n´umero de
instru¸c˜oes?
Fonte: [1]
nS1 = 2 + 1 + 2 = 5 nS2 = 4 + 1 + 1 = 6
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 25 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual ´e a mais r´apida?
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 26 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual ´e a mais r´apida?
Fonte: [1]
N˜ao sabemos. Precisamos calcular quantos ciclos de clock
cada sequˆencia gasta (lembre que tP = CP × tc)
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 26 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Para isso, usamos que CSj =
Ncl
i=1
(CPIi × ni ), onde
CSj ´e o n´umero de ciclos de clock da sequˆencia Sj
CPIi ´e o CPI da classe de instru¸c˜oes i
ni ´e o n´umero de instru¸c˜oes da classe i nessa sequˆencia
Ncl ´e o total de diferentes classes de instru¸c˜oes
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 27 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Ent˜ao...
Fonte: [1]
CS1 = 1 · 2 + 2 · 1 + 3 · 2
= 10
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 28 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Ent˜ao...
Fonte: [1]
CS1 = 1 · 2 + 2 · 1 + 3 · 2
= 10
CS2 = 1 · 4 + 2 · 1 + 3 · 1
= 9
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 28 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual ´e a mais r´apida?
Fonte: [1]
Uma vez que tP = CP × tc, e tc ´e idˆentico por estarem na
mesma m´aquina, S2 (com o menor CS ) ´e a mais r´apida
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 29 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual ´e a mais r´apida?
Fonte: [1]
Note que, embora seja a mais r´apida, S2 n˜ao ´e a menor
sequˆencia, possuindo mais instru¸c˜oes que S1
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 30 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual o CPI de cada sequˆencia?
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 31 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
Qual o CPI de cada sequˆencia?
Fonte: [1]
Uma vez que S2 usa menos ciclos de clock e executa 1
instru¸c˜ao a mais, seu CPI deve ser menor que o de S1
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 31 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
E como calculamos o CPI de cada sequˆencia?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 32 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
E como calculamos o CPI de cada sequˆencia?
De posse do total de ciclos CSj de uma sequˆencia Sj, bem
como de seu n´umero de instru¸c˜oes nSj , seu CPI pode ser
calculado como CPISj =
CSj
nSj
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 32 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
E como calculamos o CPI de cada sequˆencia?
De posse do total de ciclos CSj de uma sequˆencia Sj, bem
como de seu n´umero de instru¸c˜oes nSj , seu CPI pode ser
calculado como CPISj =
CSj
nSj
E
CPIS1 =
10
5
= 2
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 32 / 46
Desempenho da CPU
Equa¸c˜ao Cl´assica de Desempenho da CPU
E como calculamos o CPI de cada sequˆencia?
De posse do total de ciclos CSj de uma sequˆencia Sj, bem
como de seu n´umero de instru¸c˜oes nSj , seu CPI pode ser
calculado como CPISj =
CSj
nSj
E
CPIS1 =
10
5
= 2 CPIS2 =
9
6
= 1, 5
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 32 / 46
Desempenho da CPU
Comparando Arquiteturas
Vimos como comparar o desempenho de sequˆencias
de c´odigo ou programas inteiros
Em diferentes m´aquinas (medindo seu tP)
Na mesma m´aquina (via varia¸c˜oes no nP, CPIP ou tc)
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 33 / 46
Desempenho da CPU
Comparando Arquiteturas
Vimos como comparar o desempenho de sequˆencias
de c´odigo ou programas inteiros
Em diferentes m´aquinas (medindo seu tP)
Na mesma m´aquina (via varia¸c˜oes no nP, CPIP ou tc)
Mas isso realmente compara a arquitetura de forma
ampla?
Ou cont´em um vi´es em dire¸c˜ao ao programa (ou segmento)
usado no teste?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 33 / 46
Desempenho da CPU
Comparando Arquiteturas
Para compararmos 2 arquiteturas precisamos de um
conjunto de programas que represente o
comportamento de um usu´ario
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 34 / 46
Desempenho da CPU
Comparando Arquiteturas
Para compararmos 2 arquiteturas precisamos de um
conjunto de programas que represente o
comportamento de um usu´ario
Precisamos de um conjunto de trabalho
Um conjunto de programas que, ou correspondem ao
conjunto rodado pelo usu´ario, ou s˜ao constru´ıdos de modo a
aproximar esse conjunto
Um conjunto de trabalho t´ıpico especifica tanto os
programas quanto suas frequˆencias relativas
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 34 / 46
Desempenho da CPU
Comparando Arquiteturas
Assim, basta medir o tempo de execu¸c˜ao do
conjunto de trabalho em outra m´aquina para decidir
qual ´e a melhor
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 35 / 46
Desempenho da CPU
Comparando Arquiteturas
Assim, basta medir o tempo de execu¸c˜ao do
conjunto de trabalho em outra m´aquina para decidir
qual ´e a melhor
Isso, naturalmente, pressup˜oe o acesso a essa
m´aquina
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 35 / 46
Desempenho da CPU
Comparando Arquiteturas
Assim, basta medir o tempo de execu¸c˜ao do
conjunto de trabalho em outra m´aquina para decidir
qual ´e a melhor
Isso, naturalmente, pressup˜oe o acesso a essa
m´aquina
O que fazer quando n˜ao h´a realmente como testar o
conjunto de trabalho em outra m´aquina?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 35 / 46
Desempenho da CPU
Comparando Arquiteturas
Assim, basta medir o tempo de execu¸c˜ao do
conjunto de trabalho em outra m´aquina para decidir
qual ´e a melhor
Isso, naturalmente, pressup˜oe o acesso a essa
m´aquina
O que fazer quando n˜ao h´a realmente como testar o
conjunto de trabalho em outra m´aquina?
Como tomar uma decis˜ao baseada em desempenho?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 35 / 46
Desempenho da CPU
Comparando Arquiteturas
Deve-se usar algum conjunto padr˜ao, na esperan¸ca
que reflita o desempenho do conjunto de trabalho
do usu´ario
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 36 / 46
Desempenho da CPU
Comparando Arquiteturas
Deve-se usar algum conjunto padr˜ao, na esperan¸ca
que reflita o desempenho do conjunto de trabalho
do usu´ario
Precisamos ent˜ao de benchmarks
Programas escolhidos especificamente para medir o
desempenho
Formam um conjunto de trabalho que espera-se possam
prever o desempenho do conjunto de trabalho do usu´ario
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 36 / 46
Desempenho da CPU
Comparando Arquiteturas
Benchmarks tˆem um papel cr´ıtico na defini¸c˜ao de
estruturas de computadores
A ponto de merecerem um esfor¸co, por parte de v´arios
fabricantes, para criar padr˜oes de benchmarks – SPEC
(System Performance Evaluation Cooperative)
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 37 / 46
Desempenho da CPU
Comparando Arquiteturas
Benchmarks tˆem um papel cr´ıtico na defini¸c˜ao de
estruturas de computadores
A ponto de merecerem um esfor¸co, por parte de v´arios
fabricantes, para criar padr˜oes de benchmarks – SPEC
(System Performance Evaluation Cooperative)
Em geral, os fabricantes informam o desempenho de
suas m´aquinas de acordo com algum desses
benchmarks padr˜ao
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 37 / 46
Desempenho da CPU
Outras Medidas
Uma alternativa ao tempo de execu¸c˜ao ´e MIPS
Milh˜oes de Instru¸c˜oes Por Segundo
MIPS =
nP
tP × 106
Quanto maior, mais r´apido o processador
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 38 / 46
Desempenho da CPU
Outras Medidas
Uma alternativa ao tempo de execu¸c˜ao ´e MIPS
Milh˜oes de Instru¸c˜oes Por Segundo
MIPS =
nP
tP × 106
Quanto maior, mais r´apido o processador
Problemas:
N˜ao temos como comparar computadores com conjuntos
distintos de instru¸c˜oes, pois nP certamente ser´a diferente
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 38 / 46
Desempenho da CPU
Outras Medidas
Problemas:
MIPS varia entre programas no mesmo computador
MIPS =
nP
tP × 106
=
nP
nP × CPIP × tc × 106
=
1
CPIP × tc × 106
=
fc
CPIP × 106
Ao usarem instru¸c˜oes distintas, o CPI pode variar entre 2 programas
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 39 / 46
Desempenho da CPU
Outras Medidas
Problemas:
MIPS varia entre programas no mesmo computador
MIPS =
nP
tP × 106
=
nP
nP × CPIP × tc × 106
=
1
CPIP × tc × 106
=
fc
CPIP × 106
Ao usarem instru¸c˜oes distintas, o CPI pode variar entre 2 programas
Se um novo programa executa mais instru¸c˜oes, sendo que
cada instru¸c˜ao ´e mais r´apida, MIPS pode variar
independentemente do desempenho
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 39 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Uma armadilha comum ´e esperar que a melhoria de
um aspecto do computador melhore o desempenho
geral pelo mesmo tanto
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 40 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Uma armadilha comum ´e esperar que a melhoria de
um aspecto do computador melhore o desempenho
geral pelo mesmo tanto
Considere o seguinte exemplo
Um programa roda em 100s (tP = 100), com opera¸c˜oes de
multiplica¸c˜ao sendo respons´aveis por 80s deste tempo
Quanto teremos que aumentar a velocidade de cada
multiplica¸c˜ao para que o programa rode 5× mais r´apido?
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 40 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
O tempo de execu¸c˜ao do programa ap´os a melhoria
´e dado pela Lei de Amdahl:
tP =
tA
r
+ tNA, onde
tP ´e o tempo de execu¸c˜ao do programa P ap´os a melhoria
tA ´e o tempo de execu¸c˜ao afetado pela melhoria
r ´e a taxa de melhoria feita
tNA ´e o tempo de execu¸c˜ao n˜ao afetado pela melhoria
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 41 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
O tempo de execu¸c˜ao do programa ap´os a melhoria
´e dado pela Lei de Amdahl:
tP =
tA
r
+ tNA, onde
tP ´e o tempo de execu¸c˜ao do programa P ap´os a melhoria
tA ´e o tempo de execu¸c˜ao afetado pela melhoria
r ´e a taxa de melhoria feita
tNA ´e o tempo de execu¸c˜ao n˜ao afetado pela melhoria
Ou seja, a melhoria no desempenho com uma melhoria est´a
limitada ao tanto que o fator melhorado ´e usado
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 41 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Outra forma de ver ´e:
Qualquer redu¸c˜ao de tempo ´e limitada pela contribui¸c˜ao da
parte afetada para o tempo total
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 42 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Outra forma de ver ´e:
Qualquer redu¸c˜ao de tempo ´e limitada pela contribui¸c˜ao da
parte afetada para o tempo total
O tempo total ´e
tP =
N
i=1
ti
onde ti ´e a contribui¸c˜ao para tP da i-´esima parte do
programa
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 42 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Ent˜ao, se modificamos o tempo da parte j para
k × j, sua contribui¸c˜ao a tP ser´a
tP = k × tj +
N
i=1,i=j
ti
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 43 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Ent˜ao, se modificamos o tempo da parte j para
k × j, sua contribui¸c˜ao a tP ser´a
tP = k × tj +
N
i=1,i=j
ti
Ou seja, o tempo de execu¸c˜ao da parte afetada + o tempo
da parte n˜ao afetada pela modifica¸c˜ao
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 43 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Voltando ao nosso problema
tP =
tA
r
+ tNA =
80
r
+ (100 − 80)
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 44 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Voltando ao nosso problema
tP =
tA
r
+ tNA =
80
r
+ (100 − 80)
Como queremos que fique 5× mais r´apido, ent˜ao
tP = tP/5 = 20, e
20 =
80
r
+ 20 ⇒ 0 =
80
r
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 44 / 46
Desempenho da CPU – Armadilhas
Lei de Amdahl
Voltando ao nosso problema
tP =
tA
r
+ tNA =
80
r
+ (100 − 80)
Como queremos que fique 5× mais r´apido, ent˜ao
tP = tP/5 = 20, e
20 =
80
r
+ 20 ⇒ 0 =
80
r
E n˜ao h´a como obter tal melhoria
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 44 / 46
Desempenho da CPU: Influˆencias
Fonte: [1]
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 45 / 46
Referˆencias
1 Patterson, D.A.; Hennessy, J.L. (2013): Computer
Organization and Design: The Hardware/Software Interface.
Morgan Kaufmann. 5a
ed.
Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 46 / 46

Mais conteúdo relacionado

Mais procurados

Mais procurados (10)

(ACH2001) Introdução à Programação - Aula 05
(ACH2001) Introdução à Programação - Aula 05(ACH2001) Introdução à Programação - Aula 05
(ACH2001) Introdução à Programação - Aula 05
 
Analisador de vibrações I - Modo de funcionamento
Analisador de vibrações I - Modo de funcionamentoAnalisador de vibrações I - Modo de funcionamento
Analisador de vibrações I - Modo de funcionamento
 
Aula Simulação por Eventos Discretos
Aula Simulação por Eventos DiscretosAula Simulação por Eventos Discretos
Aula Simulação por Eventos Discretos
 
Ko 7 kdp-03
Ko 7 kdp-03Ko 7 kdp-03
Ko 7 kdp-03
 
Analisador de vibrações - Modo de funcionamento V
Analisador de vibrações - Modo de funcionamento VAnalisador de vibrações - Modo de funcionamento V
Analisador de vibrações - Modo de funcionamento V
 
Python tão rápido quanto FORTRAN?
Python tão rápido quanto FORTRAN?Python tão rápido quanto FORTRAN?
Python tão rápido quanto FORTRAN?
 
(ACH2044) Sistemas Operacionais - Aula 13
(ACH2044) Sistemas Operacionais - Aula 13(ACH2044) Sistemas Operacionais - Aula 13
(ACH2044) Sistemas Operacionais - Aula 13
 
ApresentaçãO Thiago Bordini Campus Party 2010
ApresentaçãO Thiago Bordini   Campus Party 2010ApresentaçãO Thiago Bordini   Campus Party 2010
ApresentaçãO Thiago Bordini Campus Party 2010
 
Ntp 1-cp2011
Ntp 1-cp2011Ntp 1-cp2011
Ntp 1-cp2011
 
Controle de Congestionamento e fluxos ratos
Controle de Congestionamento e fluxos ratosControle de Congestionamento e fluxos ratos
Controle de Congestionamento e fluxos ratos
 

Semelhante a (ACH2055) Arquitetura de Computadores - Aula 02

Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...Marcelo Barros de Almeida
 
(ACH2044) Sistemas Operacionais - Aula 07
(ACH2044) Sistemas Operacionais - Aula 07(ACH2044) Sistemas Operacionais - Aula 07
(ACH2044) Sistemas Operacionais - Aula 07Norton Trevisan Roman
 
Análise de Disco, I/O e Processamento
Análise de Disco, I/O e ProcessamentoAnálise de Disco, I/O e Processamento
Análise de Disco, I/O e ProcessamentoJohnnatan Messias
 
Balanceamento de linhas
Balanceamento de linhasBalanceamento de linhas
Balanceamento de linhasmarcioemorais
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdftccunip
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgRegis Magalhães
 
Apostila de Introdução a Programação
Apostila de Introdução a ProgramaçãoApostila de Introdução a Programação
Apostila de Introdução a ProgramaçãoThiago Reis da Silva
 
apostila sobre Algoritmos
apostila sobre Algoritmosapostila sobre Algoritmos
apostila sobre AlgoritmosDenise Carmo
 
Linguagemvisualg20 1231617059100335-1
Linguagemvisualg20 1231617059100335-1Linguagemvisualg20 1231617059100335-1
Linguagemvisualg20 1231617059100335-1Daniela Calixto
 
Visualg introdução aos algoritmos
Visualg introdução aos algoritmosVisualg introdução aos algoritmos
Visualg introdução aos algoritmosLuciano Júnior
 
Administração da Produção - Cronoanalise
Administração da Produção - CronoanaliseAdministração da Produção - Cronoanalise
Administração da Produção - Cronoanalisedouglas
 
ApresentaçãO Thiago Bordini Campus Party 2010
ApresentaçãO Thiago Bordini   Campus Party 2010ApresentaçãO Thiago Bordini   Campus Party 2010
ApresentaçãO Thiago Bordini Campus Party 2010Campus Party Brasil
 

Semelhante a (ACH2055) Arquitetura de Computadores - Aula 02 (20)

Cap.1.3 medidas desempenho
Cap.1.3 medidas desempenhoCap.1.3 medidas desempenho
Cap.1.3 medidas desempenho
 
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...Fundamentos de Sistemas  Operacionais de Tempo Real - Criando seu próprio esc...
Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu próprio esc...
 
(ACH2044) Sistemas Operacionais - Aula 07
(ACH2044) Sistemas Operacionais - Aula 07(ACH2044) Sistemas Operacionais - Aula 07
(ACH2044) Sistemas Operacionais - Aula 07
 
Análise de Disco, I/O e Processamento
Análise de Disco, I/O e ProcessamentoAnálise de Disco, I/O e Processamento
Análise de Disco, I/O e Processamento
 
Balanceamento de linhas
Balanceamento de linhasBalanceamento de linhas
Balanceamento de linhas
 
Roteiro IOC 06
Roteiro IOC 06Roteiro IOC 06
Roteiro IOC 06
 
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdfmicrocontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
microcontrolador-pic-em-powerpoint-parte-2-interrupcoes-e-timers.pdf
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
 
Apostila visualg (1)
Apostila visualg (1)Apostila visualg (1)
Apostila visualg (1)
 
Linguagem visualg2.0
Linguagem visualg2.0Linguagem visualg2.0
Linguagem visualg2.0
 
Apostila de Introdução a Programação
Apostila de Introdução a ProgramaçãoApostila de Introdução a Programação
Apostila de Introdução a Programação
 
Apostila visualg
Apostila visualgApostila visualg
Apostila visualg
 
Algoritimo1
Algoritimo1Algoritimo1
Algoritimo1
 
apostila sobre Algoritmos
apostila sobre Algoritmosapostila sobre Algoritmos
apostila sobre Algoritmos
 
Visual g
Visual gVisual g
Visual g
 
Linguagemvisualg20 1231617059100335-1
Linguagemvisualg20 1231617059100335-1Linguagemvisualg20 1231617059100335-1
Linguagemvisualg20 1231617059100335-1
 
Visualg introdução aos algoritmos
Visualg introdução aos algoritmosVisualg introdução aos algoritmos
Visualg introdução aos algoritmos
 
Administração da Produção - Cronoanalise
Administração da Produção - CronoanaliseAdministração da Produção - Cronoanalise
Administração da Produção - Cronoanalise
 
Linguagem visualg2.0
Linguagem visualg2.0Linguagem visualg2.0
Linguagem visualg2.0
 
ApresentaçãO Thiago Bordini Campus Party 2010
ApresentaçãO Thiago Bordini   Campus Party 2010ApresentaçãO Thiago Bordini   Campus Party 2010
ApresentaçãO Thiago Bordini Campus Party 2010
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 

Último

CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memorialgrecchi
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreElianeElika
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e CaracterísticassAugusto Costa
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficasprofcamilamanz
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 

Último (20)

CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memoria
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e Característicass
 
Atividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas GeográficasAtividades sobre Coordenadas Geográficas
Atividades sobre Coordenadas Geográficas
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 

(ACH2055) Arquitetura de Computadores - Aula 02

  • 1. Arquitetura de Computadores ACH2055 Aula 02 – Medindo Desempenho Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 1 / 46
  • 2. M´aquina de Von Neumann Componentes Cl´assicos Entrada Sa´ıda Mem´oria Processador Datapath e controle Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 2 / 46
  • 3. M´aquina de Von Neumann Definindo Desempenho Depende muito de seu uso Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 3 / 46
  • 4. M´aquina de Von Neumann Definindo Desempenho Depende muito de seu uso Centros de Dados: Importa a vaz˜ao (throughput) A quantidade total de trabalho feito em um dado tempo Desempenho = Vaz˜ao Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 3 / 46
  • 5. M´aquina de Von Neumann Definindo Desempenho Usu´ario individual: Importa o tempo de resposta (ou de execu¸c˜ao) O tempo entre o in´ıcio e finaliza¸c˜ao de uma tarefa Desempenho = 1 Tempo de Execu¸c˜ao Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 4 / 46
  • 6. Desempenho – Medindo Tempo Qual tempo medir? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 5 / 46
  • 7. Desempenho – Medindo Tempo Qual tempo medir? Tempo de resposta (ou tempo transcorrido) Tempo total para completar uma tarefa Inclui acessos a disco, mem´oria, E/S etc Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 5 / 46
  • 8. Desempenho – Medindo Tempo Qual tempo medir? Tempo de CPU Tempo que a CPU gasta trabalhando na tarefa Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 6 / 46
  • 9. Desempenho – Medindo Tempo Qual tempo medir? Tempo de CPU Tempo que a CPU gasta trabalhando na tarefa Subdivide-se em: Tempo de CPU do usu´ario: tempo de CPU gasto no programa Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 6 / 46
  • 10. Desempenho – Medindo Tempo Qual tempo medir? Subdivide-se em (cont.): Tempo de CPU do sistema: tempo de CPU gasto no SO executando tarefas por conta do programa Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 7 / 46
  • 11. Desempenho – Medindo Tempo Qual tempo medir? Aqui focaremos no Tempo de CPU do usu´ario Sem levar em conta acesso a disco etc Essa ser´a nossa medida de desempenho da CPU Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 8 / 46
  • 12. Medindo Tempo Comparando computadores DesempenhoX DesempenhoY = r “X ´e r vezes mais r´apido que Y ” Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 9 / 46
  • 13. Medindo Tempo Comparando computadores DesempenhoX DesempenhoY = r “X ´e r vezes mais r´apido que Y ” DesempenhoX DesempenhoY = Tempo de Execu¸c˜aoY Tempo de Execu¸c˜aoX = r “O tempo gasto em Y ´e r vezes maior que o gasto em X” Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 9 / 46
  • 14. Desempenho da CPU Projeto e Desempenho Como determinar os efeitos de uma mudan¸ca de projeto no desempenho (da CPU) experimentado pelo usu´ario? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 10 / 46
  • 15. Desempenho da CPU Projeto e Desempenho Como determinar os efeitos de uma mudan¸ca de projeto no desempenho (da CPU) experimentado pelo usu´ario? tP = CP × tc, onde tP ´e o tempo de execu¸c˜ao de um programa P na CPU CP ´e o n´umero de ciclos de clock gastos no programa P tc ´e o tempo de um ciclo de clock (seu per´ıodo) Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 10 / 46
  • 16. Desempenho da CPU Projeto e Desempenho Lembre que a frequˆencia do clock fc ´e dada por fc = 1 tc Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 11 / 46
  • 17. Desempenho da CPU Projeto e Desempenho Lembre que a frequˆencia do clock fc ´e dada por fc = 1 tc Podemos ent˜ao reescrever tP = CP × tc: tP = CP fc Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 11 / 46
  • 18. Desempenho da CPU Projeto e Desempenho Lembre que a frequˆencia do clock fc ´e dada por fc = 1 tc Podemos ent˜ao reescrever tP = CP × tc: tP = CP fc Melhoramos o desempenho reduzindo o n´umero de ciclos de clock necess´arios para o programa, ou aumentando a frequˆencia do clock Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 11 / 46
  • 19. Desempenho da CPU Tempo de Execu¸c˜ao do Programa tP = CP × tc Como podemos medir o total de ciclos CP? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 12 / 46
  • 20. Desempenho da CPU Tempo de Execu¸c˜ao do Programa tP = CP × tc Como podemos medir o total de ciclos CP? Dif´ıcil. Contudo, sabemos o n´umero de instru¸c˜oes do programa Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 12 / 46
  • 21. Desempenho da CPU Tempo de Execu¸c˜ao do Programa tP = CP × tc Como podemos medir o total de ciclos CP? Dif´ıcil. Contudo, sabemos o n´umero de instru¸c˜oes do programa E sabemos quantos ciclos s˜ao necess´arios para cada instru¸c˜ao do circuito (a partir de seu projeto) Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 12 / 46
  • 22. Desempenho da CPU Tempo de Execu¸c˜ao do Programa tP = CP × tc Como podemos medir o total de ciclos CP? Dif´ıcil. Contudo, sabemos o n´umero de instru¸c˜oes do programa E sabemos quantos ciclos s˜ao necess´arios para cada instru¸c˜ao do circuito (a partir de seu projeto) Logo, sabemos o n´umero m´edio de ciclos por instru¸c˜ao Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 12 / 46
  • 23. Desempenho da CPU Tempo de Execu¸c˜ao do Programa Ent˜ao CP = nP × CPIP, onde CPIP ´e o n´umero m´edio de ciclos de clock que cada instru¸c˜ao de P leva para executar nP o n´umero de instru¸c˜oes do programa P Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
  • 24. Desempenho da CPU Tempo de Execu¸c˜ao do Programa Ent˜ao CP = nP × CPIP, onde CPIP ´e o n´umero m´edio de ciclos de clock que cada instru¸c˜ao de P leva para executar nP o n´umero de instru¸c˜oes do programa P E tP = CP × tc = nP × CPIP × tc Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
  • 25. Desempenho da CPU Tempo de Execu¸c˜ao do Programa Ent˜ao CP = nP × CPIP, onde CPIP ´e o n´umero m´edio de ciclos de clock que cada instru¸c˜ao de P leva para executar nP o n´umero de instru¸c˜oes do programa P E tP = CP × tc = nP × CPIP × tc O tempo de execu¸c˜ao Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
  • 26. Desempenho da CPU Tempo de Execu¸c˜ao do Programa Ent˜ao CP = nP × CPIP, onde CPIP ´e o n´umero m´edio de ciclos de clock que cada instru¸c˜ao de P leva para executar nP o n´umero de instru¸c˜oes do programa P E tP = CP × tc = nP × CPIP × tc O tempo de execu¸c˜ao ´e o n´umero de instru¸c˜oes executadas Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
  • 27. Desempenho da CPU Tempo de Execu¸c˜ao do Programa Ent˜ao CP = nP × CPIP, onde CPIP ´e o n´umero m´edio de ciclos de clock que cada instru¸c˜ao de P leva para executar nP o n´umero de instru¸c˜oes do programa P E tP = CP × tc = nP × CPIP × tc O tempo de execu¸c˜ao ´e o n´umero de instru¸c˜oes executadas multiplicado pelo tempo m´edio de cada instru¸c˜ao Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 13 / 46
  • 28. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
  • 29. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc Segundos Programa = Instru¸c˜oes Programa × Ciclos de clock Instru¸c˜ao × Segundos Ciclo de clock Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
  • 30. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc Segundos Programa = Instru¸c˜oes Programa × Ciclos de clock Instru¸c˜ao × Segundos Ciclo de clock Unimos, assim, os 3 fatores-chave que afetam o desempenho Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
  • 31. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc Segundos Programa = Instru¸c˜oes Programa × Ciclos de clock Instru¸c˜ao × Segundos Ciclo de clock Unimos, assim, os 3 fatores-chave que afetam o desempenho Alternativamente tP = nP × CPIP fc Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
  • 32. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc Segundos Programa = Instru¸c˜oes Programa × Ciclos de clock Instru¸c˜ao × Segundos Ciclo de clock Unimos, assim, os 3 fatores-chave que afetam o desempenho Alternativamente tP = nP × CPIP fc Podemos ent˜ao usar essas express˜oes para comparar diferentes arquiteturas Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 14 / 46
  • 33. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc ´E preciso ter em mente que a ´unica medida completa e confi´avel de desempenho ´e o tempo Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 15 / 46
  • 34. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc ´E preciso ter em mente que a ´unica medida completa e confi´avel de desempenho ´e o tempo Mudar o conjunto de instru¸c˜oes (nP) para reduzir o n´umero de instru¸c˜oes pode levar a uma organiza¸c˜ao com um ciclo de clock (tc) mais lento ou alto CPI, anulando assim a melhoria na contagem de instru¸c˜oes Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 15 / 46
  • 35. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc ´E preciso ter em mente que a ´unica medida completa e confi´avel de desempenho ´e o tempo Da mesma forma, uma vez que o CPI depende do tipo de instru¸c˜ao, um c´odigo que execute menos instru¸c˜oes pode n˜ao ser o mais r´apido Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 16 / 46
  • 36. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc ´E preciso ter em mente que a ´unica medida completa e confi´avel de desempenho ´e o tempo Da mesma forma, uma vez que o CPI depende do tipo de instru¸c˜ao, um c´odigo que execute menos instru¸c˜oes pode n˜ao ser o mais r´apido Quando comparamos 2 computadores, devemos olhar os 3 componentes da equa¸c˜ao em conjunto Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 16 / 46
  • 37. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc E como medimos os termos da equa¸c˜ao? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 17 / 46
  • 38. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc E como medimos os termos da equa¸c˜ao? Podemos medir o tempo de execu¸c˜ao diretamente, rodando o programa De fato, rodando m´ultiplas vezes e ent˜ao tomando o tempo m´edio Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 17 / 46
  • 39. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc O per´ıodo do clock, por sua vez, ´e dado pelo fabricante Sua frequˆencia, na verdade Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 18 / 46
  • 40. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc O per´ıodo do clock, por sua vez, ´e dado pelo fabricante Sua frequˆencia, na verdade O n´umero de instru¸c˜oes pode ser medido usando-se ferramentas (profilers) que perfilam a execu¸c˜ao Que fazem a an´alise dinˆamica do software Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 18 / 46
  • 41. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc Dados tP, tc e nP, CPIP ´e obtido Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 19 / 46
  • 42. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc Dados tP, tc e nP, CPIP ´e obtido Outra alternativa ´e usar, quando dispon´ıveis no processador, contadores dedicados a medir estat´ısticas de execu¸c˜ao N´umero de instru¸c˜oes executadas, CPI m´edio etc Bastante ´uteis para alguns algoritmos do SO Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 19 / 46
  • 43. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU tP = nP × CPIP × tc E se n˜ao pudermos rodar o software para obter tP, pelo hardware estar em projeto? Nesse caso, os demais elementos precisam ser identificados Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 20 / 46
  • 44. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Mas, se j´a medimos tP, por que nos preocuparmos com os demais componentes? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 21 / 46
  • 45. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Mas, se j´a medimos tP, por que nos preocuparmos com os demais componentes? Considere o seguinte problema Um determinado programa leva 15s para rodar em um computador Um novo compilador ´e lan¸cado, compilando esse programa com 60% do n´umero de instru¸c˜oes de antes, por´em aumentando a CPI em 10% Quanto tempo podemos esperar que essa nova vers˜ao do programa rode no mesmo computador? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 21 / 46
  • 46. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Temos ent˜ao que: tP1 = 15 ninstr2 = 0, 6ninstr1 CPI2 = 1, 1CPI1 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 22 / 46
  • 47. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Temos ent˜ao que: tP1 = 15 ninstr2 = 0, 6ninstr1 CPI2 = 1, 1CPI1 E tP2 = ninstr2 × CPI2 × tc = 0, 6ninstr1 × 1, 1CPI1 × tc = 0, 6 × 1, 1 × ninstr1 × CPI1 × tc = 0, 66 × tP1 = 9, 9s Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 22 / 46
  • 48. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Assim a equa¸c˜ao se mostra ´util tamb´em para estimativa de mudan¸cas Seja em hardware, seja em software, via recompila¸c˜ao Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 23 / 46
  • 49. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Assim a equa¸c˜ao se mostra ´util tamb´em para estimativa de mudan¸cas Seja em hardware, seja em software, via recompila¸c˜ao Considere esse outro problema: Um determinado processador possui o seguinte CPI para cada classe de suas instru¸c˜oes: Fonte: [1] Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 23 / 46
  • 50. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Um projetista de compilador est´a tentando decidir qual sequˆencia de instru¸c˜oes usar para representar um determinado comando. Suas op¸c˜oes s˜ao: Fonte: [1] Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 24 / 46
  • 51. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Um projetista de compilador est´a tentando decidir qual sequˆencia de instru¸c˜oes usar para representar um determinado comando. Suas op¸c˜oes s˜ao: Fonte: [1] Qual sequˆencia executa o maior n´umero de instru¸c˜oes? Qual ser´a mais r´apida? Qual o CPI de cada sequˆencia? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 24 / 46
  • 52. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual sequˆencia executa o maior n´umero de instru¸c˜oes? Fonte: [1] Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 25 / 46
  • 53. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual sequˆencia executa o maior n´umero de instru¸c˜oes? Fonte: [1] nS1 = 2 + 1 + 2 = 5 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 25 / 46
  • 54. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual sequˆencia executa o maior n´umero de instru¸c˜oes? Fonte: [1] nS1 = 2 + 1 + 2 = 5 nS2 = 4 + 1 + 1 = 6 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 25 / 46
  • 55. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual sequˆencia executa o maior n´umero de instru¸c˜oes? Fonte: [1] nS1 = 2 + 1 + 2 = 5 nS2 = 4 + 1 + 1 = 6 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 25 / 46
  • 56. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual ´e a mais r´apida? Fonte: [1] Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 26 / 46
  • 57. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual ´e a mais r´apida? Fonte: [1] N˜ao sabemos. Precisamos calcular quantos ciclos de clock cada sequˆencia gasta (lembre que tP = CP × tc) Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 26 / 46
  • 58. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Para isso, usamos que CSj = Ncl i=1 (CPIi × ni ), onde CSj ´e o n´umero de ciclos de clock da sequˆencia Sj CPIi ´e o CPI da classe de instru¸c˜oes i ni ´e o n´umero de instru¸c˜oes da classe i nessa sequˆencia Ncl ´e o total de diferentes classes de instru¸c˜oes Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 27 / 46
  • 59. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Ent˜ao... Fonte: [1] CS1 = 1 · 2 + 2 · 1 + 3 · 2 = 10 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 28 / 46
  • 60. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Ent˜ao... Fonte: [1] CS1 = 1 · 2 + 2 · 1 + 3 · 2 = 10 CS2 = 1 · 4 + 2 · 1 + 3 · 1 = 9 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 28 / 46
  • 61. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual ´e a mais r´apida? Fonte: [1] Uma vez que tP = CP × tc, e tc ´e idˆentico por estarem na mesma m´aquina, S2 (com o menor CS ) ´e a mais r´apida Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 29 / 46
  • 62. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual ´e a mais r´apida? Fonte: [1] Note que, embora seja a mais r´apida, S2 n˜ao ´e a menor sequˆencia, possuindo mais instru¸c˜oes que S1 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 30 / 46
  • 63. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual o CPI de cada sequˆencia? Fonte: [1] Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 31 / 46
  • 64. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU Qual o CPI de cada sequˆencia? Fonte: [1] Uma vez que S2 usa menos ciclos de clock e executa 1 instru¸c˜ao a mais, seu CPI deve ser menor que o de S1 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 31 / 46
  • 65. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU E como calculamos o CPI de cada sequˆencia? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 32 / 46
  • 66. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU E como calculamos o CPI de cada sequˆencia? De posse do total de ciclos CSj de uma sequˆencia Sj, bem como de seu n´umero de instru¸c˜oes nSj , seu CPI pode ser calculado como CPISj = CSj nSj Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 32 / 46
  • 67. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU E como calculamos o CPI de cada sequˆencia? De posse do total de ciclos CSj de uma sequˆencia Sj, bem como de seu n´umero de instru¸c˜oes nSj , seu CPI pode ser calculado como CPISj = CSj nSj E CPIS1 = 10 5 = 2 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 32 / 46
  • 68. Desempenho da CPU Equa¸c˜ao Cl´assica de Desempenho da CPU E como calculamos o CPI de cada sequˆencia? De posse do total de ciclos CSj de uma sequˆencia Sj, bem como de seu n´umero de instru¸c˜oes nSj , seu CPI pode ser calculado como CPISj = CSj nSj E CPIS1 = 10 5 = 2 CPIS2 = 9 6 = 1, 5 Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 32 / 46
  • 69. Desempenho da CPU Comparando Arquiteturas Vimos como comparar o desempenho de sequˆencias de c´odigo ou programas inteiros Em diferentes m´aquinas (medindo seu tP) Na mesma m´aquina (via varia¸c˜oes no nP, CPIP ou tc) Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 33 / 46
  • 70. Desempenho da CPU Comparando Arquiteturas Vimos como comparar o desempenho de sequˆencias de c´odigo ou programas inteiros Em diferentes m´aquinas (medindo seu tP) Na mesma m´aquina (via varia¸c˜oes no nP, CPIP ou tc) Mas isso realmente compara a arquitetura de forma ampla? Ou cont´em um vi´es em dire¸c˜ao ao programa (ou segmento) usado no teste? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 33 / 46
  • 71. Desempenho da CPU Comparando Arquiteturas Para compararmos 2 arquiteturas precisamos de um conjunto de programas que represente o comportamento de um usu´ario Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 34 / 46
  • 72. Desempenho da CPU Comparando Arquiteturas Para compararmos 2 arquiteturas precisamos de um conjunto de programas que represente o comportamento de um usu´ario Precisamos de um conjunto de trabalho Um conjunto de programas que, ou correspondem ao conjunto rodado pelo usu´ario, ou s˜ao constru´ıdos de modo a aproximar esse conjunto Um conjunto de trabalho t´ıpico especifica tanto os programas quanto suas frequˆencias relativas Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 34 / 46
  • 73. Desempenho da CPU Comparando Arquiteturas Assim, basta medir o tempo de execu¸c˜ao do conjunto de trabalho em outra m´aquina para decidir qual ´e a melhor Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 35 / 46
  • 74. Desempenho da CPU Comparando Arquiteturas Assim, basta medir o tempo de execu¸c˜ao do conjunto de trabalho em outra m´aquina para decidir qual ´e a melhor Isso, naturalmente, pressup˜oe o acesso a essa m´aquina Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 35 / 46
  • 75. Desempenho da CPU Comparando Arquiteturas Assim, basta medir o tempo de execu¸c˜ao do conjunto de trabalho em outra m´aquina para decidir qual ´e a melhor Isso, naturalmente, pressup˜oe o acesso a essa m´aquina O que fazer quando n˜ao h´a realmente como testar o conjunto de trabalho em outra m´aquina? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 35 / 46
  • 76. Desempenho da CPU Comparando Arquiteturas Assim, basta medir o tempo de execu¸c˜ao do conjunto de trabalho em outra m´aquina para decidir qual ´e a melhor Isso, naturalmente, pressup˜oe o acesso a essa m´aquina O que fazer quando n˜ao h´a realmente como testar o conjunto de trabalho em outra m´aquina? Como tomar uma decis˜ao baseada em desempenho? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 35 / 46
  • 77. Desempenho da CPU Comparando Arquiteturas Deve-se usar algum conjunto padr˜ao, na esperan¸ca que reflita o desempenho do conjunto de trabalho do usu´ario Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 36 / 46
  • 78. Desempenho da CPU Comparando Arquiteturas Deve-se usar algum conjunto padr˜ao, na esperan¸ca que reflita o desempenho do conjunto de trabalho do usu´ario Precisamos ent˜ao de benchmarks Programas escolhidos especificamente para medir o desempenho Formam um conjunto de trabalho que espera-se possam prever o desempenho do conjunto de trabalho do usu´ario Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 36 / 46
  • 79. Desempenho da CPU Comparando Arquiteturas Benchmarks tˆem um papel cr´ıtico na defini¸c˜ao de estruturas de computadores A ponto de merecerem um esfor¸co, por parte de v´arios fabricantes, para criar padr˜oes de benchmarks – SPEC (System Performance Evaluation Cooperative) Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 37 / 46
  • 80. Desempenho da CPU Comparando Arquiteturas Benchmarks tˆem um papel cr´ıtico na defini¸c˜ao de estruturas de computadores A ponto de merecerem um esfor¸co, por parte de v´arios fabricantes, para criar padr˜oes de benchmarks – SPEC (System Performance Evaluation Cooperative) Em geral, os fabricantes informam o desempenho de suas m´aquinas de acordo com algum desses benchmarks padr˜ao Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 37 / 46
  • 81. Desempenho da CPU Outras Medidas Uma alternativa ao tempo de execu¸c˜ao ´e MIPS Milh˜oes de Instru¸c˜oes Por Segundo MIPS = nP tP × 106 Quanto maior, mais r´apido o processador Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 38 / 46
  • 82. Desempenho da CPU Outras Medidas Uma alternativa ao tempo de execu¸c˜ao ´e MIPS Milh˜oes de Instru¸c˜oes Por Segundo MIPS = nP tP × 106 Quanto maior, mais r´apido o processador Problemas: N˜ao temos como comparar computadores com conjuntos distintos de instru¸c˜oes, pois nP certamente ser´a diferente Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 38 / 46
  • 83. Desempenho da CPU Outras Medidas Problemas: MIPS varia entre programas no mesmo computador MIPS = nP tP × 106 = nP nP × CPIP × tc × 106 = 1 CPIP × tc × 106 = fc CPIP × 106 Ao usarem instru¸c˜oes distintas, o CPI pode variar entre 2 programas Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 39 / 46
  • 84. Desempenho da CPU Outras Medidas Problemas: MIPS varia entre programas no mesmo computador MIPS = nP tP × 106 = nP nP × CPIP × tc × 106 = 1 CPIP × tc × 106 = fc CPIP × 106 Ao usarem instru¸c˜oes distintas, o CPI pode variar entre 2 programas Se um novo programa executa mais instru¸c˜oes, sendo que cada instru¸c˜ao ´e mais r´apida, MIPS pode variar independentemente do desempenho Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 39 / 46
  • 85. Desempenho da CPU – Armadilhas Lei de Amdahl Uma armadilha comum ´e esperar que a melhoria de um aspecto do computador melhore o desempenho geral pelo mesmo tanto Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 40 / 46
  • 86. Desempenho da CPU – Armadilhas Lei de Amdahl Uma armadilha comum ´e esperar que a melhoria de um aspecto do computador melhore o desempenho geral pelo mesmo tanto Considere o seguinte exemplo Um programa roda em 100s (tP = 100), com opera¸c˜oes de multiplica¸c˜ao sendo respons´aveis por 80s deste tempo Quanto teremos que aumentar a velocidade de cada multiplica¸c˜ao para que o programa rode 5× mais r´apido? Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 40 / 46
  • 87. Desempenho da CPU – Armadilhas Lei de Amdahl O tempo de execu¸c˜ao do programa ap´os a melhoria ´e dado pela Lei de Amdahl: tP = tA r + tNA, onde tP ´e o tempo de execu¸c˜ao do programa P ap´os a melhoria tA ´e o tempo de execu¸c˜ao afetado pela melhoria r ´e a taxa de melhoria feita tNA ´e o tempo de execu¸c˜ao n˜ao afetado pela melhoria Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 41 / 46
  • 88. Desempenho da CPU – Armadilhas Lei de Amdahl O tempo de execu¸c˜ao do programa ap´os a melhoria ´e dado pela Lei de Amdahl: tP = tA r + tNA, onde tP ´e o tempo de execu¸c˜ao do programa P ap´os a melhoria tA ´e o tempo de execu¸c˜ao afetado pela melhoria r ´e a taxa de melhoria feita tNA ´e o tempo de execu¸c˜ao n˜ao afetado pela melhoria Ou seja, a melhoria no desempenho com uma melhoria est´a limitada ao tanto que o fator melhorado ´e usado Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 41 / 46
  • 89. Desempenho da CPU – Armadilhas Lei de Amdahl Outra forma de ver ´e: Qualquer redu¸c˜ao de tempo ´e limitada pela contribui¸c˜ao da parte afetada para o tempo total Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 42 / 46
  • 90. Desempenho da CPU – Armadilhas Lei de Amdahl Outra forma de ver ´e: Qualquer redu¸c˜ao de tempo ´e limitada pela contribui¸c˜ao da parte afetada para o tempo total O tempo total ´e tP = N i=1 ti onde ti ´e a contribui¸c˜ao para tP da i-´esima parte do programa Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 42 / 46
  • 91. Desempenho da CPU – Armadilhas Lei de Amdahl Ent˜ao, se modificamos o tempo da parte j para k × j, sua contribui¸c˜ao a tP ser´a tP = k × tj + N i=1,i=j ti Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 43 / 46
  • 92. Desempenho da CPU – Armadilhas Lei de Amdahl Ent˜ao, se modificamos o tempo da parte j para k × j, sua contribui¸c˜ao a tP ser´a tP = k × tj + N i=1,i=j ti Ou seja, o tempo de execu¸c˜ao da parte afetada + o tempo da parte n˜ao afetada pela modifica¸c˜ao Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 43 / 46
  • 93. Desempenho da CPU – Armadilhas Lei de Amdahl Voltando ao nosso problema tP = tA r + tNA = 80 r + (100 − 80) Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 44 / 46
  • 94. Desempenho da CPU – Armadilhas Lei de Amdahl Voltando ao nosso problema tP = tA r + tNA = 80 r + (100 − 80) Como queremos que fique 5× mais r´apido, ent˜ao tP = tP/5 = 20, e 20 = 80 r + 20 ⇒ 0 = 80 r Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 44 / 46
  • 95. Desempenho da CPU – Armadilhas Lei de Amdahl Voltando ao nosso problema tP = tA r + tNA = 80 r + (100 − 80) Como queremos que fique 5× mais r´apido, ent˜ao tP = tP/5 = 20, e 20 = 80 r + 20 ⇒ 0 = 80 r E n˜ao h´a como obter tal melhoria Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 44 / 46
  • 96. Desempenho da CPU: Influˆencias Fonte: [1] Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 45 / 46
  • 97. Referˆencias 1 Patterson, D.A.; Hennessy, J.L. (2013): Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann. 5a ed. Norton Trevisan Roman (norton@usp.br) 30 de agosto de 2019 46 / 46