Baixe o app para aproveitar ainda mais
Prévia do material em texto
O Papel da Performance Capítulo 01 - “Organização e Projeto de Computadores: A Interface Hardware/Software” ● Eficiência de um sistema inteiro ● Avaliar e compreender o desempenho trata: – Medir – Informar – Resumir – Fatores determinantes 2 O Papel da Performance O Papel da Performance ● É complexo avaliar o desempenho desse tipo de sistema – Complexidade e escala dos softwares modernos – Ampla gama de técnicas de melhoria de desempenho ● Impossível sentar com um manual do conjunto de instruções e determinar a velocidade de execução de um sistema 3 ● Desempenho é um fator importante para os projetistas – O que determina o desempenho de um computador? 4 O Papel da Performance 5 Avião Passageiros Autonomia (mi) Velocidade (mph) Boeing 777 375 4630 610 Boeing 747 470 4150 610 BAC/Sud Concorde 132 4000 1350 Douglas DC-8-50 146 8720 544 ●Analogia com aviões de passageiro ●Desempenho determinado pela velocidade: ● Quão rápido é o Concorde comparado com o 747? ● 1 passageiro de um ponto a outro ● 450 passageiro de um ponto a outro Definição de Desempenho 6 Latência e Vazão ●Tempo de Resposta (Latência) ● Quanto tempo leva para executar uma tarefa? ●Throughput (Vazão) ● Quantas tarefas a máquina pode executar de uma vez? ● O que é a taxa média de execução? ● Qual o impacto, se substituir o processador por uma versão mais rápida? ● Qual o impacto, se adicionarmos uma nova máquina no laboratório? 7 tempo de execuçãoB tempo de execuçãoA =n Latência e Vazão ●Tempo de Resposta ou Tempo de Execução ● Tempo entre inicio e término de uma tarefa ● Diminuir o tempo de resposta quase sempre melhora a vazão ● Dizer que uma máquina A é n vezes mais rápida que uma máquina B significa que: ● Desempenho é definido como o inverso do tempo de execução ● Desempenho Relativo 8 1 tempo de execuçãoA =desempenhoA n= tempo de execuçãoB tempo de execução A = 1 desempenhoB 1 desempenhoA = desempenho A desempenhoB Desempenho ● Problema: – máquina A executa um programa em 10 segundos – máquina B executa o mesmo programa em 15 segundos Calcular n: n= desempenhoA desempenhoB = tempo de execução B tempo de execução A n=15 10 n=1,5 Desempenho ● Tempo decorrido – Tempo de CPU gasto no SO realizando as tarefas a pedido do programa. ● Tempo de CPU – Não conta E/S ou tempo dispendido rodando outros programas. – Significa o tempo que a CPU consome computando. ● Nosso foco: tempo de CPU do usuário – tempo gasto executando linhas de código que estão “dentro” do nosso programa. Tempo de Execução ● Caracterizado por limitações de tempo real ● Dois tipos de limitações – Tempo real rígido ● Define um limite fixo para responder ou processar um evento (ex: freios ABS) – Tempo real flexível ● Uma resposta média ou uma resposta dentro de um tempo limitado a uma grande fração dos eventos (ex: manipular quadros de vídeos em um sistema de reprodução) 11 Desempenho - Detalhado ● Métricas utilizadas – Ciclos de clock (ciclos) – Tempo de ciclo (nanoseg.) – Instruções por programa – Média dos ciclos de clock por instrução ou 12 tempo de execução = ciclos de clock x tempo do ciclo tempo de execução= ciclos de clockvelocidade de clock Desempenho - Fatores ● Porém nas equações anteriores não fazemos referência ao número de instruções necessárias para o programa, logo o número de ciclos de clock pode ser estendido como: ● Ciclos de clock por instrução pode ser chamado como CPI 13 ciclos de clock = Instruções para x média dos ciclos o programa por instrução tempo de execução = CPI x Nº de Inst x tempo do ciclo Desempenho - Fatores ● Ao invés de reportar o tempo de execução em segundos, geralmente usa-se ciclos. ● Um “tick” de clock indica quando se inicia uma atividade – Tempo de ciclo = tempo entre ticks = segundos por ciclo. – Taxa de clock (frequência) = ciclos por segundo (1 Hz = 1 ciclo/s). Ciclos de Clock ● Assumir que # de ciclos = # de instruções – Essa consideração é apenas uma aproximação, pois diferentes instruções levam diferentes tempos para serem executadas. time 1ª inst rução 2ª in strução 3ª in struçã o 4ª 5ª 6ª ... Quantos ciclos são requeridos por um programa? ● Multiplicação leva mais tempo que soma. ● Operações de ponto flutuante levam mais tempo que operações de inteiros. ● Acessar memória leva mais tempo que acessar registradores. – Importante: alterando o tempo de ciclo muitas vezes altera o número de ciclos requerido para várias instruções. tempo Diferentes números de ciclos para diferentes instruções ● Computador A executa um programa em 10 segundos e tem um clock de 4 GHz ● Computador B execute esse programa em 6 segundos e B exija 1,2 vez mais ciclos de clock do que o computador A ● Qual a velocidade de clock de B? 17 Desempenho - Exemplos 18 tempo de execução A= ciclos de clock A velocidade de clock A 10 s = ciclos de clock A 4x109 A= 40 x109 ciclos ciclos de clock tempo de execuçãoB= 1,2 xciclos de clock A velocidade de clock B 6 sxvelocidade de clock B=1,2 x 40 x10 9 velocidade de clock B=8 GHz Desempenho - Exemplo ● Um dado programa irá requerer – Certo número de instruções (instruções de máquina) – Certo número de ciclos – Certo tempo em segundos Agora que compreendeu-se o ciclo ● A única medida completa e confiável do desempenho é o tempo: 20 Tempo= InstruçõesPr ograma X Ciclos de clock Instruções X Segundos Ciclos de clock Tempo= Segundos Pr ograma Componentes de desempenho Unidades de medida Tempo de execução da CPU de um programa Segundos para o programa Contagem de instruções Instruções executadas para o programa CPI Número médio de ciclos de clock por instrução Tempo do ciclo de clock Segundos por ciclo de clock Combinando os Fatores ● MIPS Milhões de instruções por segundo ● Número de instruções de código de máquina que o processador pode executar em um segundo ● Porém não é possível usá-lo como medida de desempenho 21 MIPS= Nº de Instruções Tempo de Execução X 106 Medida MIPS 22 Component e de hardware ou software ●Afeta o quê? ●Como? ● Algoritmo ● Contagem de instruções, possivelmente o CPI ● Determina o Nº de instruções do programa fonte executadas. ● Pode favorecer instruções mais lentas ou rápidas. ● Linguagem de Programação ● Contagem de instruções e CPI ● Instruções da linguagem traduzidas em instrução do processador. ● Pode usar chamadas indiretas (CPI mais altos). ● Compilador ● Contagem de instruções e CPI ●Afeta a contagem de instruções e a média de CPI já que determina a tradução da linguagem de programação para instrução ● Conjunto de instruções ● Contagem de instruções, velocidade de clock e CPI ●Afeta as instruções necessárias para função, o custo em ciclos de cada instrução e a velocidade geral do processador. Desempenho de um Programa ● O desempenho é determinado pelo tempo de execução. ● As variáveis abaixo não determinam o desempenho: – N° de ciclos para executar um programa; – N° de instruções num programa; – N° de ciclos por segundo; – N° médio de ciclos por instrução; e – N° médio de instruções por segundo. Desempenho ● Considerar que temos duas implementações da mesma arquitetura do conjunto de instruções (ISA). Para certo programa: Máquina A tem um tempo de ciclo de clock de 250 ps e um CPI de 2.0 Machine B tem um tempo de ciclo de clock de 500 pse um CPI de 1.2 ● Qual máquina é mais rápida para esse programa, e por quanto? Exemplo de CPI 25 ciclos de clock A=Ix 2,0 ciclos de clock B=Ix 1,2 TempoA =ciclos de clock A x tempo do ciclo de clock A Ix 2,0 x 250 ps=500 xIps TempoB=ciclos de clock B x tempo do ciclo de clockB Ix1,2 x 500 ps= 600 xIps n= tempo de execução B tempo de execução A =600 xIps 500 xIps =1,2 ● Um projetista de compilador está tentando decidir entre duas sequências de código para uma máquina particular. Baseado numa implementação de hardware, existem 3 classes diferentes de instruções: Classe A, Classe B, e Classe C, que requerem um, dois e três ciclos (respectivamente). A primeira sequência tem 5 instruções: 2 de A, 1 de B, e 2 de C A segunda sequência tem 6 instruções: 4 de A, 1 de B, e 1 de C. Qual sequência será mais rápida? Quanto? Qual o CPI para cada sequência? Exemplo de Nº de Instruções ● Determinação melhor do desempenho executando aplicações reais – Usa programas típicos de carga de trabalho (workload) desejada – Ou, típicos de classes de aplicações desejadas ex., compiladores/editores, aplicações científicas, gráficos, etc. ● Pequenos benchmarks – Bom para arquitetos e projetistas – Fácil para padronização – Podem ser abusados (usados erroneamente) ● SPEC (System Performance Evaluation Cooperative) – As companhias adotam um conjunto de programas reais – Podem ser abusados Benchmarks ● Gráfico de “melhoramento” do compilador e desempenho 0 100 200 300 400 500 600 700 800 tomcatvfppppmatrix300eqntottlinasa7doducspiceespressogcc Benchmark Compiler Enhanced compiler S P E C p er fo rm an ce ra tio SPEC'95 Benchmark Description go Artificial intelligence; plays the game of Go m88ksim Motorola 88k chip simulator; runs test program gcc The Gnu C compiler generating SPARC code compress Compresses and decompresses file in memory li Lisp interpreter ijpeg Graphic compression and decompression perl Manipulates strings and prime numbers in the special-purpose programming language Perl vortex A database program tomcatv A mesh generation program swim Shallow water model with 513 x 513 grid su2cor quantum physics; Monte Carlo simulation hydro2d Astrophysics; Hydrodynamic Naiver Stokes equations mgrid Multigrid solver in 3-D potential field applu Parabolic/elliptic partial differential equations trub3d Simulates isotropic, homogeneous turbulence in a cube apsi Solves problems regarding temperature, wind velocity, and distribution of pollutant fpppp Quantum chemistry SPEC'95 Dobrando a taxa de clock dobra o desempenho? Uma máquina com uma taxa de clock lenta pode ter um melhor desempenho? Clock rate (MHz) S P E C in t 2 0 4 6 8 3 1 5 7 9 10 200 25015010050 Pentium Pentium Pro Pentium Clock rate (MHz) S P E C fp Pentium Pro 2 0 4 6 8 3 1 5 7 9 10 200 25015010050 SPEC'95 ● As decisões de projeto devem favorecer os casos mais frequentes: tornar rápido o caso mais comum ● A lei de Amdahl define o speed-up (S), que consiste do ganho em desempenho que pode ser obtido ao melhorar determinada característica do computador. 31 Lendas e Falhas ● Speed Up (S) 32 S= desempenho de toda a operação usando a melhoriadesempenho de toda a operação sem usar a melhoria S= tempo de execução de toda a operação sem usar a melhoriatempo de execução de toda a operação usando a melhoria O Speed-up ● O speed up a partir de alguma melhoria depende de dois fatores ● A fração do tempo de computação na máquina original que pode tirar vantagem da melhoria (Fmelhoria): se 20s do tempo de execução de um programa, que leva 60s para ser executado, podem ser melhorados, a fração é 20/60; ● O ganho obtido com a execução da melhoria (Smelhoria): se a melhoria leva 2s para ser executada e a original leva 5s, o ganho é 5/2. 33 Armadilha - Speed-UP ● O tempo de execução usando a máquina original com a melhoria (tenovo) será igual ao tempo gasto usando a parte da máquina sem melhoria mais o tempo gasto usando a melhoria 34 tenovo =teantigo×((1−Fmelhoria )+ FmelhoriaSmelhoria ) Armadilhas - Speed-up ● O speed up total (Stotal) é a razão entre os tempos de execução 35 S total= teantigo tenovo = 1 (1−Fmelhoria)+ Fmelhoria Smelhoria Armadilhas - Speed-up ● Suponha uma melhoria que executa 10 vezes mais rápido do que o original, mas é utilizada somente 40% do tempo ● 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. ● O objetivo é investir recursos proporcionalmente aonde o tempo é gasto 36 Fmelhoria=0 . 4 Smelhoria=10 S total= 1 0 .6+ 0 . 4 10 = 1 0 .64≈1. 56⇒ Armadilhas – Exemplo de Speed-up Desempenho é específico a um programa particular. O tempo de execução total é um resultado do desempenho. Para que uma dada arquitetura melhore deve-se: Aumentar a taxa de clock (sem afetar o CPI) Melhorar a organização do processador para diminuir o CPI Melhorar o compilador para diminuir o CPI e/ou número de instruções. Conclusões ● Cuidado: não esperar que a melhoria do desempenho num aspecto de uma máquina melhore sempre o seu desempenho total! 38 Conclusão Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38
Compartilhar