Você está na página 1de 46

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?
http://cpudb.stanford.edu/
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 1.Qual 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, No.de 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:

1.Fração do tempo de
Lei de Amdahl computação na máquina original
que pode tirar vantagem da
melhoria (Fmelhoria)

2.Ganho 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

Você também pode gostar