organização de computadores - ufjf · desempenho introdução ... se incluirmos processadores...
TRANSCRIPT
Agenda
Avaliando e Compreendendo o DesempenhoIntrodução
Definindo Desempenho Medindo o Desempenho
Desempenho da CPU e seus Fatores
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
Introdução
Para diferentes tipos de aplicações, diversas medições de desempenho podem ser apropriadasDiferentes 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
VencedoresCapacidade: Boeing 747Autonomia: Douglas DC-8-50Velocidade: BAC/Sud ConcordeVazã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?
DesempenhoX=1
Tempo de ExecuçãoX
DesempenhoX
DesempenhoY
=n
Definindo Desempenho
Foco em tempo de resposta Para maximizar o desempenho, devemos minimizar
o tempo de execução de uma tarefa:
“Desempenho de X é n vezes superior a Y”:
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:
DesempenhoX
DesempenhoY
=Tempo de ExecuçãoY
Tempo de ExecuçãoX
=n
DesempenhoA
DesempenhoB
=Tempo de ExecuçãoB
Tempo de ExecuçãoA
=n
1510
=1,5
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?
A é 1,5 vezes mais rápido do que B.
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 sistemaServidores => desempenho de E/S
Tempo decorrido
Para melhorar o desempenhoQue métrica é importanteProcurar 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 programavelocidade 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 CPUA
Velocidade de clock A
∴
10 segundos=Ciclos de clock da CPU A
4 x 109 ciclossegundo
∴
Ciclos de clock da CPU A=4 x 109 ciclossegundo
x 10 segundos ∴
Ciclos de clock da CPU A=4 x 1010 ciclos
Desempenho da CPU e seus Fatores
Tempo de CPU para B:
Tempo de CPUB=1,2 x Ciclos de clock da CPU A
Velocidade de clock B
∴
6 segundos=1,2 x 4 x 1010ciclosVelocidade de clock B
∴
Velocidade de clockB=4,8 x 1010 ciclos6 segundos
∴
Velocidade de clockB=8 x 109 ciclossegundo
= 8 GHz
1ª. In
struçã
o
2ª. In
struçã
o
3ª. In
struçã
o
4ª.
5ª.
6ª.
Tempo
Desempenho da CPU e seus Fatores
Poderíamos considerar que o número de ciclos é igual ao número de instruções?
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 ea 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?
DesempenhoA
DesempenhoB
=Tempo de ExecuçãoB
Tempo de ExecuçãoA
=n∴
(600 x I )ps(500 x I )ps
=1,2
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
Tempo de CPU =Contagem de instruções x CPIvelocidade 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:
Ciclos de clock da CPU =∑i=1
n
(CPI i x Ci )
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
Contagem de instruções, velocidade de clock, CPI
Conjunto de Instruções
Contagem de instruções, CPI
Compilador
Contagem de instruções, CPI
Linguagem de Programação
Contagem de instruções, possivelmente CPI
Algoritmo
Afeta o quê?Componente
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?