organização de computadores - ufjf · desempenho introdução ... se incluirmos processadores...

34
Organização de Computadores Marcelo Lobosco DCC/UFJF

Upload: dinhduong

Post on 08-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Organização de Computadores

Marcelo LoboscoDCC/UFJF

Avaliando e Compreendendo o Desempenho

Aula 09

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?

Próxima Aula...

Avaliando e Compreendendo o DesempenhoAvaliando o DesempenhoBenchmark SPECFalácias e Armadilhas