Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três...

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

Transcript of Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três...

Page 1: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Organização de Computadores

Marcelo LoboscoDCC/UFJF

Page 2: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Avaliando e Compreendendo o Desempenho

Aula 10

Page 3: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Agenda

Análise de Desempenho (cont.)Avaliando o DesempenhoBenchmark SPECFalácias e Armadilhas

Page 4: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

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?

Page 5: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Desempenho da CPU e seus Fatores Resposta:Seqüência 1: 2 + 1 + 2 = 5 instruçõesSeqüência 2: 4 + 1 + 1 = 6 instruções

Ciclos de clock da CPU =∑i=1

n

(CPI i x Ci )

Ciclos de Clock da CPU1 = (2 x 1) + (1 x 2) + (2 x 3) = 10 ciclos

Ciclos de Clock da CPU2 = (4 x 1) + (1 x 2) + (1 x 3) = 9 ciclos

Seqüência 2 é mais rápida

Ciclos de clock da CPU = Instruções para um programa x CPI

CPI1 = 10/5 = 2

CPI2 = 9/6 = 1,5

Page 6: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Avaliando Desempenho

A melhor forma de determinar desempenho é executando uma aplicação real Usa programas típicos do workload esperado Ou usa programas típicos da classe de aplicações

esperada

Benchmarks pequenos Ótimos para arquitetos e projetistas Fácil de padronizar Pode ser otimizado / uso de otimizações especiais

Page 7: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Avaliando Desempenho

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 porque 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 8: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Avaliando Desempenho

Diferentes classes e aplicações de computadores exigem diferentes tipos de benchmarks Desktop

Desempenho de CPU ou tarefa específica

Servidores Aplicação Servidores científicos => CPU Outros (Web, BD, arquivos) => Vazão, tempo de resposta

Page 9: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Comparando e Resumindo o Desempenho

1101001Tempo Total (segundos)

1001000Programa 2 (segundos)

101Programa 1 (segundos)

Computador BComputador A

Page 10: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Comparando e Resumindo o Desempenho Quem é mais rápido?

A é 10 vezes mais rápido que B para o programa 1 B é 10 vezes mais rápido que A para o programa 2

Desempenho

Média aritmética:

Média aritmética ponderada: somatório do produto dos pesos pelos tempos de execução

DesempenhoB

DesempenhoA

=Tempo de ExecuçãoA

Tempo de Execução∣B

=1001110

=9,1

MA =1n∑i=1

n

Tempoi

Page 11: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Benchmark SPEC

SPEC (System Performance Evaluation Cooperative) Empresas concordaram sobre um conjunto de

programas e entradas reais Valioso indicador do desempenho (e da tecnologia do

compilador) Benchmarks para CPU, gráficos, computação de alto

desempenho, computação orientada a objetos, aplicações Java, modelo cliente-servidor, e-mail, sistemas de arquivos, servidores Web.

Mais recente: SPEC CPU2006

Page 12: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

SPEC CPU2000

Page 13: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

SPEC CINT2000 e CFP2000

Valores normalizados Resultados divididos pelo desempenho de uma Sun Ultra

5_10 300MHz Razão SPEC Resultados numéricos maiores indicam melhor desempenho

Aumento de desempenho resultado de... Aumento na velocidade de clock Melhorias na organização do processador que diminuem CPI Aprimoramento no compilador

Diminui contagem de instruções Geram instruções com média de CPI mais baixa

Page 14: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

SPEC CINT2000 e CFP2000

Page 15: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

SPEC CINT2000 e CFP2000

Desempenho aumenta quase linearmente com aumento da velocidade do clock Perdas no sistema de memória geralmente

aumentam com velocidades de clock mais alta Cache agressivo Incapacidade do benchmark de exaurir sistema de memória

Pentium 4 é relativamente melhor do que Pentium III nos benchmarks de ponto flutuante ou relativamente pior nos benchmarks de inteiros?

Page 16: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

SPEC CINT2000 e CFP2000

0,390,34CFP2000/MHz

0,360,47CINT2000/MHz

Pentium 4Pentium IIIVelocidade

Considerando único compilador para ambos os processadores CINT2000 => CPI do Pentium 4 é 1,3 vezes melhor que do

Pentium III (0,47/0,36) Pentium 4: Novas instruções de ponto flutuante

(Streaming SIMD Extensions 2) Contagem de instruções e CPI diferem

Page 17: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

SPECweb99

80010,7887PIII Xeon8450/700

67002848P4 Xeon MP6600

42000,7445PIII Xeon6400/700

46152,24210P4 Xeon4600

56983,06425P4 Xeon2650

14541,26121PIII2550

34351,13428PIII2500

18101,4123PIII1650

27651222PIII1550/1000

ProcessadorSistema ResultadoClock (GHz)

# de redes

# de CPUs

# de

unidades de disco

Page 18: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

SPEC CINT2000 e CFP2000

Page 19: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Falácias e Armadilhas

Armadilha: Esperar a melhoria de um aspecto de um computador para aumentar o desempenho por uma quantidade proporcional ao tamanho da 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 5 vezes mais rápido?”

Page 20: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Falácias e Armadilhas

Lei de Amdahl

Tempo de execução após melhoria =Tempo de execução afetado pela melhoriaQuantidade de melhoria

+Tempo de execução não afetado

Tempo de execução após melhoria =80 seg

n+(100−80 )

20 seg =80 seg

n+(20) ∴ 0=

80 segn

Como queremos que o tempo melhore 5 vezes, o novo tempo de execuçãoDeve ser de 20 seg:

Conclusão: A melhoria de desempenho possível com determinado aumento é limitada pela quantidade em que o recurso aprimorado é usado Torne o caso comum rápido

Page 21: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Falácias e Armadilhas

Armadilha: Usar um subconjunto da equação de desempenho como uma métrica de desempenho

MIPS (Milhão de instruções por segundo)

MIPS =Contador de instruções

Tempo de execução x 106

Problemas com MIPS: Não leva em conta o tipo das instruções Computadores com diferentes conjuntos de

instruções terão contagens de instruções diferentes MIPS pode variar inversamente com o desempenho

Page 22: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Falácias e Armadilhas

Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora suponha que, medindo o código gerado por dois compiladores diferentes para o mesmo programa, obtivemos os seguintes dados: Código do compilador 1 gerou 5 bilhões de instruções da classe de instruções A, 1 bilhão de B e 1 bilhão de C; o compilador B gerou 10 bilhões de instruções da classe A, 1 bilhão de B e 1 bilhão de C. Considere o computador com clock de 4GHz. Que seqüência de código será executada mais rápido de acordo com o MIPS? E de acordo com o tempo de execução?

Page 23: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Falácias e Armadilhas

Primeiro encontramos o tempo de execução para cada compilador usando:

Tempo de execução =ciclos de clock da CPUvelocidade de clock

Ciclos de clock da CPU =∑i=1

n

(CPI i x Ci )

Ciclos de clock da CPU1=(5x1+1x2+1x3 )x 109=10 x109

Ciclos de clock da CPU2=(10x1+1x2+1x3 ) x109=15 x109

Tempo de execução1=10x109

4x109=2,5 segundos

Tempo de execução2=15x109

4x109=3,75 segundos

Page 24: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Falácias e Armadilhas

Pelo tempo de compilação, compilador 1 gera o programa mais rápido.

Calculo do MIPS:

MIPS =Contador de instruções

Tempo de execução x 106

MIPS1=(5+1+1 )x109

2,5 x106=2800

MIPS2=(10+1+1 )x109

3,75x 106=3200

Compilador 2 possui MIPS mais alto, porém código do compilador 1 é executado mais rápido

Page 25: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Comentários Finais

Desempenho não deve ser único focoCusto, consumo de energia, segurança,

escalabilidadeCusto depende de vários fatores

Componentes, pesquisa e desenvolvimento, mão de obra, vendas, marketing, margem de lucros

Page 26: Organização de Computadores - UFJF · Falácias e Armadilhas Considere o computador com três classes de instruções e medições de CPI do exemplo do fim da última aula. Agora

Próxima Aula...

O Processador: caminho de dados e controleIntroduçãoConvenções Lógicas de ProjetoConstruindo um Caminho de Dados