You are on page 1of 41

INF113 ORGANIZAO

DE COMPUTADORES B
TURMA B
Aula 2a
Reviso sobre desempenho
Performance
Um computador tem melhor desempenho que outro.
O que isto significa?
funo da perspectiva:
Usurio: quer o trabalho feito ASAP
SO: o maior nmero de jobs possvel em um certo intervalo de
tempo
Organizao de Computadores B 2
Definindo Performance
Qual avio o melhor?
0 200 400 600
Douglas
DC-8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Passenger Capacity
0 5000 10000
Douglas
DC-8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Cruising Range (miles)
0 500 1000 1500
Douglas
DC-8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Cruising Speed (mph)
0 100000 200000 300000 400000
Douglas
DC-8-50
BAC/Sud
Concorde
Boeing 747
Boeing 777
Passengers x mph
Organizao de Computadores B 3
Duas noes de performance
Avio NY => Paris Velocidade Mx Passageiros Vazo (p-mph)
Boing 747 6,5 Horas 610 mph 470 286,700
Bac/Sud
Concorde
3,0 Horas 1350 mph 132 178,200
Organizao de Computadores B 4
Qual tem a maior performance?
Tempo de transportar 1 passageiro?
Tempo de transportar 400 passageiros?
Performance de Computadores
Tempo de Resposta
= Tempo de Execuo
= Latncia no computador:
Tempo de 1 job (usurio)
Throughput
= Bandwidth
= Vazo:
Jobs por unidade de tempo (administrador do sistema)

Organizao de Computadores B 5
Tempo de resposta vs. Throughput
Tempo entre Boeing vs. Concorde?
6,5 ()
3,0 ()
= 2,2
Throughput entre Boeing vs. Concorde?
286,700 / ()
178,200 / ()
= 1,6
Organizao de Computadores B 6
Tempo de resposta vs. Throughput
Tempo entre Boeing vs. Concorde?
6,5 ()
3,0 ()
= 2,2
Throughput entre Boeing vs. Concorde?
286,700 / ()
178,200 / ()
= 1,6
Organizao de Computadores B 7
Concorde 2,2 vezes mais rpido no tempo da viagem
(tempo de resposta)
Boeing carrega 1,6 vezes mais passageiros
(vazo)
Questes (pt.1)
Um processador P1@100MHz mais rpido que outro a
50MHz?
Organizao de Computadores B 8
Questes (pt.2)
Um processador @100MHz mais rpido que outro a
50MHz?
Um processador @50MHz pode ser mais rpido que
outro a 100MHz?
Organizao de Computadores B 9
Questes (pt.3)
Um processador P1@100MHz mais rpido que outro a
50MHz?
Um processador @50MHz pode ser mais rpido que
outro a 100MHz?
Um programa que executa 20% mais instrues que
outro, na mesma CPU, pode ser mais rpido?
Organizao de Computadores B 10
Questes (pt.4)
Um processador P1@100MHz mais rpido que outro a
50MHz?
Um processador @50MHz pode ser mais rpido que
outro a 100MHz?
Um programa que executa 20% mais instrues que
outro, na mesma CPU, pode ser mais rpido?
Dois programas, cada um com N instrues, executando
em mquinas que suportam a mesma ISA, mesma
frequncia, podem ter tempos diferentes?
Organizao de Computadores B 11
Questes (pt.5)
Um processador P1@100MHz mais rpido que outro a
50MHz?
Um processador @50MHz pode ser mais rpido que
outro a 100MHz?
Um programa que executa 20% mais instrues que
outro, na mesma CPU, pode ser mais rpido?
Dois programas, cada um com N instrues, executando
em mquinas que suportam a mesma ISA, mesma
frequncia, podem ter tempos diferentes?
Qual a varivel que sempre nos interessou?
Organizao de Computadores B 12
Definies (pt.1)
Quando discutimos desempenho de um computador,
estamos primeiramente preocupados com tempo de
resposta
Organizao de Computadores B 13
Definies (pt.2)
Quando discutimos desempenho de um computador,
estamos primeiramente preocupados com tempo de
resposta
Para maximizar o desempenho, minimize o tempo de
resposta para uma dada tarefa:
>
_ < _
Organizao de Computadores B 14
Definies (pt.3)
Quando discutimos desempenho de um computador,
estamos primeiramente preocupados com tempo de
resposta
Para maximizar o desempenho, minimize o tempo de
resposta para dada tarefa:
>
_ < _
"X N vezes mais rpido que Y" significa:
_
_
=
Organizao de Computadores B 15
O que tempo de execuo? (pt.1)
Definio: Tempo total para completar uma tarefa
wall-clock time, response time, elapsed time ou real time
Incluindo:
Tempo de acesso ao disco
Acessos memria
Outras atividades de E/S
Overhead do Sistema Operacional
Organizao de Computadores B 16
O que tempo de execuo? (pt.2)
Definio: Tempo total para completar uma tarefa
wall-clock time, response time, elapsed time ou real time
Incluindo:
Tempo de acesso ao disco
Acessos memria
Outras atividades de E/S
Overhead do Sistema Operacional
Alternativa: Medir o tempo que o processador trabalhou
no seu programa. (Processador compartilhado por
mltiplos processos)
CPU execution time ou CPU time
Geralmente dividido em:
Tempo de CPU para o Sis.Op. (system time)
Tempo de CPU para o usurio (user time)
No Linux:
$time updatedb
real 0m49.173s
user 0m1.200s
sys 0m1.940s
Organizao de Computadores B 17
MEDINDO O TEMPO
Organizao de Computadores B 18
Medindo o tempo da CPU
A grande maioria dos computadores so construidos
utilizando um relgio (clock) como base.
O clock constante e determina quando os eventos
ocorrem no hardware.
So chamados: ciclos de relgio (ou ticks, clock ticks,
clock, relgio, perodo de relgio/clock ou s ciclos)
Organizao de Computadores B 19
Clock (ciclos)
Transferncia de Dados
ou Computao
Estado de Atualizao
Perodo
Medindo o tempo da CPU
Comprimento do perodo de relgio = tempo para 1 ciclo
de relgio
=
1

Frequncia de 500mhz Perodo de 2 nanosegundos (2 ns)


Organizao de Computadores B 20
Clock (ciclos)
Transferncia de Dados
ou Computao
Estado de Atualizao
Perodo
Medindo o tempo da CPU
Comprimento do perodo de relgio = tempo para 1 ciclo
de relgio
=
1

Frequncia de 500mhz Perodo de 2 nanosegundos (2 ns)


Organizao de Computadores B 21
Clock (ciclos)
Transferncia de Dados
ou Computao
Estado de Atualizao
Perodo
Por que o perodo
importante?
Medindo o tempo da CPU
Comprimento do perodo de relgio = tempo para 1 ciclo
de relgio
=
1

Frequncia de 500mhz Perodo de 2 nanosegundos (2 ns)


=
Organizao de Computadores B 22
Clock (ciclos)
Transferncia de Dados
ou Computao
Estado de Atualizao
Perodo
Para saber o tempo de execuo!!!
Exemplo (clssico em arquitetura)
Problema:
Um programa leva 10s para ser executado numa CPU a 400 MHz.
Desejamos que o programa execute em 6 segundos.
Para aumentar o relgio, os arquitetos tiveram de aumentar em
20% o nmero total de ciclos.
Qual a nova frequncia de relgio que ser necessria?
Organizao de Computadores B 23
Exemplo (clssico em arquitetura)
Resposta:
Nmero de ciclos de relgio original:
10 400 = 4,0
Com aumento de 20%, levar:
1.2 4,0 = 4,8
Tempo exigido: 6
Nova frequncia de relgio:
4,8
6
= 800
E a?
difcil otimizar s uma varivel
Organizao de computadores s dispe de um cobertor curto
Organizao de Computadores B 24
MTRICA CPI
Organizao de Computadores B 25
CPI: Ciclos Por Instruo
Nmero de ciclos de relgio para o programa:
Instrues executadas por um programa:
Mdia de Ciclos Por Instruo:
=
Organizao de Computadores B 26
CPI: Ciclos Por Instruo
Nmero de ciclos de relgio para o programa:
Instrues executadas por um programa:
Mdia de Ciclos Por Instruo:
=
CPI mostra uma viso do estilo da ISA implementada:
RISC (e.g., MIPS, DEC Alpha, PowerPC) maior nmero de
instrues a serem executadas, menor CPI
CISC (e.g., Intel) menor nmero de instrues a serem
executadas, maior CPI
Organizao de Computadores B 27
Iron Triangle do desempenho da CPU
=
Organizao de Computadores B 28
CPI
Contagem de
Instrues
Tempo do
ciclo de relgio
Como calcular os 3 componentes?
Tempo do ciclo de relgio:
Na especificao do computador
(Frequncia de Relgio, nas propagandas)
Contagem de instrues:
Contagem manual de instrues executadas
Simuladores
Contador em hardware.
Ex.: registrador especial (e.g. ltimos processadores da Intel)
Organizao de Computadores B 29
Como calcular os 3 componentes? (2)
CPI mdio:
Como calcular:
=

necessrio executar o programa!


Organizao de Computadores B 30
Objetivo otimizar
tempo de execuo,
no termos
individuais de
equaes.
Mquinas
so
otimizadas
conforme o
workload
de
programas.
Compilador
pode
ajudar
CPI do
programa.
Reflete a
mistura de
instrues do
programa.
Perodo do
relgio.
Otimize
juntamente
com o CPI
da mquina.
Equao do Desempenho
Organizao de Computadores B 31
=

Outro exemplo ...


Um programa executado numa mquina A com relgio de
1ns (1 GHz) tem um CPI de 2.0.
O mesmo programa, numa mquina B com mesma ISA e
relgio de 2ns (500MHz) tem CPI de 1.2.
Qual mquina a mais rpida e quanto mais rpida?
Organizao de Computadores B 32
Outro exemplo ... Resposta (pt.1)
Seja o nmero de instrues a serem executadas
__ = 2.0
__ = 2.0 1 = 2
Organizao de Computadores B 33
Outro exemplo ... Resposta (pt.2)
Seja o nmero de instrues a serem executadas
__ = 2.0
__ = 2.0 1 = 2
__ = 1.2
__ = 1.2 2 = 2.4
Organizao de Computadores B 34
Outro exemplo ... Resposta (pt.3)
Seja o nmero de instrues a serem executadas
__ = 2.0
__ = 2.0 1 = 2
__ = 1.2
__ = 1.2 2 = 2.4
__
__
=
2,4
2
= 1,2
CPU A 1,2 vezes mais rpida que CPU B,
EMBORA sua frequncia seja 100% maior.
Organizao de Computadores B 35
Mais um exemplo
Processador RISC
Op. Freq. Ciclos CPI / Tipo Tempo
ALU 50% 1 0,5 23%
Load 20% 5 1,0 45%
Store 10% 3 0,3 14%
Branch 20% 2 0,4 18%
TOTAL 100% - 2,2 100%
Organizao de Computadores B 36
Se tivssemos de otimizar esta arquitetura, por onde
comearamos?
Quo mais rpida seria a mquina se o tempo de LOAD fosse
reduzido para 2 ciclos?
Quo mais rpida seria a mquina se o BRANCH levasse 1 ciclo?
Mais um exemplo - Processador RISC
Resposta
Op. Freq. Ciclos CPI / Tipo Tempo
ALU 50% 1 0,5 31%
Load 20% 2 0,4 25%
Store 10% 3 0,3 18%
Branch 20% 2 0,4 25%
TOTAL 100% - 1,6 100%
Organizao de Computadores B 37
Op. Freq. Ciclos CPI / Tipo Tempo
ALU 50% 1 0,5 25%
Load 20% 5 1,0 50%
Store 10% 3 0,3 15%
Branch 20% 1 0,2 10%
TOTAL 100% - 2,0 100%
2,2
1,6
= 1,37
2,2
2,0
= 1,10
CPI como uma ferramenta analtica para
guiar o projeto
Organizao de Computadores B 38
5
1
2 2 2
Multiplicao
30%
Outras
ALUs
20%
Leitura
20%
Escrita
10%
Saltos
20%
DISTRIBUIO DE INSTRUES DO
PROGRAMA
Qual a influncia das Escritas
no desempenho final?
CPI como uma ferramenta analtica para
guiar o projeto
Organizao de Computadores B 39
5
1
2 2 2
5 30 + 1 20 + 2 20 + 2 10 + 2 20
100
= 2,7
Multiplicao
30%
Outras
ALUs
20%
Leitura
20%
Escrita
10%
Saltos
20%
DISTRIBUIO DE INSTRUES DO
PROGRAMA
CPI como uma ferramenta analtica para
guiar o projeto
Organizao de Computadores B 40
5
1
2 2 2
5 30 + 1 20 + 2 20 + 2 10 + 2 20
100
= 2,7
Multiplicao
30%
Outras
ALUs
20%
Leitura
20%
Escrita
10%
Saltos
20%
DISTRIBUIO DE INSTRUES DO
PROGRAMA
Multiplicao
56%
Outras
ALUs
7%
Leitura
15%
Escrita
7%
Saltos
15%
TEMPO GASTO PELO PROGRAMA
0,20
2,70
= 0,074074074 = 7,40%
Leitura
Patterson/Hennessy
3 Edio
Captulo 4
Organizao de Computadores B 41