A maior rede de estudos do Brasil

Grátis
4 pág.
Como é determinada a velocidade dos computadores

Pré-visualização | Página 1 de 1

COMO É DETERMINADA A VELOCIDADE DOS COMPUTADORES?
Avaliar o desempenho/velocidade de um computador pode ser bastante complicado. A escala e a complexidade dos sistemas de softwares modernos, em conjunto com a ampla gama de técnicas de melhoria de desempenhos adotadas pelos projetistas de hardware, tornaram a avaliação de desempenho muito mais difícil. É simplesmente impossível sentar com um manual do conjunto de instruções e um sistema de software significativo e determinar, apenas por análise, a velocidade com que o software será executado no computador. 
Na verdade, para diferentes tipos de aplicações, diversas medições de desempenho podem ser apropriadas, e diferentes aspectos de um sistema computacional podem ser os mais significativos na determinação do desempenho geral.
O tempo é a medida do desempenho dos computadores: o computador que realiza a mesma quantidade de trabalho no menor tempo é o mais rápido. O tempo de execução do programa é medido em segundos por programa. No entanto, o tempo pode ser definido de diferentes maneiras, dependendo do que estamos contando. A definição mais simples é chamada tempo de relógio, tempo de resposta ou tempo decorrido. Esses termos significam o tempo total para completar uma tarefa, incluindo acessos a disco, acessos à memória, atividades de E/S, overhead do sistema operacional - tudo.
Em geral, se distingue entre o tempo decorrido e o tempo em que o processador está trabalhando para nós. O tempo de execução na CPU, é o tempo que a CPU gasta computando certa tarefa e não inclui o tempo gasto esperando E/S ou executando outros programas. Este pode ser dividido entre o tempo de CPU do usuário, o tempo que a CPU gasta efetivamente no programa e o tempo de CPU do sistema, o qual é o tempo que ele gasta no sistema operacional realizando tarefas a pedido do programa.
Quando examinamos os detalhes do computador, é conveniente pensar no desempenho para a métrica. Normalmente uma medida que se refira à rapidez com que o hardware pode realizar funções básicas. Os computadores são construídos com um relógio que trabalha em velocidade constante e determina quando os eventos ocorrem no hardware. Esses intervalos de tempo são chamados de ciclos de clock. Além disto, existe a duração período de clock que se refere ao tempo de cada ciclo de clock (medido em segundos) e a velocidade de clock, que é o inverso do período de clock (medindo em Hz - ciclos/segundo).
Ao determinar a velocidade se utiliza diferentes métricas. Limitando-se à velocidade da CPU, a medida de desempenho final seria o tempo de execução do CPU, que pode ser medido pelo produto entre os ciclos de clock para um programa e o tempo do ciclo de clock ou alternativamente, pela razão entre os ciclos de clock para um programa e a velocidade de clock.
Deixando claro que o desempenho ou velocidade pode ser melhorada reduzindo a duração do ciclo de clock ou o número de ciclos de clock necessários para um programa.
Temos como exemplo, um programa que necessita de 5 x 10^9 ciclos para ser executado em um CPU de 4GHz, o tempo de execução seria equivalente a: = 1,25 segundos.
Essas formulas não incluem qualquer referência ao número de instruções necessárias para o programa. Entretanto, como o compilador claramente gerou instruções para serem executadas e o computador precisou executar as instruções para rodar o programa, o tempo de execução tem de depender do número de instruções em um programa. Uma forma de pensar no tempo de execução é que ele é igual ao número de instruções executados multiplicado pelo tempo médio gasto por cada instrução. Logo, o número de ciclos necessários para um programa pode ser escrito como:
Rescrevendo as formulas anteriores: 
Ou
Essas formulas são especialmente úteis porque separam os três fatores-chave que afetam o desempenho/velocidade. Podemos usa-las para comparar duas implementações diferentes ou para avaliar um projeto alternativo.
O tempo de CPU pode ser obtido na execução do programa e a velocidade do clock geralmente é encontrada na documentação da CPU. O número de instruções e o CPI podem ser mais difíceis de obter. Podemos medir a contagem de instruções usando ferramentas de software que traçam o perfil de execução ou usar contadores de hardware que fornecem o número de instruções e o CPI Médio.
É importante lembrar que a única medida completa e confiável do desempenho do computador é o tempo. Muitas outras métricas foram propostas e consideradas deficientes. Algumas vezes por não refletirem o tempo de execução, outras por serem válidas em um contexto, porem estendidas além deste ou sem esclarecimento adicional. 
Da mesma forma, qualquer medida que resuma o desempenho deve refletir o tempo de execução. A média aritmética ponderada resume o desempenho enquanto monitora o tempo de execução. 	Pelo uso de pesos, uma média aritmética ponderada pode se ajustar para diferentes tempos de execução, equilibrando a contribuição de diversos testes/benchmarks na análise.
Temos por exemplo a métrica MIPS (Milhões de instruções por segundo), que é simplesmente: 
Considerada uma taxa de execução de instruções, ele especifica o desempenho de maneira inversa ao tempo de execução; computadores mais rápidos podem ter um índice MIPS mais alto. O MIPS é fácil de ser entendido, no entanto infelizmente usar este número como a única maneira de medir o desempenho é algo ineficiente e certas vezes enganador, já que dois processadores individuais nunca usam o mesmo tipo de instruções, métodos de execução etc.
Há também a medida FLOPS (operações de ponto flutuante por segundo), frequentemente aplicadas a supercomputadores envolvidos grandes números de cálculo. Sendo a multiplicação e divisão como as operações mais intensivas. 
Como exemplo, um processador hipotético rodando a 3GHz (3 bilhões de ciclos por segundo), uma multiplicação de ponto flutuante leva 10 ciclos parar completar. Como resultado, esse processador desempenharia 300 MFLOPS. Vários processadores são capazes de executar um FLOP em um ou dois ciclos de clock ou desempenhar em paralelo. Continuando o exemplo, se o processador tivesse duas unidades de execução de ponto flutuante, poderia ter sua medida dobrada sem uma mudança no seu clock. E essa medida pode variar, além da arquitetura utilizada, com o tipo de tarefa executada, por isso deve ser utilizada em contextos bem específicos.
Logo, para determinar a velocidade/desempenho de um computador com eficácia é necessário entender como os seus diferentes parâmetros se relacionam e afetam o resultado final e o que ele nos diz. Esse conhecimento envolve uma ampla variedade de questões, desde a eficácia do compilador até a contagem de instruções, CPI e a interação entre a tecnologia e a organização que determinam a velocidade do clock.