24/05/2012
Organização e Arquitetura de
Computadores
Avaliação de Desempenho
Prof. Luiz Antonio do Nascimento
1
Unidades de medida de memória
MEDIDA:
VALOR:
Bit (b)
0 ou 1 - menor unidade de dado
Byte (B)
conjunto de 8 bits ou 1 caractere
Kilobyte (KB)
210 ou 1024 bytes
Megabyte (MB)
210
Gigabyte (GB)
210
Terabyte (TB)
210 ou 1024 Gigabyte
Petabyte (PB)
210 ou 1024 Terabyte
Exabyte (EB)
210 ou 1024 Petabyte
ou 1024 Kilobyte
ou 1024 Megabyte
Quantidade de informãção por memória
Múltiplos Valor Apr. Informação
Byte
KB
MB
GB
TB
um
mil
milhão
bilhão
trilhão
1 letra
1 página
Mil páginas
Milhão páginas
Bilhão páginas
Obs.: 1 byte = 8 bits (0 ou 1)
0 - não passa corrente
1 - passa corrente
Exemplos:
1 - 00110001
A - 01000001
1
24/05/2012
bit
Bit: menor unidade da informação em um computador. Só
pode ser 0 ou 1.
Um bit não serve para armazenar nada compreensível, mas
um byte é a medida suficiente para armazenar um caractere.
Byte
Byte: Sequência de 8 bits.
1 Byte representa um caractere.
As memórias têm suas capacidades medidas em bytes.
As transferências de dados são medidas em bytes por
segundo ou bits por segundo.
O número 1 é um bit, o número 0 é um bit, 10010011 é um byte.
Exercícios
Pretende-se armazenar 15 vídeos de 500MB cada e
um outro vídeo de 3GB. Qual a quantidade de
memória mínima suficiente para efetuar esse
armazenamento?
(A)1500KB
(B)8GB
(C) 80GB
(D) 503MB
(E) 12000MB
Exercícios
( V ) Um disco rígido de 80 GB permite
armazenar uma quantidade de bytes superior
à quantidade que 100 discos do tipo mais
popular de CD-ROM permitem armazenar.
2
24/05/2012
Medição de desempenho de computadores
Os fatores que caracterizam e influenciam o desempenho do
computador são importantes sobre duas perspectivas:
– a perspectiva do fabricante de hardware que pretende
introduzir melhorias no desempenho dos seus componentes;
– a perspectiva do usuário de informática que pretende realizar
comparações entre sistemas distintos.
7
Medição de desempenho de computadores
Comparação de performance entre dois computadores:
• Se um programa for executado em 2 computadores diferentes, o
mais rápido é aquele que terminar primeiro.
Se for utilizado vários programas em 2 computadores diferentes, o
mais rápido é aquele que completar mais trabalhos durante um dia.
• Tempo de Execução ou Latência (execution time) - tempo de
execução de um programa (intervalo de tempo entre o início e o
fim de uma tarefa).
• Débito (throughput) - é o trabalho feito durante um dado
intervalo de tempo (tarefas executadas por unidade de tempo).
8
Medição de desempenho de computadores
Medidas para aumentar o Débito e diminuir a Latência:
– Trocar o processador por um outro mais rápido.
– Aumentar a quantidade de memória RAM.
– Computadores executando vários programas ao mesmo
tempo podem ter a mesma Latência para alguns programas
e maior Débito (exemplo de processadores com maior
número de núcleos).
– Diminuir a Latência implica obrigatoriamente aumentar o
Débito.
9
3
24/05/2012
Medição de desempenho de computadores
A Latência de um programa, deve incluir:
– o tempo de CPU:
• a execução do código da aplicação na CPU;
• os acessos à memória (para instruções e dados);
• os acessos a periféricos externos (incluindo discos)
– o tempo de espera de periféricos de entrada e saída (mouse e
monitor por exemplo);
– o tempo de execução de outros programas auxiliares.
– Desempenho do Sistema : tempo do sistema + tempo da CPU10
Medição de desempenho de computadores
O Desempenho do Sistema (system performance) refere-se ao
tempo de execução de um programa com o sistema livre.
O Desempenho da CPU (CPU performance) refere-se ao tempo da
CPU para tarefas do usuário.
CPUtime = nº ciclos relógio p/ programa * tempo.
CPUtime = nº ciclos relógio p/ programa / frequência.
O projetista do hardware pode melhorar o desempenho reduzindo o
tempo do relógio ou o projetista do software pode reduzir o número
de ciclos para o programa.
A média de ciclos relógio/instrução é referido como CPI (clock
cycles per instruction).
11
Medição de desempenho de computadores
O CPI é um valor médio, pois instruções diferentes podem demorar
tempos diferentes, (clock cycles per instruction).
O CPI é usado para comparar 2 implementações distintas . Para
calcular o tempo por execução de um programa deve-se utilizar os
três fatores que afetam o desempenho de um sistema:
Instruções Ciclos rel. Segundos Segundos
Tempo = Programa x Instrução x
Ciclo rel. = Programa
A fórmula mostra que a única medida confiável para o
desempenho é o tempo.
12
4
24/05/2012
Medição de desempenho de computadores
Métricas:
MIPS – Milhões de Instruções por Segundo
MIPS
= Nº instr / (Tempo execução * 106)
= Nº instr / (Nº instr * CPI * período do clock * 106)
= freq. clock / (CPI * 106)
Observações da métrica:
– Mede apenas taxa de execução de instruções;
– Varia entre programas executados no mesmo computador.
13
Medição de desempenho de computadores
MFLOPS – Milhões de Pontos Flutuantes por Segundo.
MFLOPS = Nº op vírg flut / (Tempo execução * 106).
Observações da métrica:
– apenas mede o desempenho na execução de operações em
ponto flutuante;
– dependente do programa em análise;
– há operações de pontos flutuantes com complexidade
diferentes.
14
Medição de desempenho de computadores
Explicação superficial sobre Ponto Flutuante:
• Ponto flutuante é um número que não é inteiro (decimal ou
fração).
• São mais dificeis de representar no computador.
• Alguns podem ser representador como decimais como o ½ = 0,5
e outros são dizimas e mais dificeis de representar como o 1/3:
0,333333333333333333333333333333333333333333333333...
• São representados de maneira parecida com notação científica.
– Exemplo: Em um jogo 3D, quando um personagem vai de um ponto
a outro o computador precisa calcular a sua posição (coordenadas)
e dos outros objetos ao redor. Para isto utiliza de cálculos de
Geometria Analítica que podem utilizar números de pontos
flutuantes que depois são convertidos para inteiros.
15
5
24/05/2012
Medição de desempenho de computadores
Fatores da arquitectura do CPU/memória que influenciam o seu
desempenho:
– latência de execução de cada instrução: melhora-se com
processadores com frequência maior;
– nº de instruções executadas por unidade de tempo: melhorase com mais núcleos no processador;
– tempo de acesso à memória: melhora-se cache;
– largura de banda no acesso à memória: melhora-se com
barramentos de dados mais largos (placa mãe).
16
Medição de desempenho de computadores
Um usuário de computadores que utiliza diariamente as mesmas
aplicações é um candidato perfeito para avaliar uma nova máquina.
O conjunto de programas que é executado chama-se workload.
Para avaliar 2 computadores, há que comparar o tempo de
execução do workload nessas 2 máquinas.
A maioria dos usuários utilizam aplicações diferentes durante os
dias. São precisas outras estratégias para medir o desempenho ( o
desempenho é diferente para cada usuário por causa que cada
usuário utiliza os computadores com aplicações diferentes). Para
estes usuários deve-se recorrer aos benchmarks.
Um benchmark é um conjunto de programas especialmente
escolhidos para avaliar desempenhos de computadores.
17
Medição de desempenho de computadores
Os benchmarks formam um workload que o utilizador espera que
permita medir adequadamente o desempenho duma máquina.
Atualmente é comum utilizar programas reais para incluir em
benchmarks:
• Em um ambiente de engenharia civil, é típico incluir programas
de cálculo científico ou CAD.
• Em ambiente de engenharia de software, incluem-se aplicações
de desenvolvimento de software (compiladores, debuggers).
Uma das vantagens em usar aplicações reais é que mostra o
melhor desempenhi para um utilizador específico. Um computador
pode ter melhor desempenho para um usuário e para outro não por
causa das características das aplicações que utilizam.
18
6
24/05/2012
Medição de desempenho de computadores
Benchmarks são desenvolvidos para imitar um determinado
tipo de comportamento em um componente ou sistema.
Benchmarks sintéticos - fazem isso através de programas
especialmente criados para impor o tipo de comportamento
desejado no componente.
Benchmarks de aplicação - executam programas do mundo
real no sistema.
Os benchmarks de aplicação ofereçam uma melhor medida
para a performance no mundo real.
Os benchmarks sintéticos são usados no teste de componentes
individuais, como um disco rígido ou um dispositivo de rede.
19
Medição de desempenho de computadores
•
•
•
•
•
•
•
•
•
•
•
•
Alguns Benchmarks para Windows:
Java Micro Benchmark
OpenSourceMark
miniBench
PassMark Software
Lavalys EVEREST
SiSoftware Sandra
Futuremark: 3DMark, PCMark, SPMark
BAPCo: Mobilemark, SYSmark, Webmark
BYTEmark benchmark suite
REALiX HWiFO32
DocMemory Diagnostic software
20
Medição de desempenho de computadores
•
•
•
•
•
•
•
•
•
•
•
CD Speed 99
CPUmark
CPU-Z
InfoTool
WinBench 99
CPU Rightmark
Whetstone
PiFast
Super PI
Maxon:Cinebench
Primate Labs:Geekbench
21
7
24/05/2012
Medição de desempenho de computadores
• Classificação dos benchmarks
– Por classe de aplicação
•
•
•
•
•
Computação científica
Aplicações comerciais
Serviços de rede
Aplicações multimídia
Processamento de sinal
– Macro benchmark
• Permite avaliar sistema com um todo
• Útil para compradores de sistema
– Micro benchmark
• Permite avaliar componentes do sistema
• Velocidade de CPU, memória, etc.
• Desempenho do sistema operacional
22
Medição de desempenho de computadores
• Fator Importante para comparação:
– „Reprodutibilidade
•…
Fornecer subsídios para que outros consigam repetir
o mesmo
• experimento validando o resultado apresentado.
–…
Necessário
•
•
•
•
„Descrição detalhada do workload
„Descrição das diretivas de compilação
„Descrição do Sistema Operacional
„Configuração completa da máquina
23
Medição de desempenho de computadores
24
8
24/05/2012
Medição de desempenho de computadores
Depois de escolhidos os programas ou o benchmark a usar, é
preciso definir como calcular a métrica que define o desempenho.
A melhor forma de sumariar o desempenho dum computador é
através de um único número.
A grande questão é então como calcular esse valor.
Programa 1 (seg)
Programa 2 (seg)
Total
Computador A Computador B
1
10
1000
100
1001
110
25
9
Download

Organização e Arquitetura de Computadores