Sei sulla pagina 1di 6

Arquitetura e Organização de Computadores Prof.

Carlos Magno

O Papel do Desempenho (Performance)

Objetivo: Abordar os aspectos relacionados à medição do desempenho dos sistemas


computacionais

✓ Variedade e complexidade dos programas;


Desafio ✓ Diversidade de técnicas de melhoria de desempenho da parte física;
✓ Determinar a métrica de desempenho em função dos tipos de aplicação a
serem avaliadas;

Definição de Desempenho

Quando afirmamos que um computador tem melhor desempenho


que o outro, o que estamos querendo dizer?

Exemplo: Qual avião tem maior desempenho?

Aeronave Capacidade Autonomia Veloc. de Cruzeiro Fluxo de Passageiros


(passageiros) (milhas) (milhas/hora) Passag. X milhas/hora
Boeing 777 375 4630 610 228.750
Boeing 747 470 4150 610 286.700
Bac/Sud Concorde 132 4000 1350 178.200
Douglas DC-8-50 146 8720 544 79.424

Pergunta: As mudanças a seguir afetam o throughput ou o tempo de resposta?

1. Substituição do processador do computador por um modelo mais rápido.

2. Alocação de processadores adicionais a um sistema que usa vários processadores


para executar programas diferentes.

Como quantificar o desempenho?

Adotando-se Tempo de Resposta como critério:

1
Desempenho𝑋 =
TempodeExecução𝑋

1
Arquitetura e Organização de Computadores Prof. Carlos Magno

Medidas de Desempenho

Tempo total para se completar uma determinada tarefa


Tempo de
computacional, incluindo os acessos a disco e à memória, as
Resposta
atividades de entrada e saída, etc

Tempo de
execução de Tempo de gasto na execução das instruções dedicadas a um
processador programa e não inclui o tempo gasto com entrada/saída, nem o
ou Tempo de tempo gasto para execução de outros programas.
processador

Tempo de Processador
Tempo de Usuário Tempo de Sistema

Exemplo: Unix – 90.7u 12.9s 2:39 65%


90,7s tempo de processador
12,9s tempo de sistema
2:39s = 159s tempo decorrido (Tempo de resposta)
Relação entre as Métricas
Tempo de Execução no Número de ciclos do clock
processador para o = do processador para o x Período do clock
programa programa

Número de ciclos do clock


Tempo de Execução no do processador para o
processador para o = programa
programa
Frequência do clock

Exemplo:
Nosso programa favorito roda em 10s em um computador A, que tem um clock de
400MHz. Estamos tentando ajudar um projetista de computador em início de carreira a
construir uma máquina B, que deverá rodar o nosso programa em 6s. O projetista já sabe
que pode contar com a tecnologia para aumentar de modo significativo a freqüência do
clock da sua máquina, mas este aumento vai provocar reflexos em outros parâmetros da
performance, fazendo com que a máquina B precise de 1,2 vez mais ciclos do que a
máquina A para executar o tal programa. Qual a freqüência do clock que o nosso projetista
deve implementar em sua máquina?
Solução:

2
Arquitetura e Organização de Computadores Prof. Carlos Magno

Calculo do Número de Ciclos:

Número de Ciclos Número de


Número médio de ciclos
de clock do = instruções do x
de clock (CPI)
processador programa

Exemplo:
Suponha que temos duas implementações diferentes da mesma arquitetura do
conjunto de instruções. A máquina A tem um ciclo de clock de 1ns e uma CPI de 2,0
considerando um programa qualquer. A máquina B tem um ciclo de clock de 2ns e uma
CPI de 1,2, para o mesmo programa. Qual das duas máquinas executa esse programa
mais rapidamente? Calcule também quanto uma é mais rápida que a outra.

Resumo:

Tempo EXEC= nº instruções x nº ciclos x tempociclo de clock

Componentes de desempenho Unidades de medida


Tempo de execução de um programa
Segundos por programa
no processador
Instruções executadas pelo
Número de instruções
programa
Número médio de ciclos de clock
Ciclos de clock por instrução (CPI)
por instrução
Ciclo de Clock Segundos por ciclo de clock

Calculo do Número de Ciclos, considerando as classes:

Números de ciclos do processador = Σ (CPIi x Ci)

Onde ci é o número de instruções da classe i

3
Arquitetura e Organização de Computadores Prof. Carlos Magno

Exemplo:

Um projetista de compilador está tentando decidir entre duas sequências de código para
uma determinada máquina. Para tanto, obteve com a equipe de hardware os seguintes
dados:
Classe de instruções CPI para esta classe de instruções
A 1
B 2
C 3

Considerando o código a ser gerado para uma particular declaração de uma linguagem
de alto nível, o responsável pelo projeto do compilador está considerando duas possíveis
sequências de código, com as seguintes contagens de instruções:

Sequência de Número de instruções para a classe


código A B C
1 2 1 2
2 4 1 1

Perguntas:
1. Qual das duas sequências executa mais instruções?
2. Qual a mais rápida?
3. Qual a CPI para cada sequência ?

4
Arquitetura e Organização de Computadores Prof. Carlos Magno

Lendas e Falhas

Esperar que a melhora em um dos aspectos que influem no desempenho


Falha da máquina resulte em uma melhora no desempenho total, proporcional
ao tamanho do ganho inicial.

Exemplo:
Um dado programa roda em 100s em uma determinada máquina, e que as
operações de multiplicação sejam responsáveis por 80 dos 100 segundos totais.
Quanto se deve melhorar a velocidade da multiplicação se quiser que o programa
rode 5 vezes mais rápido?

As métricas que não dependem do hardware são boas para calcular o


Lenda
desempenho.

Exemplo: Compare o CDC6600 com B5500

Falha Uso do parâmetro MIPS como métrica do desempenho.

Conceito: MIPS = Número de Instruções


Tempo de execução x 106

3 Problemas do uso do MIPS:


✓ Especifica a taxa de execução das instruções sem levar em conta a
capacidade de trabalho de cada instrução;
✓ O seu valor varia entre programas executados em um mesmo computador;
✓ O seu valor pode variar inversamente ao desempenho;

5
Arquitetura e Organização de Computadores Prof. Carlos Magno

Exemplo:
Considere uma máquina que possua três diferentes classes de instruções, e medidas da
CPI conforme tabela 1. Suponha que a medida do tamanho do código gerado para o
mesmo programa por dois compiladores deferentes tenha apresentado os resultados
conforme tabela 2.
Tabela 1 – CPI das Classes. Tabela 2 – Tamanho dos programas.
Classe de Instrução CPI da Classe Código Nº de instruções (em milhões)
A 1 A B C
B 2 Compilador 1 5 1 1
C 3 Compilador 2 10 1 1

Suponha que a máquina rode com um clock de 500 MHz.


1. Qual a sequência de código que executa mais rápido de acordo com a definição
de MIPS?
2. E de acordo com o tempo de execução?

Conclusão: (Segundo o conceito de MIPS)


Mas o gerado pelo compilador 1
O código gerado pelo compilador 2 é o melhor
roda mais rápido.

Lenda Os benchmarks sintéticos servem para prognosticar o desempenho

Uso da média aritmética dos tempos de execução normalizada para


Falha
prever o desempenho.

Exemplo:
Normalizado p/ A Normalizado p/ B
Tempo em A Tempo em B
A B A B
Programa 1 1 10 1 10 0,1 1
Programa 2 1.000 100 1 0,1 10 1
Média aritmética
Média geométrica

Resumo:

O tempo de execução é a única medida válida para o desempenho.

Fórmula a ser empregada no curso:

Segundos Instruções Ciclo de clock Segundos


= x x
Programa Programa Instruções Ciclo de clock

Bibliografia: Organização e Projeto de Computadores, de David a Patterson John L Hennessy

Potrebbero piacerti anche