Escolar Documentos
Profissional Documentos
Cultura Documentos
Faculdade de Computação
Professor: Ricardo Santos
Desempenho
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.
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%.
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
• 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
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.
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
(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 .
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:
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
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
Resposta:
T_clk=50ns
F_clk=1/T_clk=20MHz
CPI=F_clk/MIPS*10^6=20*10^6/10*10^6=2
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