Академический Документы
Профессиональный Документы
Культура Документы
DESEMPENHO
Desempenho/Performance
Tempo de Execuo
Ciclos de Clock
Escala de integrao e Desempenho
CPI (Ciclos de Clock por Instruo)
Nmero de Instrues
MIPS (Milhes de Instrues por Segundo)
Benchmarks
Lei de Moore
Lei de Amdahl
Exerccios e Exemplos Resolvidos
Gargalo de Von Newmann
Influncia dos Dispositivos de I/O, memria e Barramentos
Como melhorar a arquitetura
Exerccios
Desempenho/Performance
A medida de desempenho importante para:
Reportar e sumarizar performance
Marketing
Comparao de arquiteturas
Questes:
Por que alguns hardwares so melhores que outros para diferentes
programas?
Quais fatores de desempenho so ligados ao hardware? (i.e., preciso
de uma nova mquina ou de um novo sistema operacional?)
Como o conjunto de instrues pode afetar o desempenho da
mquina?
O que significa dizer que o computador A N vezes mais rpido que o
computador B?
A viso de um usurio normal e a viso de um administrador da
Amazon.com (p. ex.) seriam a mesma?
Desempenho/Performance
Qual desses avies tem o melhor desempenho?
arquiteturas diferentes?
Que parmetros devem ser utilizados?
Como isolar o efeito de cada parmetro ou mtrica usada?
Desempenho do Computador
Tempo de Resposta (latncia)
Quanto tempo leva minha tarefa para rodar?
Quanto tempo leva a execuo da minha tarefa?
Quanto tempo devo esperar para uma consulta a uma base?
Vazo (Throughput)
Quantas tarefas a mquina pode rodar por vez?
Qual a taxa de execuo?
Quanto trabalho feito?
Um upgrade em uma mquina com um novo processador
melhora o qu?
Uma nova mquina na rede do laboratrio melhora o
qu?
Tempo de Execuo
Tempo gasto
Leva em conta tudo (acesso a disco e memria, I/O , etc.)
Um nmero til, mas s vezes no to bom para propsitos de
comparao
Tempo de CPU (CPU time)
No conta tempo de I/O nem tempo gasto em outros programas
Pode ser dividido em tempo do sistema e tempo do usurio
NOSSO FOCO: Tempo de CPU do usurio
Tempo gasto apenas na execuo das instrues que esto dentro
do programa (cdigo compilado)
Definio de Desempenho
Para algum programa rodando na mquina X:
1
=
X N vezes mais rpida que Y"
OU
=
Problema:
Mquina A roda um programa em 20s
Mquina B roda o mesmo programa em 25s
Como comparar os desempenhos?
Ciclos de Clock
Para avaliarmos um tempo de execuo levando em
1
=
instrues?
nmero de instrues.
Lembre-se que estas so instrues de mquina, no
linhas de cdigo em C.
Variabilidade do CPI
Multiplicao gasta mais tempo que adio
Operaes de ponto flutuante so mais lentas que as de
inteiros
Acesso memria gasta mais tempo que acesso a
registradores
Mudanas no tempo de ciclo podem alterar o nmero de
ciclos exigidos para executar cada uma das instrues
Exemplo
Um programa roda em 10s no computador A, o qual tem
Soluo:
1
=
Para o computador A:
1
10 =
400 106
= 10 400 106
Para o computador B:
1
6 =
1
6 = 1,2
1,2
=
6
1,2
=
10 400 106 = 800 106
6
=
quantidades:
Tempo de ciclo (segundos / ciclo)
Taxa de clock (ciclos / segundo)
CPI (Ciclos Por Instruo cycles per instruction) . Uma aplicao
Desempenho
Desempenho est intimamente ligado ao tempo de
execuo
Quais outras variveis tambm medem desempenho?
No. de ciclos para executar um programa?
No. de instrues um programa?
No. de ciclos por segundo?
No. mdio de ciclos por instruo (CPI)?
Escala e Desempenho
Em Novembro de 1971, a Intel lanou o primeiro
CPUDB
Exemplo de CPI
Suponha que existam 2 implementaes possveis para
mais rpida?
2. Se 2 mquinas tiverem o mesmo ISA, qual das
variveis (clock rate, CPI, tempo de execuo, No.de
instrues, MIPS) ser sempre idntica?
C
A 2a. sequncia tem 6 instrues: 4 de A, 1 de B e 1 de C
Exemplo MIPS
Dois diferentes compiladores esto sendo testados para
MIPS?
2. Qual a mais rpida de acordo com o tempo de
execuo?
Benchmarks
Desempenho melhor estimado usando-se uma aplicao real
Usar programas com workloads tpicos
Ou, usar classes de aplicaes esperadas tpicas, i.e. compiladores, editores,
aplicaes cientficas, grficas, etc.
Pequenos benchmarks
Interessantes para arquitetos e designers, simples para padronizar e seu uso
livre por todos. Ex.: Sieve de Eratosthenes, bom para comparar o tempo de
execuo de vrios compiladores no mesmo computador.
SPEC (System Performance Evaluation Cooperative)
...founded in 1988 by a small number of workstation vendors who realized
that the marketplace was in desperate need of realistic, standardized
performance tests (http://www.spec.org/spec/spec.html)
1 gerao SPEC CPU89
Fabricantes entraram num acordo para definir um conjunto de programas e
entradas reais para avaliao
Usado livremente por todos
Indicador valioso de desempenho (e tecnologia de compilao)
Benchmarks
SPEC CPU2006 (Standard Performance Evaluation
Corporation)
URL: http://www. spec.org/cpu2006/results/
5 gerao de pacotes SPEC
Aplicaes com uso intensivo do processador
17 programas FP (C, C++, Fortran) e 12 INT (C, C++)
SPEC89
Melhorias no compilador vs desempenho
SPEC95
SPEC95
Dobrar a taxa de clock implica em dobrar o desempenho?
possvel que uma mquina com um clock mais baixo
Lei de Moore
Aumento na densidade de componentes no chip
Relao indireta com o desempenho
Gordon Moore: cofundador da Intel
Nmero de transistores num chip dobrar a cada ano
Desde os anos 70, o desenvolvimento tem sido um pouco mais lento
No. de transistores 2x a cada 18 meses (1,5 ano)
Segundo a wikipedia, aproximadamente a cada 2 anos
Custo do chip tem se mantido o mesmo
Maior densidade empacotamento. Menor distncia para sinais
eltricos. Maior velocidade da lgica. Desempenho maior.
Menor tamanho. Maior flexibilidade
Menos conexes. Mais confiabilidade
A lei de Moore passou a ser usada como guia na indstria de
Lei de Moore
Escala
Lei de Amdahl
Gene Amdahl (1967)
usada para se encontrar a mxima melhoria no
Lei de Amdahl
Fonte: wikipedia
Lei de Amdahl
Calculo do speedup:
=
Ou, alternativamente:
=
O clculo do speedup geralmente envolve duas grandezas:
Speedup da melhoria: a acelerao somente do trecho melhorado em
relao ao seu tempo original. Por exemplo: Com uma nova unidade de
acelerao de operaes de ponto flutuante, a execuo desse tipo de
operao em um determinado programa passou de 5 segundos para 2
segundos. Assim: = 5 2 = 2,5
Frao da melhoria: a frao do tempo de computao na mquina
original que pode ser convertida para tirar proveito da melhoria. Por exemplo:
20 segundos do tempo de execuo de um programa que leva 60 segundos
gasto exclusivamente com operaes de ponto flutuante. Se melhorarmos
a unidade de ponto flutuante, a frao afetada ser de: =
20
60 = 0,333
A sempre menor do que 1 e o sempre
maior que 1.
Lei de Amdahl
Com a definio de e , temos as seguintes
=
=
1
1 +
Exemplo 1
Suponha que estejamos considerando um aperfeioamento para o processador de um sistema servidor usado
no servio Web. A nova CPU 10 vezes mais rpida em
computao na aplicao do servio Web que o
processador original. Supondo que a CPU original esteja
ocupada com a computao 40% do tempo e que fique
esperando por E/S durante 60% do tempo, qual ser o
speedup global obtido com a troca do processador?
Soluo:
Dados:
= 40% = 0,4
= 10
Speedup global:
1
=
=
=
1,56
0,4
0,4 0,64
1 0,4 +
0,6 +
10
10
Exemplo 2
Suponha que um programa roda em 100s em uma
mquina, com operaes de multiplicao responsveis
por 80s deste tempo. Quanto se deve aumentar a
velocidade da multiplicao para que o programa rode 4
vezes mais rpido? E para faz-lo rodar 5 vezes mais
rpido?
Soluo:
Se speedup global for 4:
4=
0,8
1 0,8 +
1
0,2 +
0,8
0,8
1
0,2 +
= = 0,25
4
0,8
= 0,05
0,8
=
= 16
0,05
Soluo
Se speedup global for 5: impossvel! O speedup da
Soluo:
=
1
0,8
0,2+
1
0,2+
0,8
0,2 +
0,8
0,8
0,8
0,2
10,2
0,8
10,2
Mais Exemplos
Suponha que queremos que uma mquina execute todas
Soluo:
1
1
=
=
=
1,667
0,5 0,5 + 0,1 0,6
1 0,5 +
5
Speedup mximo:
O speedup global mximo encontrado considerando que a
parte melhorada vai executar em tempo zero. Neste caso o
mximo seria 2.
claro que nada pode ser realizado em tempo zero. Mas
suponha o speedup da melhoria seja 1000.
1
1
1
=
=
=
0,5
0,5 + 0,0005 0,5005
1 0,5 +
1000
1,998
Mais Exemplos
Ns agora usamos um benchmark para avaliar a unidade
Soluo:
=
3=
1
1 +
1
1 +
1
=
4
1
5
5
3=
5 4
5
5 4 =
3
5 10
4 = 5 =
3
3
10
=
= 0,8333 = 83,3%
12
Gargalo de desempenho
Velocidade do Processor aumenta
Capacidade da Memria aumenta
Ganho de velocidade da memria << Ganho da
velocidade da CPU
Conhecido como Gargalo de von Neumann
Outros fatores de impacto (menos dependentes do HW)
Compilador
SO (multitarefas, escalonamento, etc)
Mquina virtual
I/O
CPU vs Memria
Solues
(para o gargalo de Von Newmann)
Aumentar o nmero de bits recuperados / unidade de
tempo
Lembram-se da vazo (throughput)?
Fazer a DRAM ficar mais larga ao invs de mais profunda
Dispositivos de I/O
Perifricos com demandas intensivas de I/O
Altssima vazo de dados
Processadores poderiam manipular isso (ex. placas
grficas)
Movimentao de dados um problema
Solues:
Caching
Buffering
Barramentos de alta velocidade
Estruturas de barramentos mais elaboradas
Variao na configurao de processadores
DMA
Hoje SATA j
atingiu 6Gbps
(Ver 3.0) e
16Gbps (Ver 3.2)
QuickPath Interconnect
Arquitetura e Organizao
CPU
Densidade de Chip aumenta
Mais cache on chip acesso mais rpido cache maior custo.
Retornos no to grandes
Organizao interna da complexidade de processadores
Nvel de paralelismo a ser tratado
Ganhos obtidos podem ser significativamente modestos
Benefcios da cache so limitados
Aumentar o clock implica em complicar a dissipao de
potncia
Alguns limites da fsica estaro sendo atingidos em pouco tempo
Computao quntica?
Outras solues?
Observaes Finais
Desempenho especfico para determinado(s)
programa(s)
Tempo Total de Execuo um sumrio consistente de medida
de desempenho global
aumentado:
Aumentando a taxa de clock (desconsiderando efeitos no CPI)
funcionais)
Exerccios
1) Um programa de benchmark executado em um
processador a 40 MHz. O programa consiste das seguintes
instrues:
Tipo de instruo
Quantidade de instrues
CPI
Aritmtica de inteiros
45.000
Transferncia de dados
32.000
Ponto flutuante
15.000
Transferncia de controle
8.000
Exerccios
2) Os primeiros exemplos de projetos CISC e RISC so o VAX
11/780 e o IBM RS/6000, respectivamente. Usando um
programa de benchmark tpico, o resultado so as seguintes
caractersticas de mquina:
Processador
Frequncia de clock
Desempenho
Tempo de CPU
VAX 11/780
5 MHz
1 MIPS
12 segundos
IBM RS/6000
25 MHz
18 MIPS
1 segundos
Exerccios
3) No exerccio 1, uma melhoria na arquitetura da unidade
de ponto flutuante reduz metade o tempo de execuo
desse tipo de operao. Qual ser o speedup final para o
programa?
Exerccios
5) Um software de busca de padres em cadeias de DNA
de protenas leva 4 dias de tempo de execuo em um
determinado computador. Desse tempo de execuo, 20%
gasto com instrues de inteiros e 35% gasto realizando
operaes de E/S. Qual a melhor opo para reduzirmos
o tempo de execuo:
A. Otimizao do compilador que reduz o nmero de
instrues de inteiros em 25% (assuma que todas as
instrues de inteiros tem o mesmo CPI).
B. Otimizao do hardware que reduz a latncia de cada
operao de E/S de 6s para 5s.
Exerccios
6) Assuma que o clculo da raiz quadrada responsvel
por 20% do tempo gasto por um benchmark grfico.
Considere as seguintes alternativas:
i. Tornar o clculo da raiz quadrada 10 vezes mais
rpido;
ii. Tornar todas as instrues de ponto flutuante 60% mais
rpidas.
As instrues de ponto flutuante perfazem 50% do tempo
total de execuo. Compare as duas alternativas.