21
Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: [email protected] Página: www.dcomp.ufs.br/index.php/docentes:Andre

Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: [email protected] Página: Andre

Embed Size (px)

Citation preview

Page 1: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Avaliando e Compreendendo o Desempenho - Respostas

Professor: André Luis Meneses SilvaE-mail/msn: [email protected]

Página: www.dcomp.ufs.br/index.php/docentes:Andre

Page 2: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 1

Nosso programa favorito é executado em 10 segundos no computador A, que possui um clock de 4 GHz. Estamos tentando ajudar um projetista de computador a construir uma nova máquina B, que execute esse programa em 6 segundos.

O projetista determinou que um aumento substancial na velocidade de clock é possível, mas esse aumento afetará o restante do projeto da CPU, fazendo com que o computador B exija 1,2 vez mais ciclos de clock do que o computador A para esse programa. Que velocidade de clock devemos pedir para que o projetista almeje?

Page 3: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 1

Primeiro Encontrar o número de ciclos de clock necessários

para o programa A

ciclos 10x 40 segundos

ciclos 10x 4x segunds 10 CPUda clock de Ciclos

segundos

ciclos 10x 4

CPUda clock de Ciclos segundos 10

Clock de Frequência

CPUda clock de Ciclos CPU de Tempo

99A

9

A

A

AA

Page 4: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 1

Calcular o tempo de CPU para B

GHz 8 segundo

ciclos 10x 8

segundos 6

ciclos 10x 40x 1,2 Clock de Frequência

Clock de Frequência

ciclos 10x 40x 1,2 segundos 6

Clock de Frequência

CPUda clock de Ciclosx 1,2 CPU de Tempo

99

B

B

9

B

AB

Page 5: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 2

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 Que máquina é mais rápida para esse

programa e quão mais rápida ela é?

Page 6: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 2

Sabemos que cada computador executa o mesmo número de instruções para o programa. Vamos chamar esse número de I. Primeiro devemos encontrar o número de ciclos de clock do processador para cada computador:

1,2x I CPUda Clock de Ciclos

2,0x I CPUda Clock de Ciclos

B

A

Page 7: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 2

Agora podemos calcular o tempo de CPU para cada processador.

2,1ps Ix 500

ps Ix 600

execução de Tempo

execução de Tempo

CPUda Desempenho

CPUda Desempenho

:A computador o é rápido mais quão odescobrir Para

rápido. mais é A computador o Logo,

ps Ix 600 500x 1,2x I CPU de Tempo

para B forma,mesma Da

ps Ix 500 250psx 1,2x I CPU de Tempo

clock de ciclo do x tempo CPUda Clock de Ciclos CPU de Tempo

A

B

B

A

B

A

AAA

Page 8: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 3

Um projetista de compilador está tentando decidir entre duas seqüências de código para um determinada máquina. Com base 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 9: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 3

Da figura temos: Ciclos de Clock da CPU1 = (2 x 1) + (1 x 2) + (2 x 3) = 10 Ciclos de Clock da CPU2 = (4 x 1) + (1 x 2) + (1 x 3) = 9

Logo CPU2 é mais rápida

Page 10: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 3

1,11... 9

10

CPUda Tempo

CPUda Tempo

CPUda Desempenho

CPUda Desempenhoclock de Velocidade

CPIx instruções de Contagem CPU de Tempo

ou

clock de Ciclo do Tempox CPIx instruções de Contagem CPU de Tempo

2

1

1

2

Válido, pois estamos trabalhando com a mesma cpu, logo, mesma velocidade de clock

Page 11: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 3

CPI1 = Ciclos de Clock da CPU1 = 10 = 2

Contagem de instruções1 5 CPI2 = Ciclos de Clock da CPU2 = 9 = 1,5

Contagem de instruções2 6

Page 12: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 4

Dois compiladores diferentes estão sendo testados para uma máquina de 4 GHz 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 bilhões de instruções da

Classe A, 1 bilhão de instruções da Classe B e 1 bilhão de instruções da Classe C.

O código do segundo compilador usa 10 bilhões de instruções da Classe A, 1 bilhão de instruções da Classe B e 1 bilhã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 13: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 4

rápido maisprograma ogera 1 compilador Logo,

segundos 3,754x10

10x10 2 Execuçãode Tempo

segundos 2,54x10

10x10 1 Execuçãode Tempo

101510x 3)x 1 2x 1 1x (10 CPU2da clock de Ciclos

101010x 3)x 1 2x 1 1x (5 CPU1da clock de Ciclos

xCCPI CPUda clock de Ciclos

clock de Velocidade

CPUda clock de Ciclos execução de Tempo

9

9

9

9

99

99

n

1iii

x

x

Page 14: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 4

rápido. mais oser deveria 2 compilador MIPS,Pelo

320010x 3,75

10x 1) 1 (10 MIPS

280010x 2,5

10x 1) 1 (5 MIPS

10x execução de Tempo

instruções de Contagem MIPS

MIPSo segundo Mas,

6

9

2

6

9

1

6

Page 15: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 5

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?

Page 16: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 5

16 5

80 n

segundos 20 n

segundos 80 25

segundos 20 n

segundos 80 melhoria após execução de Tempo

25 4

100 x vezes,4

x

100

Page 17: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 5

impossível seja, ou 80, n 0.

segundos 20 n

segundos 80 20

segundos 20 n

segundos 80 melhoria após execução de Tempo

20 5

100 x vezes,5

x

100

Page 18: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 6

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?

Page 19: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 6

rápido mais vezes667,16

10

CPU de Tempo

CPU de Tempo

Desempenho

Desempenho

segundos 6 5

5 5 melhoria após execução de Tempo

) melhoria de Quantidade

afetado execução de Tempo(

afetado não execução de Tempo melhoria após execução de Tempo

depois

antes

antes

depois

Page 20: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 7

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 21: Avaliando e Compreendendo o Desempenho - Respostas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: Andre

Questão 7

segundos 83,375x

segundos 16,625y

4y66,5

y1005y166,55

y-100 y - 33,3

y- 100 x 100, y x

5

x y 33,3

) melhoria de Quantidade

afetado execução de Tempo(

afetado não execução de Tempo melhoria após execução de Tempo

segundos 33,3x

x

100

CPU de Tempo

CPU de Tempo

Desempenho

Desempenho3

novo

antigo

antigo

novo