Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura Arquitetura ee Organiza Organizaçãçãoo dede Computadores Computadores IIII Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Aula 7 Avaliação de Desempenho Prof. José Luís Güntzel guntzel@ufpel.edu.br www.ufpel.edu.br/~guntzel/AOC2/AOC2.html slide 7.2 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de 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 seus conjunto de instruções É necessário conhecer os fatores que influenciam o desempenho É necessário conhecer as medidas de desempenho e suas limitações… Introdução slide 7.3 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho 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 Algumas características ligadas ao hardware, que têm influência na execução de um programa: Introdução slide 7.4 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho • Qual é a definição de desempenho? Exemplo: 79.4245448720146Douglas DC-8-50 178.20013504000132Concorde 286.7006104150470Boieng 747 228.7506104630375Boeing 777 throughput de passageiros (pas. X milhas/h) Vel. de cruzeiro (milhas/h) Autonomia (milhas) Capacidade (passageiros) avião Definição de Desempenho slide 7.5 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Throughput e Tempo de Resposta Tempo de resposta ou 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, ... Throughput (às vezes traduzido por “Vazão”): Quantidade total de trabalho executado em um determinado intervalo de tempo Qual das duas medidas acima é mais conveniente otimizar? slide 7.6 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Throughput e Tempo de Resposta Para aumentar o desempenho, deve-se reduzir tempo de execução Desempenhox α 1 Tempo de Execuçãox Então, se Desempenhox > Desempenhoy, tem-se que: 1 Tempo de Execuçãox > 1 Tempo de Execuçãoy e Tempo de Execuçãox Tempo de Execuçãoy< slide 7.7 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação 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 Medidas de Desempenho Tendo em vista os objetivos desta disciplina, desempenho de CPU será medido apenas em função do tempo de CPU do usuário slide 7.8 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho No UNIX, o comando “time” pode retornar: Medidas de Desempenho 90.7u 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 159 = 0.65 slide 7.9 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação 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 p.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.10-9 = 2.5 x 108 = 250 MHz Medidas de Desempenho slide 7.10 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho tempo de CPU de um programa nº de ciclos de clock do programa período do clock= X por exemplo: – programa gasta 10x106 ciclos – período do clock é 4 ns tempo de CPU do programa = 10.106 x 4.10-9 = 40.10-3 = 40 ms tempo de CPU de um programa = Alternativamente: nº de ciclos de clock do programa freqüência do clock formas de aumento do desempenho: – diminuir o período do clock – diminuir nº de ciclos necessários para execução do programa Estes objetivos são muitas vezes conflitantes. slide 7.11 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho 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? Medidas de Desempenho slide 7.12 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Solução do exercício tempo de CPU de um programa = nº de ciclos de clock do programa freqüência do clock 10s = nº de ciclos de clock em A 400 x 106 ciclos / s nº de ciclos de clock em A = 4000 x 106 ciclos 6s = 1,2 x nº de ciclos de clock em A freqüência do clock em B = 1,2 x 4000 x 106 freqüência do clock em B freqüência do clock em B = 800 MHz Medidas de Desempenho slide 7.13 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho nº de ciclos de clock do programa nº médio de ciclos de clock por instrução= X nº instruções do programa CPI = nº médio de ciclos de clock por instrução é uma média sobre todas as instruções executadas no programa. Medidas de Desempenho CPI permite a comparação de duas implementações (duas organizações) diferentes para o mesmo conjunto de instruções slide 7.14 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Exercício: – Suponhamos que duas máquinas implementem o mesmo conjunto de instruções – Um mesmo programa P é rodado em ambas as máquinas – A máquina A tem período de clock de 10ns e CPI = 2.0 para P – A máquina B tem período de clock de 20ns e CPI = 1.2 para P – Qual máquina é mais rápida ? Medidas de Desempenho slide 7.15 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho nº de ciclos de clock do programa CPI= X Onde I é o nº instruções do programa Solução do exercício nº de ciclosde clock de A = 2,0 x I nº de ciclos de clock de B = 1,2 x I tempo de CPU de um programa nº de ciclos de clock do programa período do clock= X tempo de CPU de A = 2,0 x I x 10 ns = 20 I ns tempo de CPU de B = 1,2 x I x 20 ns = 24 I ns Portanto, a máquina A é 1,2 vezes mais rápida do que B na execução de P I slide 7.16 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho X CPI X tempo de CPU = nº de instruções X CPI freqüência do clock período do clock tempo de CPU nº de instruções= Medidas de Desempenho Equação Básica da Medida de Desempenho slide 7.17 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Como medir estes fatores? tempo de CPU é medido executando-se o programa período (ou freqüência) do clock é divulgado pelo fabricante nº de instruções e CPI são mais difíceis de obter – nº de instruções depende da arquitetura e do compilador* – CPI depende da organização e do programa conhecendo-se nº de instruções ou CPI, pode-se determinar o outro a partir da fórmula Medidas de Desempenho * Ferramentas chamadas traçadores (tracers) acompanham a execução de um programa e contam quantas e quais instruções são usadas. slide 7.18 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Nº de ciclos de clock de um programa pode ser determinado ... pela análise dos diferentes tipos de instruções executados pelo programa pelo nº de ciclos de clock necessários para cada tipo de instrução Σ nº de ciclos declock do programa= i = 1 n ( CPIi X Ci ) onde n = nº de tipos de instruções CPIi = ciclos de clock por instrução do tipo i Ci = nº de instruções do tipo i no programa Medidas de Desempenho slide 7.19 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Exercício: Um projetista de compilador deseja decidir entre duas possíveis seqüências de código para a resolução de um problema dados os tipos de instruções e o nº de ciclos por instrução de cada tipo, qual seqüência é mais rápida? tipo de instrução CPI A 1 B 2 C 3 nº de instruções código tipo A tipo B tipo C 1 2 1 2 2 4 1 1 Medidas de Desempenho slide 7.20 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Solução do exercício Σ nº de ciclos declock do programa = i = 1 n ( CPIi X Ci ) Nº ciclos de clock para código 1 = ( 2 x 1 ) + ( 1 x 2 ) + ( 2 x 3 ) = 10 ciclos Nº ciclos de clock para código 2 = ( 4 x 1 ) + ( 1 x 2 ) + ( 1 x 3 ) = 9 ciclos CPI = ciclos de clocknº de instruções CPI código 1 = 10 / 5 = 2.0 CPI código 2 = 9 / 6 = 1.5 Código 2 é mais rápido, mesmo que execute uma instrução a mais, pois necessita de 9 ciclos de clock (portanto, tem CPI mais baixo). O código 2 executa 4 + 1 + 1 = 6 instruções O código 1 executa 2 + 1 + 2 = 5 instruções slide 7.21 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Benchmarks Workload: • É o conjunto de programas que um usuário qualquer costuma rodar • Para comparar o desempenho de duas máquinas A e B bastaria rodar o mesmo workload em ambas • A maioria dos usuários não possui um workload • Cada classe de usuário está interessado em determinados tipos de programas slide 7.22 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Benchmarks Benchmarks: • São programas desenvolvidos especialmente para serem utilizados como exemplos para a medida de desempenho • Tentam reproduzir o comportamento de workloads reais de determinados grupos de usuários • Geralmente, são de domínio público • Procuram explorar repertório de recursos da arquitetura • Benchmarks usuais: SPEC (SPECint e SPECfp), Dhrystone, Whetstone,… slide 7.23 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Problemas com benchmarks • melhor avaliação seria feita com a carga de trabalho efetivamente utilizada em cada máquina • fabricantes podem tentar otimizar arquitetura e/ou organização e/ou compilador para executar de forma mais eficiente apenas os benchmarks Intel: tem sua própria medida de desempenho (o índice iComp) Benchmarks slide 7.24 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho MIPS = nº instruçõestempo de CPU X 106 = nº instruções ciclos X período X 106 = nº instruções X freqüêncianº instruções X CPI X 106 = freqüência CPI X 106MIPS Problemas com a medida em MIPS: – não se pode comparar máquinas com conjuntos de instruções diferentes, pois certamente o nº de instruções será diferente para um mesmo programa – MIPS varia de um programa para outro na mesma máquina – MIPS pode variar inversamente ao desempenho Outras Medidas: MIPS slide 7.25 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho Exemplo tipo de instrução CPI A 1 B 2 C 3 nº de instruções (x 106) código tipo A tipo B tipo C compil. 1 5 1 1 compil. 2 10 1 1 freqüência do clock = 100 MHz Calcular o desempenho do código gerado por cada compilador: – em MIPS – em tempo de CPU Outras Medidas: MIPS slide 7.26 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho = freqüênciaCPI X 106MIPS = ciclos de clocknº instruçõesCPI Σciclos de clock = i = 1 n ( CPIi X Ci ) = nº instruçõesCPI Σ ( CPIi X Ci ) =CPI1 ( 5x1 + 1x2 + 1x3 ) . 106 ( 5 + 1 + 1 ) x 106 = 10 7 = 1.43 =CPI2 ( 10x1 + 1x2 + 1x3 ) . 106 ( 10 + 1 + 1 ) x 106 = 15 12 = 1.25 MIPS1 = 100 MHz 1.43 x 106 = 69.9 MIPS2 = 100 MHz 1.25 x 106 = 80.0 slide 7.27 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho tempo de CPU = nº instruções X CPIfreqüência =tempo1 ( 5 + 1 + 1 ) . 106 100 . 106 = 0.10 s x 1.43 =tempo2 ( 10 + 1 + 1 ) . 106 100 . 106 = 0.15 s x 1.25 O código 2 gasta portanto mais tempo. Conclusão: apesar de ter MIPS com maior valor, o código 2 gasta bem mais instruções. Outras Medidas: MIPS slide 7.28 ComputaçãoUFPel Arquitetura e Organização de Computadores II Prof. José Luís Güntzel Avaliação de Desempenho MFLOPS = nº de operações de ponto flutuante no programa tempo de CPU x 106 Não se contam instruções de PF e sim operações para evitar comparações injustas entre máquinas com instruções diversas – somas, subtrações, multiplicações, divisões – precisão simples, precisão dupla – instruções mais complexas: seno, raiz quadrada Problemas na comparação: – máquinas diferentes têm não apenas conjuntos diferentes de instruções, mas também de operações – certas operações (p.ex. soma em precisão simples) são muito mais rápidas do que outras (p.ex. divisão em precisão dupla) – como na medida de MIPS, pode-se ter gasto maior em tempo mesmo tendo mais MFLOPS Outras Medidas: MFLOPS
Compartilhar