Baixe o app para aproveitar ainda mais
Prévia do material em texto
Desempenho Organização de Computadores Marcelo Lobosco Universidade Federal de Juiz de Fora Aula 03 - Abstrações e Tecnologias Computacionais Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Desempenho Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Introdução I Avaliar o desempenho dos computadores é desafiador I Devido à escala e complexidade dos sistemas modernos de software, em conjunto com uma grande variedade de técnicas de melhoria de desempenho empregadas pelos projetistas de hardware I Desempenho é atributo importante I Na escolha de um novo equipamento a ser comprado I Vendedores sabem disso, e anunciam desempenho de seus equipamentos sob as melhores condições I Não necessariamente refletem as necessidades dos compradores Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Definindo desempenho I A questão do desempenho pode ser sutil I Que avião tem melhor desempenho? Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Definindo desempenho I Para saber qual avião tem melhor desempenho, temos antes de definir desempenho I Capacidade de transporte de passageiros? I Autonomia de vôo? I Velocidade? I Mesmo velocidade pode ser definida de duas formas... I ...suponha, por exemplo, transporte de 450 passageiros... I ... neste caso, Boeing 747 é a melhor opção Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Definindo desempenho I Semelhante para sistemas computacionais: latência × vazão I Tempo de resposta ou execução (latência) I Quanto tempo leva para meu trabalho ser realizado? I Quanto tempo preciso esperar para a consulta ao banco de dados? I Tempo necessário para o computador completar uma tarefa I Importante para usuário de computador individual Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Definindo desempenho I Semelhante para sistemas computacionais: latência × vazão (cont.) I Vazão (throughput) I Quantos trabalhos a máquina pode realizar ao mesmo tempo? I Qual é a velocidade de execução média? I Quanto trabalho está sendo feito? I Quantidade total de trabalho feito em um determinado tempo I Importante para gerentes de CPDs Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Definindo desempenho I Exercício: As seguintes mudanças em um sistema computacional aumentam a vazão, diminuem o tempo de resposta ou as duas coisas? I Se atualizarmos uma máquina com um novo processador? I Se incluirmos processadores adicionais em um sistema multiprocessado usado para tarefas distintas? Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Definindo desempenho I Curso com foco em tempo de resposta I Para maximizar o desempenho, devemos minimizar o tempo de execução de uma tarefa: Desempenhox = 1 Tempo de Execuçãox (1) I Desempenho de X é n vezes superior a Y: Desempenhox Desempenhoy = n (2) Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Definindo desempenho I Se X é n vezes mais rápido que Y, então o tempo de execução de Y é n vezes maior do que em X: Desempenhox Desempenhoy = Tempo de Execuçãoy Tempo de Execuçãox = n (3) Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Exercício I Se computador A executa um programa em 10s e B o executa em 15s, o quanto A é mais rápido do que B? DesempenhoA DesempenhoB = Tempo de ExecuçãoBTempo de ExecuçãoA = n 15 10 = 1, 5 (4) I A é 1,5 vezes mais rápido do que B Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Medindo o desempenho I Tempo de relógio, decorrido ou de resposta I Conta tudo (acessos a disco e a memória, E/S etc.) I Número útil, mas normalmente não é ideal para fins de comparação I Tempo de CPU I Tempo real que a CPU gasta computando uma tarefa específica I Não conta E/S ou tempo gasto executando outros programas I Pode ser dividido em tempo de sistema e tempo de usuário Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Medindo o desempenho I Ciclos de clock I Tempo para cada período de clock I Velocidade de clock (frequência) dada em ciclos por segundo (1Hz = 1 ciclo/segundo) I Velocidade de clock e tempo de ciclos são inversos! I Exemplo: um clock de 4Ghz possui um tempo de ciclo de 1 4× 109 = 0, 25× 10 −9 = 250× 10−12 = 250ps Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Medindo o desempenho I Diferentes aplicações são sensíveis a diferentes aspectos do desempenho de um sistema I Servidores → desempenho de E/S I Tempo decorrido I Para melhorar o desempenho I Que métrica é importante I Procurar gargalos medindo execução Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Medindo o desempenho I Exercício: O desempenho do computador C é 4 vezes melhor do que o computador B, que leva 28s para executar uma determinada aplicação. Quanto tempo C levará para executar essa aplicação? Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Desempenho da CPU e seus Fatores I Desempenho examinado usando diferentes métricas I Se métricas pudessem ser relacionadas, poderíamos determinar os efeitos de uma mudança de projeto no desempenho I Fórmula que relaciona métricas de CPU: Tempo de execução da CPU para um programa = Ciclos de clock da CPU para um programa× Tempo do ciclo de clock (5) Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Desempenho da CPU e seus Fatores I De modo alternativo (velocidade de clock e tempo de ciclo são inversos) Tempo de execução da CPU para um programa = Ciclos de clock da CPU para um programa Velocidade do clock (6) I Como melhorar o desempenho? I Reduzindo a duração do ciclo de clock I Reduzindo o número de ciclos de clock necessário para um programa Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Exercício I Um programa é executado em 10s no computador A, com clock de 4GHz. Um computador B está sendo construído para executar este programa em 6s. Entretanto, B exigirá 1,2 vezes mais ciclos de clock do que A. Qual a velocidade de clock necessária para B? Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Exercício I Primeiro passo: quantos ciclos de CPU são necessários em A? Tempo de CPUA = Ciclos de clock da CPUA Velocidade do clockA 10 segundos = Ciclos de clock da CPUA 4× 109 ciclossegundo Ciclos de clock da CPUA = 4× 109 ciclos segundo × 10 segundos Ciclos de clock da CPUA = 4× 1010 ciclos (7) Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Exercício I Por fim, calculamos o tempo de CPU para B Tempo de CPUB = 1, 2× Ciclos de clock da CPUA Velocidade do clockB 6 segundos = 1, 2× 4× 10 10ciclos Velocidade de clockB Velocidade de clockB = 4, 8× 1010ciclos 6 segundos Velocidade de clockB = 8× 109ciclos segundos Velocidade de clockB = 8 GHz (8) Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Desempenho da CPU e seus Fatores I Compilador gera instruções que serão executadas por processador I Mas equação de desempenho não inclui referências para número de instruções I Execução deve depender de algum modo do total de instruções do programa I Mas quantidade de ciclos necessários para executar instrução pode variar, conforme a sua complexidade I Para facilitar, podemos pensar em quantidade média de ciclos por instrução Ciclos de clock da CPU = Total de instruções× Média de ciclos de clock por instrução (9) Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Desempenho da CPU e seus Fatores I Média dos ciclosde clock por instrução → CPI I CPI permite comparar duas implementações diferentes do mesmo conjunto de instruções Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Exercício I Suponha que tenhamos duas implementações da mesma arquitetura do conjunto de instruções (ISA). Para um determinado programa, a máquina A tem um tempo de ciclo de clock de 250 ps e uma CPI de 2,0 e a máquina B tem um tempo de ciclo de clock de 500 ps e uma CPI de 1,2. Que máquina é mais rápida para esse programa e o quanto? Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Exercício I Mesmo número de instruções I Número de ciclos de clock para cada computador I Ciclos de clock da CPUA = I× 2,0 I Ciclos de clock da CPUB = I× 1,2 I Tempo de CPU para cada computador: I Tempo de CPUA = Ciclos de Clock da CPUA × Tempo de Ciclo de ClockA → I × 2, 0× 250 ps = (500 ×I) ps I Tempo de CPUB = Ciclos de Clock da CPUB × Tempo de Ciclo de ClockB → I × 1, 2× 500 ps = (600 ×I) ps Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Exercício I A é mais rápido, mas o quão mais? DesempenhoA DesempenhoB = Tempo de ExecuçãoBTempo de ExecuçãoA = n (600× I)ps (500× I)ps = 1, 2 Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Equação Clássica do Desempenho da CPU I Fórmula de desempenho em função do número de instruções, CPI e tempo de ciclo de clock: Tempo de CPU = Contagem de instruções× CPI× Tempo de ciclo de clock (10) I ou Tempo de CPU = Contagem de instruções× CPIVelocidade de clock (11) I Três fatores chaves para desempenho Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Equação Clássica do Desempenho da CPU I Como determinar esses valores? I Tempo de CPU → execução do programa I Tempo de ciclo de clock → manuais I Contagem de instruções → ferramentas de trace de execução, simulador de arquitetura, contadores de hardware I CPI → contadores de hardware I Varia por aplicação e entre implementações do mesmo conjunto de instruções Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Equação Clássica do Desempenho da CPU I É possível calcular ciclos de clock da CPU usando contagem de ciclos individuais: Ciclos de clock da CPU = n∑ i=1 (CPIi × Ci) (12) I onde Ci é a contagem do número de instruções da classe i executadas, I CPIi é a média dos ciclos por instrução para a classe i e I n é o número de classes de instrução I CPI geral depende do número de ciclos para cada tipo de instrução e de suas frequências de execução. Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Exercício I Um projetista de compilador está tentando decidir entre duas sequências de código para um determinada máquina. Baseado na implementação de hardware, existem três classes diferentes de instruções: Classe A, Classe B e Classe C, e elas exigem um, dois e três ciclos, respectivamente. A primeira sequência de código possui 5 instruções: 2 de A, 1 de B e 2 de C. A segunda sequência possui 6 instruções: 4 de A, 1 de B e 1 de C. I Que sequência executa mais instruções? I Qual será mais rápida? I Qual é o CPI para cada sequência? Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho Próxima aula... I Abstrações e Tecnologias Computacionais I Desempenho (cont.) I A barreira da potência I Mudança de mares: passando de processadores para multiprocessadores I Vida real: fabricando chips do AMD Opteron X4 I Falácias e Armadilhas Departamento de Ciência da Computação Universidade Federal de Juiz de Fora Desempenho
Compartilhar