Desempenho
do computador
Prof. Henrique Leitão
Prezado(a) aluno(a),
A sala de aula virtual é uma extensão da sala de aula presencial e,
portanto, o Regulamento da Organização Didática (ROD) é o
documento que rege a sua dinâmica. Ao acessar a sala de aula virtual,
você estará ciente de que a violação dessas regras é passível de
medidas disciplinares, tanto no âmbito do IFCE como no âmbito civil e
criminal. Para que possamos manter o ambiente harmônico, respeitoso
e seguro entre todos, é necessário observar algumas regras de
conduta, a saber:
Não compartilhe a gravação das aulas ou os materiais
Aulas Remotas disponibilizados pelo professor
Você não deve copiar, distribuir, modificar, reproduzir, republicar,
transmitir ou comercializar qualquer informação, texto e/ou
documentos contidos nas aulas em qualquer meio eletrônico, nem criar
qualquer trabalho utilizando imagens, textos ou documentos dessas
aulas sem ter por escrito o prévio consentimento dos envolvidos na
exposição.
Tenha tolerância e paciência com possíveis falhas tecnológicas e
eventuais limitações pessoais
Falhas técnicas poderão acontecer, seja com o professor, com colegas
ou com você mesmo. Tenha paciência, procure manter a calma e
contornar o problema com discrição e gentileza.
Aulas Remotas
Aulas Remotas
Por que alguns hardwares são
melhores do que outros para
diferentes programas?
Que fatores do desempenho de
sistema são relacionados ao
hardware? (nova máquina ou
Desempenho novo sistema operacional?)
Como o conjunto de instruções
da máquina afeta o
desempenho?
Intel 4004
11/971
Primeiro microprocessador em um único chip do mundo
2.300 transistores
clock de 740 KHz
60.000 instruções por segundo
dissipava 0,5 W.
Escala e
Desempenho Os chips microprocessadores atuais
bilhões de transistores
múltiplos núcleos de processamento,
clocks da ordem de Giga Hertz
desempenho superior a 4 milhões de vezes ao do 4004
Computação móvel, ubíqua, sensores.
Como comparar arquiteturas tão diferentes?
[Link]
Escala da
Tecnologia (CPUDB)
Frequência de Clock
(CPUDB)
CPUDB
CPUDB – Exemplo
Intel Core i7
Qual destes aviões possui o melhor desempenho?
Desempenho
ü Qual avião possui o melhor desempenho?
ü O quanto mais rápido é o Concorde comparado com o 747?
ü O quanto maior é o 747 do que o Douglas DC-8?
ü Como comparar o desempenho de arquiteturas diferentes?
ü Que parâmetros devem ser utilizados?
Desempenho
ü Como isolar o efeito de cada parâmetro ou métrica usada?
Tempo de resposta/execução
Métricas de
Desempenho Tempo de vazão (throuhput)
Um servidor de um banco de dados teria mais interesse
no tempo de resposta ou a vazão?
Métricas de
Desempenho Uma aplicação de calculos metereológicos teria mais
interesse no tempo de resposta ou a vazão?
Tempo de Resposta/Execucão (latência)
Quanto tempo leva minha tarefa para rodar?
Desempenho Quanto tempo leva a execução da minha tarefa?
computacional Quanto tempo devo esperar para uma consulta a
uma base de dados?
Relação da performance com o tempo de execução
Tempo de Execução Comparando a performance de dois computadores
Se um computador A executa um programa em 10
segundos e um computador B executa o mesmo
programa em 15, quanto A é mais rápido do que B?
Tempo de Execução
Vazão (Throughput)
Quantas tarefas a máquina pode rodar por vez?
Qual é a taxa de execução?
Desempenho Quanto trabalho é feito?
computacional
Tempo de execução de CPU (tc)
Também chamado tempo de CPU. O
tempo real que a CPU gasta calculando
Tempo de CPU
para uma tarefa específica.
Tempo de CPU do Tempo de CPU do usuário (tcu)
Desempenho usuário O tempo de CPU gasto em um programa
computacional Tempo CPU do propriamente dito.
Sistema
Tempo de CPU do sistema (tcs)
O tempo de CPU gasto no sistema
operacional realizando tarefas em favor
do programa.
Tempo gasto (tr)
Leva em conta “tudo” (acesso a disco e memória, I/O , etc.)
Um número útil, mas às vezes não tão bom para propósitos
de comparação
Exemplo
Desempenho Tempo de CPU do usuário (tcu) = 90.7s
computacional
Tempo de CPU do sistema (tcs) = 12.9s
Tempo gasto (tr) =159s
Quanto o meu “tc” corresponde ao “tr”?
tc = tcu + tcs = 90.7s + 12.9s = 103.6s
tc/tr =>103.6s/159s = 0,651 => 65,1% de tr
Desempenho do sistema: tempo de decorrido
em um sistema não carregado.
Desempenho da CPU: tempo de CPU do
Desempenho usuário.
computacional
Desempenho está intimamente ligado ao tempo de
execução
Quais outras variáveis também medem desempenho?
No. de ciclos para executar um programa?
No. de instruções um programa?
Desempenho No. de ciclos por segundo?
computacional No. médio de ciclos por instrução?
No. médio de instruções por segundo?
Erro comum: pensar que APENAS UMA destas variáveis
é indicativa de desempenho quando ela sozinha
realmente NÃO É.
Cristal de Quartzo envia onda de sinais constantes
que são convertidas em sinais digitais.
Frequência constante f.
Um tempo de ciclo constante T(T = 1/f).
Taxa de pulsos = taxa de clock
CLOCK
Tempo entre pulsos = tempo de ciclos
Fórmula que relaciona as métricas mais simples
para o tempo de CPU
Perfomance CPU
Exemplo
Nosso programa favorito executa em 10 segundos no
computador A, que tem um clock de 2 GHz. Estamos
tentando ajudar um projetista de computador a montar
um computador B, que executará esse programa em 6
segundos. O projetista determinou que é possível haver
um aumento substancial na taxa de clock, mas esse
Perfomance CPU aumento afetará o restante do projeto da CPU, fazendo
com que o computador B exija 1,2 vez a quantidade de
ciclos de clock do computador A para esse programa.
Que taxa de clock o projetista deve ter como alvo?
As equações anteriores não fazem referência ao número
de instruções executados por um programa
Podemos redefinir o tempo de CPU em termos de ciclos
de clock relacionando com a quantidade de instruções
Perfomance CPU
CPI => média de ciclos por instrução (Cycles Per Instruction)
Número de ciclos de clock exigido varia para diferentes tipos de
instruções (load, store, branch)
tempo de ciclo constante (τ) = 1/f
CPI I => contagem de instruções
O tempo de processador T necessário para executar
determinado programa pode ser expresso como:
T = Ic * CPI * τ
Suponha que existam 2 implementações possíveis para um
mesmo Conjunto de Instruções (Instruction Set Architecture ou
ISA). Para um certo programa:
Maq. A tem um tempo de ciclo de clock de 10 ns e um CPI de 2.0
Maq. B tem um tempo de ciclo de clock 20 ns e um CPI de 1.2
CPI [Link] máquina roda mais rápido o programa, e o quanto é mais
rápida? (T = Ic * CPI * τ)
A maquina A é 1,2 vezes mais rápida que a maquina B ou A máquina
A é 20% mais rápida que a maquina B
Se acrescentarmos o tempo uma palavra está
sendo transferida da e para a memória
p é o número de ciclos de processador necessários para
decodificar e executar a instrução
m é o número de referências de memória necessárias
CPI
k é a razão entre o tempo de ciclo da memória e o tempo de
ciclo do processador.
Se 2 máquinas tiverem o mesmo ISA, qual das variáveis (clock
Exemplo de CPI rate, CPI, tempo de execução, [Link] instruções, MIPS) será
sempre idêntica?
u Considere a execução de um programa que resulta na execução de 2
milhões de instruções em um processador de 400 MHz.
u CPI = 0,6 + (2 × 0,18) + (4 × 0,12) + (8 × 0,1) = 2,24.
CPI - Exemplo
u A taxa MIPS (millions of instructions per second )
u T = Ic * CPI * τ => T = Ic * CPI * 1/f => f/CPI = Ic/T
u Taxa MIPS = (400 × 106)/(2,24 × 106) ≈ 178 millions of instructions per second
Processador
Determina a velocidade que as instruções são
executadas
Sistema de Entrada e Saída (hardware e sistema
Aspectos que operacional)
afetam a Determina a velocidade que as operações de entrada e
performance de um saída são executada
programa
Linguagem de programação, compilador e
arquitetura
Determina o número de instruções de máquina para
cada operação de alto nível
As decisões de projeto devem favorecer os
casos mais frequentes
tornar rápido o caso mais comum
Speedup (S)
ganho em desempenho que pode ser obtido ao
Lei de Amdahl melhorar determinada característica do
computador
Gene Amdahl
(1967w)
Considere um programa rodando em um único processador
fração (1 – f) do tempo de execução envolva um código inerentemente
serial
Fração f envolva o tempo código infinitamente paralelizável sem
overhead de escalonamento.
T seja o tempo de execução total do programa usando um único
processador.
Lei de Amdahl Então, o speedup usando um processador paralelo com N processadores,
que explora totalmente a parte paralela do programa, é o seguinte:
desempenho de toda a operação usando a melhoria
S=
desempenho de toda a operação sem usar a melhoria
O speed up (S), a partir de
alguma melhoria, depende de
dois fatores:
[Link]ção do tempo de
Lei de Amdahl computação na máquina original
que pode tirar vantagem da
melhoria (Fmelhoria)
[Link] obtido com a execução
da melhoria (Smelhoria)
Suponha que o recurso do sistema seja usado durante a
execução de uma fração do tempo f, antes da melhoria,
e que o speedup desse recurso após a melhoria seja
SUf. Então, o speedup geral do sistema é:
Lei de Amdahl
Suponha uma melhoria que executa 10 vezes
mais rápido do que o original, mas é utilizada
somente 40% do tempo. Qual seu speed up
total
Lei de Amdahl
Fmelhoria = 0.4
1 1
Þ Stotal = = » 1.56
0.4 0.64
S melhoria = 10 0.6 +
10
A lei de Amdahl serve como um indicativo de
quanto uma melhoria irá aumentar o
desempenho total e como distribuir recursos
para melhorar a relação custo/desempenho.
Lei de Amdahl
O objetivo é investir recursos
proporcionalmente aonde o tempo é gasto.
Suponha que a operação de raiz quadrada em
ponto-flutuante (rqpf) é responsável por 20%
do tempo de execução. Uma implementação
em hardware dessa operação irá torná-la 10
vezes mais rápida. Por outro lado, as instruções
de ponto-flutuante (pf) são responsáveis por
50% do tempo de execução e podem ser
melhoradas, a fim de serem executadas 2 vezes
Lei de Amdahl mais rápido.
1 1
S rqpf = = = 1.22
(1 - 0.2) + 0.2 0.82
10
1 1
S pf = = = 1.33
(1 - 0.5) + 0.5 0.75
2.0
Benchmark é um conjunto de programas
escolhido para avaliar a performance de um
computador.
System Performance Evaluation Cooperative
SPEC Benchmark Iniciativa formada por membros da indústria de
computadores para criar benchmarks para
computadores modernos
Os resultados são normalizados em relação a um
computador de referência
SPEC Benchmark
Spec Int 2006
(CPUDB)
Computer Organization and Design – The
Hardware/Software Interface, David A. Patterson,
John L. Hennessy, 3th Edition, Elsevier, 2005
Capitulo 2
Referencias
STALLINGS, Wiliam. Computer Organization and
Architeture
Capitulo 1