Organização de
Computadores
Marcelo Lobosco
DCC/UFJF
Avaliando e
Compreendendo o
Desempenho
Aula 09
Agenda

Avaliando e Compreendendo o
Desempenho
 Introdução
Definindo Desempenho
 Medindo o Desempenho

 Desempenho
da CPU e seus Fatores
Introdução




Como medir, informar e resumir o desempenho
Principais fatores que determinam o desempenho
Desempenho do hardware é fundamental para
eficiência de todo o sistema
Avaliar o desempenho pode ser complicado
 Escala
e complexidade do software, técnicas de
melhoria de desempenho do hardware
Introdução

Para diferentes tipos de aplicações,
diversas medições de desempenho podem
ser apropriadas
 Diferentes
aspectos podem ser os mais
significativos na determinação do desempenho
geral
Veja através da propaganda de marketing
 Vital para entender a motivação
organizacional subjacente

Introdução



Por que alguns hardwares são melhores do que
outros para diferentes programas?
Que fatores do desempenho de sistema são
relacionados ao hardware? (por exemplo,
precisamos de uma nova máquina ou de um
novo sistema operacional?)
Como o conjunto de instruções da máquina
afeta o desempenho?
Definindo Desempenho




A questão do desempenho pode ser sutil
Que avião tem melhor desempenho?
O quanto mais rápido é o Concorde comparado
com o 747?
O quanto maior é o 747 do que o Douglas DC-8?
Definindo Desempenho

Vencedores
 Capacidade:
Boeing 747
 Autonomia: Douglas DC-8-50
 Velocidade: BAC/Sud Concorde
 Vazão: Boeing 747

Desempenho pode ser definido de várias
formas diferentes
Definindo Desempenho

Tempo de resposta ou execução (latência)





Quanto tempo leva para meu trabalho ser realizado?
Quanto tempo preciso esperar para a consulta ao banco de
dados?
Tempo necessário para o computador completar uma tarefa
Importante para usuário de computador individual
Vazão (throughput)





Quantos trabalhos a máquina pode realizar ao mesmo tempo?
Qual é a velocidade de execução média?
Quanto trabalho está sendo feito?
Quantidade total de trabalho feito em um determinado tempo
Importante para gerentes de CPDs
Definindo Desempenho

Questão: As seguintes mudanças em um
sistema computacional aumentam a vazão,
diminuem o tempo de resposta ou as duas
coisas?
 Se
atualizarmos uma máquina com um novo
processador?
 Se incluirmos processadores adicionais em um
sistema multiprocessado usado para tarefas
distintas?
Definindo Desempenho

Foco em tempo de resposta

Para maximizar o desempenho, devemos minimizar
o tempo de execução de uma tarefa:
1
Desempenho X =
Tempo de Execução X

“Desempenho de X é n vezes superior a Y”:
Desempenho X
Desempenho Y
=n
Definindo Desempenho

Se X é n vezes mais rápido que Y, então o
tempo de execução de Y é n vezes maior do que
em X:
Desempenho X
Desempenho Y
=
Tempo de Execução Y
Tempo de Execução X
=n
Definindo Desempenho

Exemplo: Se computador A executa um programa
em 10s e B o executa em 15s, o quanto A é mais
rápido do que B?
Desempenho A
Desempenho B
=
Tempo de Execução B
Tempo de Execução A
15
=1,5
10

A é 1,5 vezes mais rápido do que B.
=n
Medindo o Desempenho

Tempo de relógio, decorrido ou de resposta
 Conta
tudo (acessos a disco e a memória, E/S etc.)
 Número útil, mas normalmente não é ideal para fins de
comparação

Tempo de CPU
 Tempo
real que a CPU gasta computando uma tarefa
específica
 Não conta E/S ou tempo gasto executando outros
programas
 Pode ser dividido em tempo de sistema e tempo de
usuário
Medindo o Desempenho

Ciclos de clock
 Tempo
para cada período de clock

Velocidade de clock (freqüência) = ciclos por
segundo (1Hz = 1 ciclo/segundo)

Velocidade de clock e tempo de ciclos são inversos!

Exemplo: um clock de 4Ghz possui um tempo de
ciclo de
1 / (4 x 109) = 0,25 x 10-9 = 250 x 10-12 = 250 ps
Medindo o Desempenho

Diferentes aplicações são sensíveis a
diferentes aspectos do desempenho de um
sistema
 Servidores


=> desempenho de E/S
Tempo decorrido
Para melhorar o desempenho
 Que
métrica é importante
 Procurar gargalos medindo execução
Medindo o Desempenho

Questão: O desempenho do computador
C é 4 vezes melhor do que o computador
B, que leva 28s para executar uma
determinada aplicação. Quanto tempo C
levará para executar essa aplicação?
Desempenho da CPU e seus
Fatores
Desempenho examinado usando
diferentes métricas
 Se métricas pudessem ser relacionadas,
poderíamos determinar os efeitos de uma
mudança de projeto no desempenho
 Fórmula que relaciona métricas de CPU:
Tempo de execução da CPU para um
programa = Ciclos de clock da CPU para
um programa X Tempo do ciclo de clock

Desempenho da CPU e seus
Fatores

Outra alternativa (velocidade de clock e tempo
de ciclo são inversos):
Tempo de execução da CPU para um programa =

Ciclos de clock de CPU para um programa
velocidade de clock
Como melhorar o desempenho?
 Reduzindo
a duração do ciclo de clock
 Reduzindo o número de ciclos de clock necessário
para um programa
Desempenho da CPU e seus
Fatores

Exemplo: Um programa é executado em
10s no computador A, com clock de
4GHz. Um computador B está sendo
construído para executar este programa
em 6s. Entretanto, B exigirá 1,2 vezes
mais ciclos de clock do que A. Qual a
velocidade de clock necessária para B?
Desempenho da CPU e seus
Fatores
Primeiro passo: quantos ciclos de CPU são
necessários em A?
Tempo de CPU A=
Ciclos de clock da CPU A
∴
Velocidade de clock A
Ciclos de clock da CPU A
10 segundos=
∴
9 ciclos
4 x 10
segundo
9 ciclos
Ciclos de clock da CPU A=4 x 10
x 10 segundos∴
segundo
Ciclos de clock da CPU A=4 x 1010 ciclos
Desempenho da CPU e seus
Fatores
Tempo de CPU para B:
Tempo de CPU B =
1,2 x Ciclos de clock da CPU A
Velocidade de clock B
1,2 x 4 x 10 10 ciclos
6 segundos=
∴
Velocidade de clock B
10
4,8 x 10 ciclos
Velocidade de clock B =
∴
6 segundos
8 x 109 ciclos
Velocidade de clock B =
= 8 GHz
segundo
∴
Desempenho da CPU e seus
Fatores

Poderíamos considerar que o número de ciclos é
igual ao número de instruções?
6ª.
5ª.
4ª.
3ª. Instrução
2ª. Instrução
1ª. Instrução
Tempo
Essa suposição é incorreta! Diferentes instruções levam a
diferentes períodos em diferentes máquinas.
Desempenho da CPU e seus
Fatores




Multiplicação leva mais tempo do que adição
Operações de ponto flutuante levam mais tempo
do que operações com inteiros
Acessar memória leva mais tempo do que
acessar registradores
Importante: mudar o tempo de ciclo
normalmente muda o número de ciclos
necessários para várias instruções
Desempenho da CPU e seus
Fatores
Tempo de execução pode ser expresso em
função do número de instruções executadas:
Ciclos de clock da CPU = Instruções para um
programa x Média dos ciclos de clock por
instrução
 Média dos ciclos de clock por instrução => CPI
 CPI permite comparar duas implementações
diferentes do mesmo conjunto de instruções

Desempenho da CPU e seus
Fatores

Exemplo: Suponha que tenhamos duas implementações
da mesma arquitetura do conjunto de instruções (ISA).
Para um determinado programa,
A máquina A tem um tempo de ciclo de clock de 250 ps
e uma CPI de 2,0 e
a máquina B tem um tempo de ciclo de clock de 500 ps
e uma CPI de 1,2
Que máquina é mais rápida para esse programa e o
quanto?
Desempenho da CPU e seus
Fatores
Solução:
Mesmo número de instruções (I)
Número de ciclos de clock para cada computador:

Ciclos de clock da CPUA = I x 2,0
Ciclos de clock da CPUB = I x 1,2
Tempo de CPU para cada computador:
Tempo de CPUA = Ciclos de Clock da CPUA x Tempo de Ciclo de ClockA =>
I x 2,0 x 250ps = (500 x I)ps
Tempo de CPUB = Ciclos de Clock da CPUB x Tempo de Ciclo de ClockB =>
I x 1,2 x 500ps = (600 x I)ps
Desempenho da CPU e seus
Fatores

A é mais rápido, mas o quanto?
Desempenho A
=
Tempo de Execução B
Desempenho B Tempo de Execução A
(600 x I )ps
=1,2
(500 x I )ps
=n∴
Desempenho da CPU e seus
Fatores

Fórmula de desempenho em função do número
de instruções, CPI e tempo de ciclo de clock:
Tempo de CPU = Contagem de instruções x CPI x Tempo de ciclo de clock
ou
Contagem de instruções x CPI
Tempo de CPU =
velocidade de clock

Três fatores chaves para desempenho
Desempenho da CPU e seus
Fatores

Como determinar esses valores?
 Tempo
de CPU => execução do programa
 Tempo de ciclo de clock => manuais
 Contagem de instruções => ferramentas de trace de
execução, simulador de arquitetura, contadores de
hardware
 CPI => contadores de hardware

Varia por aplicação e entre implementações do mesmo
conjunto de instruções
Desempenho da CPU e seus
Fatores

É possível calcular ciclos de clock da CPU
usando contagem de ciclos individuais:
n
Ciclos de clock da CPU =∑ (CPI i x Ci )
i=1
onde Ci é a contagem do número de instruções da classe i
executadas, CPIi é a média dos ciclos por instrução para
a classe i e n é o número de classes de instrução

CPI geral depende do número de ciclos para
cada tipo de instrução e de suas freqüências de
execução.
Desempenho da CPU e seus
Fatores
Componente
Algoritmo
Afeta o quê?
Contagem de instruções,
possivelmente CPI
Linguagem de Programação Contagem de instruções,
CPI
Compilador
Contagem de instruções,
CPI
Conjunto de Instruções
Contagem de instruções,
velocidade de clock, CPI
Desempenho da CPU e seus
Fatores

Exercício: Um projetista de compilador está tentando decidir entre
duas seqüências de código para um determinada máquina.
Baseado na implementação de hardware, existem três classes
diferentes de instruções: Classe A, Classe B e Classe C, e elas
exigem um, dois e três ciclos, respectivamente.
A primeira seqüência de código possui 5 instruções: 2 de A, 1 de B
e 2 de C. A segunda seqüência possui 6 instruções: 4 de A, 1 de B
e 1 de C.
Que seqüência será mais rápida? O quanto mais rápida? Qual é a
CPI para cada seqüência?
Próxima Aula...

Avaliando e Compreendendo o
Desempenho
 Avaliando
o Desempenho
 Benchmark SPEC
 Falácias e Armadilhas
Download

Aula03