35
1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

Embed Size (px)

Citation preview

Page 1: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

1

SSC114 Arquitetura de Computadores

Avaliação de DesempenhoAula 1522/10/10 (Turmas 1 e 2)

Profa. Sarita

Page 2: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

2

Desempenho

Meça, informe e resuma Faça escolhas inteligentes Veja através da propaganda de marketing Questões:

Por que alguns hardwares são melhores do que outros para diferentes programas?

Quais 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?

Page 3: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

3

Qual destes aviões possui o melhor desempenho?

Qual avião possui o melhor desempenho? Depende do que se considera desempenho

Pode ser: maior velocidade, maior autonomia e maior capacidade

O quão mais rápido é o Concorde comparado ao 747?

O quão maior é o 747 do que o Douglas DC-8?

Page 4: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

4

Tempo de resposta (latência) Quanto tempo leva para meu trabalho ser realizado? Quanto tempo leva para realizar um trabalho? Quanto tempo preciso esperar para a consulta ao banco de dados?

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?

Se atualizarmos uma máquina com um novo processador, em que melhoramos?

Se incluirmos processadores em um sistema que usa múltiplos processadores para tarefas distintas, por exemplo, busca na

WEB?

Desempenho do computador: TEMPO, TEMPO, TEMPO

Page 5: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

5

Para um programa sendo executado na máquina X,

DesempenhoX = 1 / Tempo_execuçãoX “X é n vezes mais rápido do que Y”

DesempenhoX / DesempenhoY = n Problema:

a máquina A executa um programa em 20 segundos a máquina B executa o mesmo programa em 25

segundos O quanto A é mais rápido que B?

Definição de desempenho do livro

Page 6: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

6

Tempo de execução

Tempo decorrido conta tudo (acessos a disco e a memória, E/S etc.) um número útil, mas normalmente não é ideal para fins de

comparação

Tempo de CPU não conta E/S ou tempo gasto executando outros programas pode ser dividido em tempo de sistema e tempo de usuário

Nosso foco: tempo de CPU do usuário tempo gasto executando as linhas de código que estão “em”

nosso programa

Page 7: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

7

Ciclos de clock Em vez de informar o tempo de execução em

segundos, normalmente usamos ciclossegundos = ciclos segundosprograma programa ciclos

Os “tiques” de clock indicam quando iniciar as atividades (uma abstração):

tempo

tempo de ciclo = tempo entre os tiques = segundos por ciclo velocidade de clock (freqüência) = ciclos por segundo (1Hz. = 1 ciclo/segundo) Um clock de 4Ghz possui um tempo de ciclo de

Page 8: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

8

Como melhorar o desempenhosegundos = ciclos segundosprograma programa ciclos

Portanto, para melhorar o desempenho (tudo mais sendo igual), você pode (aumentar ou diminuir?)

________ o número de ciclos necessários para um programa, ou________ o tempo de ciclo de clock ou, dito de outra maneira,________ a velocidade de clock.

diminuir

diminuir

aumentar

Page 9: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

9

Quantos ciclos são necessáriospara um programa? Poderíamos considerar que o número de ciclos é igual

ao número de instruções

1ª. In

stru

ção

2ª. In

stru

ção

3ª. In

stru

ção

4ª.

5ª.

6ª.

Tempo

Essa suposição é incorreta; diferentes instruções levam a diferentes períodos em diferentes máquinas.Por quê? Dica: Lembre-se de que essas são instruções de máquina, não linhas de código C.

Page 10: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

10

Diferentes números de ciclospara diferentes instruções

A multiplicação leva mais tempo do que a adição As operações de ponto flutuante levam mais tempo do que as

operações de inteiros Acessar a memória leva mais tempo do que acessar os

registradores Importante: mudar o tempo de ciclo normalmente muda o

número de ciclos necessários para várias instruções

Page 11: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

11

Agora que entendemos os ciclos Um determinado programa exigirá

um determinado número de instruções (instruções de máquina) um determinado número de ciclos um determinado número de segundos

Temos um vocabulário que relaciona essas quantidades: tempo de ciclo (segundos por ciclo) velocidade de clock (ciclos por segundo) CPI (ciclos por instrução) — uma aplicação com excessivo uso

de ponto flutuante pode ter uma CPI mais alta MIPS (milhões de instruções por segundo) — isso seria mais

alto para um programa usando instruções simples

Page 12: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

12

Desempenho

O desempenho é determinado pelo tempo de execução

Qualquer uma das outras variáveis igualam o desempenho? número de ciclos para executar o programa? número de instruções no programa? número de ciclos por segundo? número médio de ciclos por instrução? número médio de instruções por segundo?

Armadilha comum: pensar que uma das variáveis é indicadora do desempenho, quando na realidade não é.

Page 13: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

13

Exemplo de CPI 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

A máquina B tem um tempo de ciclo de clock de 500 ps e uma CPI de 1,2

Qual máquina é mais rápida para esse programa e o quanto?

Se duas máquinas possuem a mesma ISA, qual de nossas quantidades (por exemplo, velocidade de clock, CPI, tempo de execução, número de instruções, MIPS) será sempre idêntica?

Page 14: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

14

Exemplo de número de instruções

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.

Qual seqüência será mais rápida? O quanto mais rápida? Qual

é a CPI para cada seqüência?

Page 15: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

15

Exemplo de MIPS

Dois compiladores diferentes estão sendo testados para uma máquina de 4GHz com três classes diferentes de instruções: Classe A, Classe B e Classe C, e elas exigem um, dois e três ciclos, respectivamente. Ambos os compiladores são usados para produzir código para um grande software.

O código do primeiro compilador usa 5 milhões de instruções da Classe A, 1 milhão de instruções da Classe B e 1 milhão de instruções da Classe C.

O código do segundo compilador usa 10 milhões de instruções da Classe A, 1 milhão de instruções da Classe B e 1 milhão de instruções da Classe C.

Que seqüência será mais rápida de acordo com o MIPS? Que seqüência será mais rápida de acordo com o tempo de

execução?

Page 16: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

16

Experiência

Telefone para um grande vendedor de computadores e diga que você está com dificuldade de decidir entre dois computadores diferentes, especificamente, que está confuso quanto aos pontos fortes e fracos dos processadores (por exemplo, entre Pentium 4 2Ghz e Celeron M 1.4Ghz)

Que tipo de resposta você provavelmente receberá? Que tipo de resposta você poderia dar a um amigo

com a mesma dúvida?

Page 17: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

17

Lei de Amdahl

Tempo de execução após melhoria =Tempo de execução não afetado + (Tempo de execução afetado / Quantidade de

melhoria)

Exemplo:“Suponha que um programa seja executado em 100 segundos em uma máquina, com multiplicação responsável por 80 segundos desse tempo. O quanto precisamos melhorar a velocidade da multiplicação se queremos que o programa seja executado 4 vezes mais rápido?”

Que tal torná-lo 5 vezes mais rápido?

Princípio: Torne o caso comum rápido

Page 18: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

18

Exemplo

Suponha que melhoramos uma máquina fazendo todas as instruções de ponto flutuante serem executadas cinco vezes mais rápido. Se o tempo de execução de algum benchmark antes da melhoria do ponto flutuante é 10 segundos, qual será o aumento de velocidade se metade dos 10 segundos é gasta executando instruções de ponto flutuante?

Estamos procurando um benchmark para mostrar a nova unidade de ponto flutuante descrita acima e queremos que o benchmark geral mostre um aumento de velocidade de 3 vezes. Um benchmark que estamos considerando é executado durante 100 segundos com o hardware de ponto flutuante antigo. Quanto do tempo de execução as instruções de ponto flutuante teriam que considerar para produzir nosso aumento de velocidade desejado nesse benchmark?

Page 19: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

19

Lembre

O desempenho é específico a um determinado programa O tempo de execução total é um resumo consistente do

desempenho Para uma determinada arquitetura, os aumentos de

desempenho vêm de: aumentos na velocidade de clock (sem efeitos de CPI adversos) melhorias na organização do processador que diminuem a CPI melhorias no compilador que diminuem a CPI e/ou a contagem

de instruções escolhas de algoritmo/linguagem que afetam a contagem de

instruções Armadilha: Esperar que a melhoria em um aspecto do

desempenho de uma máquina afete o seu desempenho total

Page 20: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

20

Etapas a serem consideradas na Avaliação de Desempenho

1. Estudar o sistema e definir os objetivos 

2.  Determinar os serviços oferecidos pelo sistema 

3.  Selecionar métricas de avaliação

4.  Determinar os parâmetros que afetam o

desempenho do sistema

5.  Determinar o nível de detalhamento da análise 

6.  Determinar a Técnica de Avaliação apropriada

Page 21: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

21

Etapas a serem consideradas na Avaliação de Desempenho

7.  Determinar a carga de trabalho característica 

8.  Realizar a avaliação e obter os resultados

9.  Analisar e interpretar os resultados

10. Apresentar os resultados

 

As etapas apresentadas nem sempre são executadas

linearmente como apresentado nesta lista

Page 22: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

22

Técnicas de Avaliação de Desempenho

Protótipos

Benchmarcks

Coleta de Dados

Rede de Filas

Redes de Petri

Statecharts

ModelagemAferição

Sistema Medições Dados

Page 23: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

23

Técnicas de Aferição

Page 24: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

24

Técnicas de Avaliação de Desempenho

Protótipos

Benchmarcks

Coleta de Dados

Rede de Filas

Redes de Petri

Statecharts

ModelagemAferição

Modelo SoluçãoMétodos Analíticos

Simulação

Sistema

Page 25: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

25

Técnicas de Modelagem

Uso Apropriado

Uso Secundário

Menor com-plexidade do

Modelo

Grande n de Informações

Maior com-plexidade do

Modelo

Modelos Analíticos Simulação

Page 26: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

26

Benchmarks A melhor forma de determinar desempenho é executando uma

aplicação real Usa programas típicos do workload esperado Ou, típico da classe de aplicações esperada — por exemplo,

compiladores/editores, aplicações científicas, design gráfico etc. Benchmarks pequenos

ótimos para arquitetos e projetistas fácil de padronizar pode ser forçado

SPEC (System Performance Evaluation Cooperative) as empresas concordaram sobre um conjunto de programas e entradas

reais valioso indicador do desempenho (e da tecnologia do compilador) ainda pode ser forçado

Page 27: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

27

Programas de Avaliação

Benchmarks de brinquedo: tipicamente entre 10 e 100 linhas de código para produzir um resultado previamente conhecido. Exemplos são o “Crivo de Eratóstenes”, Quicksort e Puzzle. São fáceis de digitar e executam em quase qualquer computador.

Benchmarks sintéticos: tentam imitar a freqüência de execução média das instruções esperada em uma aplicação de um determinado tipo, mas não são extratos de programas reais. Whetstone (ponto flutuante) e Dhrystone (inteiro) são os exemplos mais populares.

Page 28: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

28

Programas de Avaliação

Suítes de Avaliação: coleção de programas de avaliação que tentam medir o desempenho dos processadores para uma variedade de aplicações.

O exemplo de maior sucesso é o SPEC, que possui versões inteiras e de ponto flutuante, com edições em 1989, 1992, 1995 e 2000.

Estão divididos em duas grandes categorias: inteiros e de ponto flutuante.

O SPEC CPU2000 é constituído por 11 programas de avaliação inteiros (CINT2000) e 14 de ponto-flutuante (CFP2000). http://www.spec.org

Page 29: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

29

SPEC CPU2000

Page 30: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

30

Jogos de benchmark A Intel reconheceu, envergonhada, na sexta-feira que um bug em um

programa de software conhecido como um compilador levou a empresa a anunciar uma velocidade 10 por cento maior dos seus chips microprocessadores em um benchmark da área. Entretanto, os analistas do setor disseram que o erro de codificação foi um comentário infeliz sobre uma prática comum de “mentir” nos testes de desempenho padronizados. O erro foi atribuído à Intel dois dias atrás pela concorrente Motorola, em um teste conhecido como SPECint92. A Intel reconheceu que havia “otimizado” seu compilador para melhorar suas pontuações de teste. A empresa também havia dito que não gostava da prática, mas que foi forçada a fazer as otimizações por que seus concorrentes estavam fazendo o mesmo. No coração do problema da Intel está a prática de “ajustar” os programas de compilador para reconhecerem certos problemas de computação no teste e, então, substituir por partes especiais do código escritas a mão.

Sábado, 6 de janeiro de 1996 — New York Times

Page 31: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

31

SPEC ‘89 “Melhorias” e desempenho de compilador

Taxa d

e d

esem

pen

ho S

PEC

Compilador

Compilador melhorado

Page 32: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

32

SPEC 2000 Dobrar a velocidade de clock dobra o desempenho? Uma máquina com uma velocidade de clock mais lenta pode ter um

desempenho melhor?

Page 33: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

33

Técnicas de Modelagem

Page 34: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

34

Modelagem Analítica

Teoria das filas Filas associadas a recursos Caracterização:

Processo de chegada Processo de atendimento Número de servidores Tamanho máximo da fila Política de atendimento da fila

É uma técnica aproximada, ou seja, aproxima a realidade por um modelo;

Se o modelo for simples e a aproximação boa, é possível avaliar facilmente compromissos entre alternativas;

Page 35: 1 SSC114 Arquitetura de Computadores Avaliação de Desempenho Aula 15 22/10/10 (Turmas 1 e 2) Profa. Sarita

35

Simulação

Simulação de eventos discretos; Cada evento (ex.: chegada de usuário, término de

serviço, etc.) é tratado quando do instante de sua ocorrência;

Simula o comportamento de um sistema real;