Você está na página 1de 7

Universidade Federal de Mato Grosso do Sul

Faculdade de Computação
Professor: Ricardo Santos

Desempenho

1. Existem 2 computadores experimentais diferentes que gostarı́amos de comparar a performance:


M1 e M2. Os seguintes dados foram obtidos destes computadores através de uma análise:

Programa Tempo em M1 Tempo em M2


1 2 segundos 1,5 segundos
2 5 segundos 10 segundos

Qual computador é mais rápido para cada programa e quantas vezes ele é mais rápido?

Resposta:
1
Desempenhox =
T empodeexecucaox
1 1
DP 1M 1 = DP 2M 1 =
2 5
1 1
DP 1M 2 = 3 DP 2M 2 =
2
10
1
DP 1M 2 3
2
2 2 4
= 1 = . = = 1, 33 a mais
DP 1M 1 2
1 3 3
1
DP 2M 1 5 10
= 1 = = 2 a mais
DP 2M 2 10
5
M2 é 1, 25× mais rápida que M1 para o programa 1.
M1 é 2× mais rápida que M2 para o programa 2.

2. Considere os computadores do exercı́cio anterior. Foram tomadas novas medidas de processa-


mento e elas são apresentadas a seguir:

Programa Instruções executadas em M1 Instruções executadas em M2


1 5 × 109 6 × 109

Ache a razão de execução de instruções(instruções por segundo) para cada computador rodando
o programa 1.

Resposta:
5 × 109
RM 1 = = 2, 5 × 109 intruções por segundo.
2
6 × 109
RM 2 = = 3 × 109 intruções por segundo.
2

3. Ainda a respeito do exercicio 1, os computadores M1 e M2 custam US$ 500,00 e US$ 800,00, res-
pectivamente. Se houver necessidade de executar o programa 1 diversas vezes, qual computador
você comprará em grandes quantidades? Por que?
Resposta: O computador a ser comprando em grandes necessidades é o computador M1, porque
mesmo que o computador M2 seja 25% mais rápido que M1,por outro lado, o computador M1
é 60% mais barato que o computador M2. Tomando como referência de orçamento a máquina
mais cara (M2), observamos que, o custo de aquisição de cada 2 máquinas M2, equivale adquirir
3 máquinas M1 e, portanto, conseguiremos 3 execuções do programa 1 ao tempo de 2 segundos
na máquina M1, enquanto que a mesma quantidade de execuções na máquina M2 nos dará o
tempo de 3 segundos. Um ganho de performance de 50%.

4. Considere duas implementações diferentes, P1 e P2, de um mesmo conjunto de instruções. Neste


conjunto de instruções, existem cinco classes de instruções(A, B, C, D e E). A implementação
P1 tem um clock de 4Ghz. A implementação P2 tem um clock de 6Ghz. O número de ciclos de
cada classe de instrução para P1 e P2 é dado pela tabela seguinte:

Classe CPI de P1 CPI de P2


A 1 2
B 2 2
C 3 2
D 4 4
E 3 4

Qual das implementações é mais rápida? Para facilitar o cálculo, assuma que o programa que irá
ser executado em ambas as implementações P1 e P2 tem I instruções e leve em consideração que
o programa de teste a ser rodado tem quantidades equivalentes de instruções de cada classe(ou
seja, o código possui 1/5 de cada classe de instruções A, B, C, D e E). Mostre, detalhadamente,
os cálculos realizados que justificam sua resposta.

Resposta:
P1 = 4 Ghz P2 = 6 Ghz
1
Relação entre frequência e perı́odo: fx =
px
1
Para descobrir o ciclo do clock: px =
fx
Cálculo do tempo de ciclo de clock para ambas as implementações:
1
p1 = = 0, 250 × 10−9 = 250 ps
4 × 10−9
1
p2 = ≈ 0, 166 × 10−9 = 166 ps
6 × 10−9
Cálculo da média de CPI para as implementações(levando em consideração porções iguais de
classes de instruções no programa):
1+2+3+4+3 2+2+2+4+4
MP 1 = = 2, 6 MP 2 = = 2, 8
5 5
Sendo I a quantidade de instruções presentes no programa, temos:
CiclosdeClockP 1 = I × 2, 6
CiclosdeClockP 2 = I × 2, 8
T empodeCpuP 1 = CiclosdeClockP 1 × p1 = I × 2, 6 × 250ps = I × 650ps
T empodeCpuP 2 = CiclosdeClockP 2 × p2 = I × 2, 8 × 166ps = I × 464, 8ps
5. Considere a Tabela 1 informando o desempenho obtido por uma mesma aplicação sob diferentes
configurações de máquinas. Esta tabela apresente o número de processadores das máquinas A
e B, a quantidade de instruções de ponto-flutuante (PF), inteiros (INT), loads e stores (L/S)
e de desvios (BRA). Em seguida, apresenta a CPI de cada classe de instruções. Considere que
cada processador possui frequencia de 2GHz.

Procs PF INT L/S BRA CPI PF CPI INT CPI L/S CPI BRA
A 1 560 × 106 2000 × 106 1280 × 106 256 × 106 1 1 4 2
B 8 80 × 106 240 × 106 160 × 106 32 × 106 1 1 4 2

Tabela 1: Tabela de Desempenho entre duas máquinas A e B com diferentes configurações

Responda as questões que seguem:

• Qual a máquina que apresente melhor desempenho? Quantas vezes é melhor? Qual a sua
eficiência?
• Qual é o valor para a CPI das instruções L/S, se o programa A executa duas vezes mais
rápido?

Resposta:
1 −9 seg=0,5ns
Tempo de ciclo = 2∗10 9 = 0, 5 ∗ 10
Tempo de Execução A= ((560∗1)+(2000∗1)+(1280∗4)+(256∗2)) = (8192∗106 )∗(0, 5∗10−9 ) =
4, 1seg
Tempo de Execução B= ((80∗1)+(240∗1)+(160∗4)+(32∗2)) = (1024∗106 )∗(0, 5∗10−9 ) = 0, 5seg

1 1
Desempenho A= 4,1 = 0, 24 Desempenho B= 0,5 =2
B apresenta melhor desempenho que A em 8,1 vezes. Eficiência de B=8, 1/8 = 1
Tempo de Execução A Melhorado= ((560 ∗ 1) + (2000 ∗ 1) + (1280 ∗ X) + (256 ∗ 2)) = (3072 ∗
106 ) + (1280 ∗ X ∗ 106 ) ∗ (0, 5 ∗ 10−9 ) = 2seg
Tempo de Execução A Melhorado= 0, 64X = 2 − (1, 536)
0,464 4
X=CPI de L/S= 0,64 = 0, 725 Melhoria necessária na CPI de L/S= 0,725 = 5, 52

6. As operações de ponto-flutuante (FP), e em especial a operação de raı́z quadrada de ponto-


flutuante (FPSQRT) são muito utilizadas em aplicações gráficas e possuem implementações
com diferentes desempenhos em diferentes processadores gráficos.
Uma aplicação gráfica que executa operações de ponto-flutuante (FP), inclusive FPSQRT, e
operações inteiras, quando executada em um processador gráfico, é tal que:

Operação Frequência de execução CPI


Todas FP (inclusive FPSQRT) 25% 4
FPSQRT 2% 20
Inteiras ...% 1,33

Uma otimização (A) neste processador reduz o CPI de todas as operações FP para 2,5. Outra
otimização (B) no processador original reduz o CPI das operações FPSQRT para 2.

(a) Qual é o CPI da aplicação no processador original?


(b) Qual é o CPI da aplicação no processador otimizado A?
(c) Qual é o CPI da aplicação no processador otimizado B?
(d) Qual é o speedup obtido pelo melhor processador otimizado, em relação ao processador
original?

Resposta:

(a) CPI = 0, 25 ∗ 4 + 0, 75 ∗ 1, 33 ∼
=2
(b) CPIA = 0, 25 ∗ 2, 5 + 0, 75 ∗ 1, 33 ∼
= 1, 6
(c) CPIB = 0, 25 ∗ 2, 56 + 0, 75 ∗ 1, 33 ∼
= 1, 64
(d) O Sp de A sobre original é: 2/1, 6 = 1, 25

7. Um computador single-core (S) atende à demanda de processamento de uma empresa. No


entanto, cogita-se utilizar um computador dual-core (D) com uma frequência de clock menor,
e assim reduzir o consumo de energia. Suponha que 80% de uma aplicação seja paralelizável.
Utilizando o computador dual-core, desejamos obter, para esta aplicação, o mesmo desempenho
obtido com o computador single-core.

(a) A frequência do clock pode ser reduzida, de (D) para (S), em quanto?

Resposta:
0,8∗CP Ipar +0,2∗CP Iseq
Considerando que o tempo de execução do single-core é TSC = Fclksc . E que o
CP Ipar
0,8∗ +0,2∗CP Iseq
tempo de execução do dual-core é TDC = . Como desejamos que o com-
2
Fclkdc
putador dual-core deve ter o mesmo desempenho do computador singl-core, logo, o tempo de
execução de ambos deve ser o mesmo: TSC = TDC . Assim que:
CP Ipar
0,8∗CP Ipar +0,2∗CP Iseq 0,8∗ +0,2∗CP Iseq 1 0,6
(a) Fclksc = 2
Fclkdc . Então, Fclksc = Fclkdc .

A Frequência de clock do computador dual-core Fclkdc deve ser 60% a frequencia de clock do
computador single-core Fclksc .

8. A tabela a seguir mostra o tempo de execução (em segundos) de programas do benchmark


SPECfp2000 em 2 computadores.

Programa Tempo de execução Tempo de execução


Opteron Itanium
wupwise 51,5 s 56,1 s
ammp 136,0 s 132,0 s
apsi 150,0 s 231,0 s

Uma empresa passa 60% do tempo executando programas semelhantes ao wupwise, 20% do
tempo executando programas semelhantes ao ammp e 20% do tempo executando programas
semelhantes ao apsi.

(a) Qual é o tempo de execução médio dos programas da empresa, utilizando o computador
Opteron?
(b) Qual é o tempo de execução médio dos programas da empresa, utilizando o computador
Itanium 2?
(c) Qual é o computador de melhor desempenho para esta empresa?
(d) Qual é o speedup proporcionado pelo melhor computador em relação ao pior?

Resposta:

(a) Topteron = 0, 6 ∗ 51, 5 + 0, 2 ∗ 13, 6 + 0, 2 ∗ 150 = 88, 1


(b) Titanium = 0, 6 ∗ 56, 1 + 0, 2 ∗ 132 + 0, 2 ∗ 231 = 106, 23
(c) Opteron possui desempenho=0, 01 e Itanium possui desempenho=0, 009. Opteron possui
melhor desempenho.
106,23
(d) Sp = 88,1 = 1, 21

9. Um fabricante de computadores pretende melhorar um processador, adicionando uma unidade


de processamento vetorial no hardware. Quando uma aplicação é executada no modo vetorial,
ela fica 10 vezes mais rápida do que no modo normal de execução.
A porcentagem de vetorização de um programa é a porcentagem do tempo de execução deste
programa que poderia utilizar o modo vetorial de execução.

(a) Qual é a porcentagem de vetorização necessária para obter um speedup de 2?


(b) Qual é o speedup máximo que pode ser obtido?
Qual é a porcentagem de vetorização necessária para obter o speedup de máximo?
(c) Qual é a porcentagem de vetorização necessária para obter a metade do speedup máximo?

Resposta:
1
(a) 2 = p
(1−p)+ 10
, p = 0, 55. Porcentagem de vetorização necessária é ∼ 55%.
(b) Para alcançar o speedup máximo, a porção sequencial do código deve ser 0 (zero). Logo,
(1−p) = 0, p = 1. Significando que 100% do código corresponde a porção vetorial. Então,
Sp = 11 = 10. Então, o speedup máximo será igual a 10.
10

(c) Pela resposta anterior, a metade do speedup máximo será igual a 5. Então, 5 =
1
(1−p)+ p
, p = 0, 808. Significando que a porcentagem de vetorização necessária para
10
obter metade do speedup máximo é ∼ 81%.

10. Um computador é modificado incluindo-se uma nova unidade de ponto-flutuante (FP) que é
capaz de realizar operações de FP 2× mais rápido que a unidade original. Como esta nova
unidade ocupa mais espaço, o caminho (dos fios) para acesso à cache de dados ficou mais longo,
tornando o acesso à cache de dados 1,5 × mais lento que no computador original.
Um programa, executado no computador original, gasta 20% do seu tempo de execução reali-
zando operações de FP e 10% realizando acessos à cache de dados.

(a) Qual é o speedup proporcionado pelo computador modificado, em relação ao original, para
este programa?
Resposta:
0,2∗TF P +0,1∗TCD +0,7∗Tseq
(a) Sp = 0,1∗TF P +0,15∗TCD +0,7∗Tseq = 1, 05

11. Ao paralelizar um programa para um computador paralelo com N processadores:


(a) Qual é o speedup ideal deste computador, em relação a um computador com um único
processador?
(b) Qual(is) fator(es) pode(m) impedir que o speedup ideal seja obtido?

Resposta:
Tseq
(a) Ideal = Tpar = N , Sp ideal é: N .
(b) Porcentagem sequencial do código, stalls no código, capacidade de memória reduzida.

12. Considere que um processador foi melhorado para atuar como servidor web. O novo processador
é cerca de 20 vezes mais rápido em atividades de consultas numa base de dados que o processador
antigo. Sabe-se que 70% do tempo desse servidor é utilizado em consultas na base de dados.
Qual é o speedup do novo processador?

Resposta:

Sp=1/((1-fracao_melhorada)+(Fracao_melhorada/Sp_melhorado))
Sp=1/((1-0.7)+(0.7/20))
Sp=1/0.335=2.985

13. Um programa é executado em 1 segundo em um processador com ciclo de clock de 50 ∗ 10− 9 e


thoughput = 10 MIPS. Qual é a CPI para esse programa?

Resposta:

T_clk=50ns
F_clk=1/T_clk=20MHz
CPI=F_clk/MIPS*10^6=20*10^6/10*10^6=2

14. Considere um programa que executa o seguinte mix de instruções:


Qual é a CPI média e o thoughput em MIPS desse programa considerando uma frequência de
clock de 500MHz?

Resposta:

CPI_media=0.5*3+0.2*4+0.1*2+0.1*2+0.1*2=2.9
MIPS=F_clk/CPI*10^6=500*10^6/2.9*10^6=172
Instruções Frequencia (% sobre o total) CPI
ALU 50 3
LOAD 20 4
STORE 10 2
BRANCH 10 2
JUMP 10 2

Tabela 2: Distribuição de instruções e CPIs de um programa

Você também pode gostar