MEDIDA E ANÁLISE DE DESEMPENHO AULA 14 Arquitetura de Computadores Gil Eduardo de Andrade



Documentos relacionados
Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Resolução de sistemas lineares

por séries de potências

Organização de Computadores

Medidas de Desempenho e a Lei de Amdahl

Arquitetura e Organização de Computadores Aula 5 Consolidando Conhecimentos de Desempenho e Resumindo Prof. Julio Saraçol

FILOSOFIA SEM FILÓSOFOS: ANÁLISE DE CONCEITOS COMO MÉTODO E CONTEÚDO PARA O ENSINO MÉDIO 1. Introdução. Daniel+Durante+Pereira+Alves+

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

ARQUITETURA DE COMPUTADORES

Ensaio de impacto. Os veículos brasileiros têm, em geral, suspensão

Arquitetura de processadores: RISC e CISC

Seminário de Avaliação Econômica de Projetos Sociais

Algumas características especiais

Linguagem de Programação

Software Livre e Engenharia Elétrica

Introdução à Engenharia de Computação

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

5 Considerações finais

PMBoK Comentários das Provas TRE-PR 2009

2. A influência do tamanho da palavra

PESQUISA EM INFORMÁTICA -ESTILOS DE PESQUISA EM COMPUTAÇÃO. Prof. Angelo Augusto Frozza, M.Sc.

ARQUITETURA DE COMPUTADORES

Aula 4 Estatística Conceitos básicos

3 Estratégia para o enriquecimento de informações

MATEMÁTICA A - 12o Ano Probabilidades - Triângulo de Pascal Propostas de resolução

Organização de Computadores

COMO CALCULAR A PERFORMANCE DOS FUNDOS DE INVESTIMENTOS - PARTE I

Implementando uma Classe e Criando Objetos a partir dela

análisederisco empresarial

AMOSTRAGEM ESTATÍSTICA EM AUDITORIA PARTE ll

UM CAMINHO SIMPLES PARA UMA NUVEM PRIVADA

Unidade 5: Sistemas de Representação

O Princípio da Complementaridade e o papel do observador na Mecânica Quântica

ADMINISTRAÇÃO GERAL MOTIVAÇÃO

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Computador Digital Circuitos de um computador (Hardware)

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Faculdade de Computação

ITIL v3 - Operação de Serviço - Parte 1

Data 23/01/2008. Guia do Professor. Introdução

Especificação dos Requisitos do Software. Sistema de Controle e Gerenciamento de Loja de Vestuários e Acessórios

OBJETIVO VISÃO GERAL SUAS ANOTAÇÕES

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

POR UNANIMIDADE 06 (seis) meses

Medindo a Produtividade do Desenvolvimento de Aplicativos

Introdução a Banco de Dados Aula 03. Prof. Silvestri

O Planejamento Participativo

1 A Integral por Partes

Faculdade Sagrada Família

Em minha rotina, frequentemente converso com gestores de vendas e marketing dos mais variados setores e indústrias. Na maioria dos casos faço algumas

Trabalho de Implementação Jogo Reversi

Especificação Operacional.

GUIA DE BOAS PRÁTICAS

ASPECTOS CONCEITUAIS OBJETIVOS planejamento tomada de decisão

Estruturas de Repetição

Casos de uso Objetivo:

Eventos independentes

Válvulas de Controle-"Case"- Copesul. Nelzo Luiz Neto da Silva 1 Jader Weber Brum 2

Aula 2 Sistemas de Numeração (Revisão)

O sucesso de hoje não garante o sucesso de amanhã

Exercícios Teóricos Resolvidos

3. O NIVEL DA LINGUAGEM DE MONTAGEM

MODELAGEM E SIMULAÇÃO

ALGORITMOS E FLUXOGRAMAS

Como erguer um piano sem fazer força

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

Consumidor e produtor devem estar

Capítulo 5: Aplicações da Derivada

SONDAGEM ESPECIAL PRODUTIVIDADE RIO GRANDE DO SUL. Sondagem Especial Produtividade Unidade de Estudos Econômicos Sistema FIERGS

Memória RAM. A memória RAM evolui constantemente. Qual a diferença entre elas? No clock (velocidade de comunicação com o processador)

QUALIDADE DE SOFTWARE

Módulo 9 A Avaliação de Desempenho faz parte do subsistema de aplicação de recursos humanos.

Desenvolvimento de uma Etapa

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

Programação em papel quadriculado

Álgebra. SeM MiSTéRio

QUALIDADE DE SOFTWARE

Normas Internacionais de Avaliação. Preço Custo e valor Mercado Abordagem de valores Abordagens de avaliação

Canvas e Elevator Pitch: como uma organização cria, entrega e captura valor. Poli.Design

DESENVOLVENDO O SISTEMA

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 11 PESQUISA DE MERCADO

GBD PROF. ANDREZA S. AREÃO

Montagem e Manutenção. Luís Guilherme A. Pontes

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO

Módulo 4. Construindo uma solução OLAP

Processos Administrativos de Compras

1. Introdução. Avaliação de Usabilidade Página 1

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013

Empreenda! 9ª Edição Roteiro de Apoio ao Plano de Negócios. Preparamos este roteiro para ajudá-lo (a) a desenvolver o seu Plano de Negócios.

INVESTIMENTO A LONGO PRAZO 1. Princípios de Fluxo de Caixa para Orçamento de Capital

Judgment Você toma milhares de decisões todos os dias, das mais simples às mais importantes. Quais serão as certas?

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

Aula 3 CONSTRUÇÃO DE GRÁFICOS EM PAPEL DILOG. Menilton Menezes. META Expandir o estudo da utilização de gráficos em escala logarítmica.

Sistema de Reserva de Laboratório Trabalho Semestral Versão 1.0

Disciplina: Alfabetização

Transcrição:

MEDIDA E ANÁLISE DE DESEMPENHO AULA 14 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização de Computadores Linda Null e Julia Labur Se você não pode medir, você não pode administrar - Peter Drucker Números nem sempre são fatos - Ditado Americano INTRODUÇÃO A escolha de ferramentas quantitativas para media de desempenho não é uma tarefa trivial, vista a dificuldade em ter-se certeza que as ferramentas escolhidas atendem aos objetivos da avaliação? Além disso, fornecedores de sistemas são fortemente motivados a distorcer números para fazer com que sua marca pareça melhor que a de seus concorrentes. O conteúdo desta aula será útil quando houver a necessidade de selecionarmos um novo sistema ou estivermos tentando melhorar a performance de um já existente. Boas ferramentas de desempenho (geralmente fornecidas pelo fabricante) também são uma ajuda indispensável para manter um sistema funcionando da melhor maneira possível. Equações de Performance de Computador A equação apresentada logo abaixo é de fundamental importância para avaliar o desempenho de computadores, medindo o tempo de UCP: onde o tempo por programa é o tempo requerido de UCP. A análise desta equação revela que a otimização de UCP pode ter um efeito dramático na performance. Máquinas RISC tentam reduzir o número de ciclos por instrução e máquinas CISC tentam reduzir o número de instruções por programa. A otimização da UCP não é a única maneira de aumentar o desempenho do sistema. Memória e E/S também pesam muito na sua vazão (número de tarefas que o sistema pode realizar sem afetar de forma adversa o tempo de resposta). Contudo, a contribuição da memória e da E/S não é considerada na equação básica. Para aumentar o desempenho geral de um sistema, temos as seguintes opções: Otimização da UCP: maximizar a velocidade e a eficiência das operações realizadas pela UCP. Otmização da memória: Maximizar a eficiência de um código de gerenciamento de memória. Otimização da E/S: Maximizar a eficiência de operações de entrada/saída. Uma aplicação cujo o desempenho geral é limitado por um dos ítens acima é dita ser limitada por UCP, limitada por memória ou limitada por E/S, respectivamente. Antes de continuarmos vamos relembrar a lei de Amdahl, que afirma que uma melhoria de desempenho a ser obtida, pelo uso de algum modo de execução mais rápido, está limitada pela fração de tempo em que o modo mais rápido é usado:

S aceleação geral do sistema f fração de trabalho realizado k aceleração do novo componente (melhoria) Assim a melhoria mais evidente no desempenho do sistema é obtida quando a performance dos componentes mais frequentementes usados é melhorada. Saber que um sistema é limitado por UCP, por memória ou limitado por E/S é o primeiro passo na direção da melhoria do seu desempenho. Ferramentas Matemáticas Medidas de desempenho dependem do ponto de vista individual. Um usuário de computador está mais preocupado com tempo de resposta: o tempo total para o sistema realizar uma tarefa. Administradores de sistema estão mais preocupados com vazão: quantas tarefas concorrentes o sistema pode realizar sem afetar de forma adversa seu tempo de resposta. Estes dois pontos de vista são inversamente relacionados. Especificamente, se um sistema realiza uma tarefa em k segundos, sua vazão é 1/k destas tarefas por segundo. Na comparação de performance de dois sistemas, medimos o tempo que cada um leva para realizar a mesma quantidade de trabalho. Se o mesmo programa é executado nos dois sistemas, Sistema A e Sistema B, o Sistema A é n vezes mais rápido que o sistema B se: O Sistema A é x% mais rápido do que o sistema B se: Estas fórmulas são úteis na comparação do desempenho médio de um sistema com o desempenho médio de outro sistema. Entretanto, o número que obtemos com elas é muito dependente de nossa definição de média no desempenho real de sistemas. Média Aritmética A média aritmética é aquela com a qual a maioria das pessoas está mais familiarizada. Se temos cinco medidas, as somamos e dividimos por cinco, o resultado é a média aritmética. Esse tipo de média não deve ser usada quando os dados são altamente variáveis ou distorcidos em direção a valores maiores ou menores. Nesses casos a média aritmética ponderada é melhor que a aritmética porque pode nos dar um cenário mais claro do comportamento esperado do sistema. A média poderada é encontrada fazendo os produtos da freqüência de execução pelo tempo de execução do programa.

Tabela 1: Média aritmética de tempo de execução em segundos de cinco programas nos três sistemas. A média ponderada (tabela 2) dos tempos de excução para estes cincos programas sendo executados no Sistema A é: (50 x 0,5) + (200 x 0,3) + (250 x 0,1) + (400 x 0,05) + (5000 x 0,05) = 380. Um cálculo similar revela que a média ponderada dos tempos de execução para estes cinco programas sendo executados no Sistema B é de 695 segundos. Usando a média ponderada, agora vemos claramente que o Sistema A é cerca de 83% mais rápido do que o Sistema C para esta carga de trabalho específica. Tabela 2: Mix de execução de cinco programas em dois sistemas e a média ponderada dos tempos de execução. BENCHMARKING Benchmarking de performance é a ciência de fazer avaliações objetivas do desempenho de um sistema em relação a um outro. Benchmarks são também úteis para determinar melhorias de performance obtidas pela atualização de um sistema ou de seus componentes. Bons benchmarks nos permitem avaliar propagandas enganosas e truques estatísticos, pois irão identificar os sistemas que fornecem um bom desempenho a um custo mais razoável. Em poucas palavras, um desempenho ótimo é obtido quando um sistema de computação executa a sua aplicação usando a menor quantidade de tempo (de relógio) possível. Ciclos de relógio, MIPS e FLOPS A velocidade da UCP, por si, é a métrica enganosa (infelizmente) mais frequentemente utilizada por vendedores de computadores, que alegam a superioridade de seus sistemas sobre todos os outros. Em sistemas arquitetonicamente idênticos, uma UCP executando ao dobro da velocidade de relógio do que uma outra UCP provavelmente vai fornecer uma vazão melhor.

Mas ao comparar ofertas de diferentes vendedores, os sistemas provavelmente não serão arquitetonicamente idênticos. (Caso contrário, ninguém poderia alegar uma margem de vantagem competitiva). Uma métrica amplamente citada relacionada ao ciclo de relógio é a métrica milhões de instruções por segundo (MIPS). Isso mede a razão na qual o sistema pode executar uma combinação típica de instruções de aritmética inteira, ponto flutuante e operações lógicas. No entanto arquiteturas diferentes de máquinas requerem um número diferente de ciclos para realizar uma dada tarefa. A métrica MIPS não considera o número de instruções necessárias para completar uma tarefa esécífica. A diferença mais evidente pode ser vista quando comparamos sistemas RISC com sistemas CISC. Digamos que solicitamos a ambos os sistemas a execução de uma operação de divisão inteira. O sistema CISC pode realizar 20 instruções binárias de máquina antes de dar a resposta final. O sistema RISC pode executar 60 instruções. Se ambos os sistemas derem a resposta em um segundo, o índice MIPS do sistema RISC seria o triplo daquele do sistema CISC. Podemos honestamente dizer que o sistema RISC é três vezes mais rápido do que o sistema CISC? Claro que não: em ambos os casos recebemos a nossa resposta em um segundo. Também existe um problema similar com a métrica FLOPS (operações de pontoflutuante por segundo). Megaflops ou MFLOPS é a métrica originalmente usada para descrever a potência de supercomputadores, mas que agora é citada em literatura de computadores pessoais. A métrica FLOPS é ainda mais enganosa do que a métrica MIPS porque não existe consenso sobre o que constitui uma operação de ponto-flutuante. Apesar de suas deficiências, velocida de relógio, MIPS e FLOPS podem ser métricas úteis na comparação de desempenho de uma linha de computadores similares oferecidos pelo mesmo vendedor. Assim se um vendedor oferece uma atualização de seu sistema dos atuais x MIPS para um 2x MIPS, você terá uma ideia mais precisa da melhoria de performance que estará obtendo de acordo com o custo necessário para tal. Benchmarks sintéticos: Whetstone, Linpack e Dhrystone Pesquisadores de computação lutaram por muito tempo para definir um único benchmark que pudesse permitir comparações de performance honestas e confiáveis, embora independentes da organização e da arquitetura de qualquer tipo de sistema. A ideia predominante naquela época era que se podia escrever um programa usando uma linguagem como C, compilá-lo e executá-lo em diversos sistemas. O tempo de execução resultante poderia levar a uma única métrica de performance de todos os sistemas testados. Métricas de performance derivadas desta maneira são chamadas de benchmarks sintéticos porque não necessariamente representam qualquer carga de trabalho ou aplicação específica. Três dos mais conhecidos benchmarks sintéticos são as métricas Whetstone, Linpack e Dhrystone. O programa de benchmark Whetstone foi publicado em 1976, sendo seu código muito intensivo em ponto-flutuante, utilizando rotinas de bibliotecas de funções trigonométricas e exponenciais. Seus resultados são divulgados em Kilo-Whetstone Instruções por segundo ou Mega-Whetstone Instruções por segundo. Outra fonte para performance de ponto flutuante é o benchmark Linpack. O Linpack, uma contração de LINear algebra PACKage, é uma coleção de sub-rotinas denominadas Basic Linear Algebra Subrotines (BLAS) que resolviam sistemas de equações lineares usando aritmética de dupla precisão. Contudo cálculos de ponto-flutuante de alta velocidade certamente não são importantes para todos os usuários de computadores. Reconhecendo isso, Reinhold P. Weicker escreveu um programa de benchmark que focava operações de manipulação de strings e inteiros. Ele denominou seu programa de benchmark Dhrystone. O programa é limitado por UCP, não executando E/S e chamadas de sistema. Os resultados de Dhrystone são reportados usando simplesmente Dhrystones por segundo (o número de vezes que o programa de teste pode ser executado em um segundo) e não em DIPS ou Mega-DIPS.

Benchmarks padrão de avaliação de performance A ciência de avaliação de performance de computadores se beneficiou enormente das contribuições dos benchmarks Whetstone, Linpack e Dhrystone. A SPEC (Standard Performance Evalution Corporation) foi fundada em 1988, seu principal objetivo é estabelecer métodos imparciais e realistas para avaliação de performance de computadores. O mais amplamente conhecido (e respeitado) dentre os benchmarks SPEC é sua suite UCP, que mede vazão de UCP, velocidade de acesso a cache e memória e eficiência de compilador. A última versão benchmarks é UCP2000. Ele consiste de duas partes: CINT2000, que mede quão bem um sistema realiza o processamento de inteiros e CFP2000, que mede a performance de ponto-flutuante. O CINT2000 consiste de 12 aplicações, 11 das quais são escritas em C e uma em C++. A suite CPF2000 consiste em 14 aplicações, 6 das quais são escritas FORTRAN 77, 4 em FORTRAN 90 e 4 em C. Os resultados (vazão do sistema) obtidos na execução destes programas são reportados como uma razão entre o tempo que o sistema sob teste demora para executar e o tempo que uma máquina de referência leva para executar o mesmo suite.