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
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?
Questão 1

Primeiro

Encontrar o número de ciclos de clock necessários
para o programa A
T empode CPUA 
Ciclos de clock da CPUA
Frequência de ClockA
Ciclos de clock da CPUA
10 segundos 
ciclos
9
4 x 10
segundos
Ciclos de clock da CPUA  10 segunds x 4 x 109
ciclos
 40 x 109 ciclos
segundos
Questão 1

Calcular o tempo de CPU para B
1,2 x Ciclos de clock da CP UA
T empode CP UB 
Frequência de ClockB
1,2 x 40 x 109 ciclos
6 segundos 
Frequência de ClockB
1,2 x 40 x 109 ciclos 8 x 109 ciclos
Frequência de ClockB 

 8 GHz
6 segundos
segundo
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
programa e quão mais rápida ela é?
esse
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:
Ciclos de Clock da CPU A  I x 2,0
Ciclos de Clock da CPU B  I x 1,2
Questão 2

Agora podemos calcular o tempo de CPU para
cada processador.
T empode CP UA  Ciclos de Clock da CP UA x tempodo ciclo de clockA
T empode CP UA  I x 1,2 x 250ps 500 x I ps
Da mesmaforma,para B
T empode CP UB  I x 1,2 x 500  600 x I ps
Logo,o comput adorA é mais rápido.
P ara descobrir o quão mais rápido é o comput adorA :
Desempenhoda CP UA T empode execuçãoB 600 x I ps


 1,2
Desempenhoda CP UB T empode execuçãoA 500 x I ps
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?
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
Questão 3
T empode CPU  Contagemde instruçõesx CPI x T empodo Ciclo de clock
ou
Contagemde instruçõesx CPI
T empode CPU 
Velocidade de clock
Válido,
pois
Desempenhoda CPU2 T empoda CPU1 10

  1,11... estamos
Desempenhoda CPU1 T empoda CPU2 9
trabalhando com
a mesma cpu,
logo,
mesma
velocidade
de
clock
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
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?
Questão 4
T em pode execução 
Ciclos de clock da CP U
Velocidade de clock
Ciclos de clock da CP U 
n
 CP I xC
i 1
i
i
Ciclos de clock da CP U1 (5 x 1  1 x 2  1 x 3) x 109  10x109
Ciclos de clock da CP U2  (10 x 1  1 x 2  1 x 3) x 109  15x109
10x109
T em pode Execução1 
 2,5 segundos
4x109
10x109
T em pode Execução2 
 3,75segundos
4x109
Logo,compilador1 gera o programamais rápido
Questão 4
Mas, segundo o MIP S
Cont agemde inst ruções
MIP S
T empode execução x 106
(5  1  1) x 109
MIP S1 
 2800
6
2,5 x 10
(10  1  1) x 109
MIP S2 
 3200
6
3,75x 10
P elo MIP S,compilador2 deveria ser o mais rápido.
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?
Questão 5
100
100
 4 vezes,x 
 25
x
4
80 segundos
T empode execuçãoapós melhoria
 20 segundos
n
80 segundos
25 
 20 segundos
n
80
n
 16
5
Questão 5
100
100
 5 vezes,x 
 20
x
5
80 segundos
T empode execuçãoapós melhoria
 20 segundos
n
80 segundos
20 
 20 segundos
n
0. n  80, ou seja, impossível
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?
Questão 6
T empode execução após melhoria T empode execução não afet ado
(
T empode execução afet ado
)
Quantidadede melhoria
 5
T empode execução após melhoria 5     6 segundos
 5
Desempenhodepois T empode CP Uantes 10


 1,667 vezesmais rápido
Desempenhoantes T empode CP Udepois 6
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?
Questão 7Desempenho
3
novo
Desempenhoantigo

T empode CP Uantigo
T empode CP Unovo
100

x
x  33,3segundos
T empode execução após melhoria T empode execução não afetado
T empode execução afetado
(
)
Quantidadede melhoria
x
33,3 y   
5
x  y  100,x  100 - y
100- y
33,3- y 
5
166,5 5y  100  y
66,5  4y
y  16,625segundos
x  83,375segundos
Download

27/05/2008 – Avaliando Desempenho – Respostas