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