Faculdade de Ciências Aplicadas e Sociais de Petrolina – FACAPE Medindo o Desempenho Medida de desempenho corresponde, grosso modo, à medida da velocidade com que um determinado software vai rodar em uma máquina. Medir o desempenho não é algo trivial! Não é possível determinar a velocidade com que um dado software roda em uma máquina apenas analisando seu conjunto de instr. É necessário conhecer os fatores que influenciam o desempenho. É necessário conhecer as medidas de desempenho e suas limitações! Desempenho (Parte II): Medindo o Desempenho Prof. Sergio Petrolina/PE 1 Medindo o Desempenho 2 Definição de Desempenho Algumas características ligadas ao hardware, que têm influência na execução de um programa: – Maneira como o compilador utiliza as instruções da máquina, na hora de gerar o código executável – Maneira como as instruções estão implementadas no hardware (organização do processador) – Maneira como a memória e os dispositivos de E/S se comportam durante o processamento do programa Qual é a definição de desempenho? Exemplo: Capacidade (passageiros) Autonomia (milhas) Velocidade de cruzeiro (milhas por hora) Boeing 777 375 4630 610 228.750 Boeing 747 470 4150 610 286.700 Avião Throughput de passageiros (passageiros X milhas por hora) BAC/Sud Concord 132 4000 1.350 178.200 Douglas D-C-8-50 146 8720 544 79.424 3 Avaliação de Desempenho Avaliação de Desempenho Throughput e Tempo de Resposta Tempo de resposta ou tempo de execução: Para aumentar o desempenho, deve-se reduzir tempo de execução. – Tempo transcorrido entre o início e o término da execução de um programa – Influenciado por acessos a disco, atividades de I/O, overhead do sistema operacional, da rede, ... Desempenhox = Throughput (às vezes traduzido por “Vazão”): – Quantidade total de trabalho executado em um determinado intervalo de tempo 1 Tempo _ de _ Execucaox Então, se Desempenhox > Desempenhoy, tem-se que: 1 1 > Tempo _ de _ Execucaox Tempo _ de _ Execucao y Qual das duas medidas acima é mais conveniente otimizar? Tempo _ de _ Execucaox < Tempo _ de _ Execucaoy 5 Realce e Suavização de Imagens Digitais 4 6 1 Medidas de Desempenho Medidas de Desempenho distinção entre... tempo total para a execução de um programa e tempo gasto pelo processador (tempo de CPU ou tempo de processador) em benefício deste programa (com tarefas específicas do programa) – não inclui tempo de execução de outros programas, nem o tempo de espera por I/O, ... O tempo de CPU está dividido em: – tempo de CPU do usuário (user CPU time) ⇒ tempo gasto executando instruções do programa do usuário – tempo de CPU do sistema (system CPU time) ⇒ tempo gasto com tarefas do S.O. necessárias para a execução do programa do usuário Obs: Tendo em vista os objetivos desta disciplina, desempenho de CPU será medido apenas em função do tempo de CPU do usuário. 7 1 – Medindo o Desempenho No UNIX, o comando “time” pode retornar: 90.7s 12.9s 2:39 65% Tempo de CPU do usuário (user CPU time) = 90,7 segundos Tempo de CPU do sistema (system CPU time) = 12,9 segundos Tempo total transcorrido (elapsed time) = 2 minutos e 39 segundos (= 159 segundos) Precentual do tempo total transcorrido que foi gasto pela CPU no programa é: 90.7 + 12.9 = 0.65 159 8 1 – Medindo o Desempenho Clock Período de clock – Relógio que trabalha em uma velocidade constante e determina quando os eventos ocorrem no hardware. – É a duração de cada ciclo de clock. Ex.: 2ns. – O intervalo de tempo entre duas transições consecutivas dos pulsos do clock. 9 10 1 – Medindo o Desempenho Usuários e projetistas enxergam performance sob diferentes métricas: a – Usuários: tempo medido em segundos – Projetistas: tempo medido em períodos do clock. Para os projetistas o tamanho de um período do clock pode ser: – Tempo necessário para completar um ciclo de clock (Ex.: 2ns). – Frequência do clock, que é o inverso do ciclo do clock (Ex.: 500MHz). 11 Realce e Suavização de Imagens Digitais Medidas de Desempenho ciclos de clock = intervalos básicos de tempo nos quais são executadas as operações elementares de uma instrução. – transferências de valores entre registradores – operações aritméticas na ALU período do clock T = tempo de duração de um ciclo de clock Ex: 4 ns freqüência de operação f = número de ciclos de clock por unidade de tempo f=1/T se T = 4 ns então f = 1 / 4 x 10-9 = 2.5 x 108 = 250 MHz 12 2 Avaliação de Desempenho tempo de CPU de um programa = nº de ciclos de clock do programa por exemplo: – programa gasta 10x106 ciclos – período do clock é 4 ns x Medidas de Desempenho período do clock tempo de CPU do programa = 10.106 x 4.10-9 = 40.10-3 = 40 ms Alternativamente: tempo de CPU de um programa = n o de _ ciclos _ de _ clock _ do _ programa frequencia _ do _ clock formas de aumento do desempenho: – diminuir o período do clock – diminuir nº de ciclos necessários para execução do programa Exercício programa roda em 10s na máquina A, que tem clock de 400 MHz. queremos rodá-lo em 6s numa máquina B com nova tecnologia. a máquina B pode ter um aumento substancial de freqüência de clock. no entanto, máquina B exigirá 1,2 vezes mais ciclos de clock para executar instruções do que a máquina A. qual é a freqüência de clock necessária para a máquina B? Estes objetivos são muitas vezes conflitantes. 13 Realce e Suavização de Imagens Digitais 14 3