Você está na página 1de 19

Aula 3 - Abstrações e Tecnologias

Computacionais
Organização de Computadores
Prof. Matheus Avila Moreira de Paula
matheusavila@cefetmg.br

Engenharia de Computação
Centro Federal de Educação Tecnológica Leopoldina

Matheus Avila (CEFETMG - LP) 1


Desempenho

▶ 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.
■ Que sequência executa mais instruções?
■ Qual será mais rápida?
■ Qual é o CPI para cada sequência?

Matheus Avila (CEFETMG - LP) 2


Desempenho

▶ Que sequência executa mais instruções?


■ Sequência 1: 2 + 1 + 2 = 5 instruções
■ Sequência 2: 4 + 1 + 1 = 6 instruções
▶ Qual será mais rápida?

▶ Ciclos de Clock da CPU1 = (2 × 1) + (1 × 2) + (2 × 3) = 10 ciclos


▶ Ciclos de Clock da CPU2 = (4 × 1) + (1 × 2) + (1 × 3) = 9 ciclos
▶ Qual é o CPI para cada sequência?
■ Ciclos de clock da CPU = Instruções para um programa × CPI
■ CPI1 = 10/5 = 2
■ CPI2 = 9/6 = 1,5

Matheus Avila (CEFETMG - LP) 3


A Barreira da Potência

▶ Durante décadas, frequência de clock e potência no processador cresceram


rapidamente
■ Potência: energia por tempo
▶ Recentemente, mantêm-se estáveis, devido a limitações práticas impostas
pela potência
▶ Ambas estão correlacionadas

Matheus Avila (CEFETMG - LP) 4


A Barreira da Potência

Matheus Avila (CEFETMG - LP) 5


A Barreira da Potência

▶ Cerca de 60% do consumo primário de energia em um processador com tecnologia


CMOS decorre da comutação dos transistores
■ Chamado de potência dinâmica
▶ Potência = Carga capacitativa × Voltagem 2 × Frequência de comutação dos
transistores
▶ Frequência de comutação dos transistores é uma função da frequência de clock
▶ Carga capacitativa é uma função da tecnologia e número de transistores
conectados a uma entrada (fan-out)
▶ Voltagem sendo reduzida, em média, 15% entre gerações: passou de 5V para 1V

Matheus Avila (CEFETMG - LP) 6


A Barreira da Potência

▶ Outros 40% do consumo decorrentes de perdas de energia


■ Decorrentes de vazamento de corrente, mesmo quando transistor desligado
■ Chamado de potência estática
▶ Para tentar endereçar o problema da potência, projetistas tentaram empregar
grandes dissipadores e desligar partes não usadas dos processadores
▶ Existem outras técnicas que poderiam ser empregadas, mas são custosas
para emprego em desktops.
▶ Saída para a barreira imposta pela potência: emprego de múltiplos
processadores

Matheus Avila (CEFETMG - LP) 7


De Uniprocessadores para Multiprocessadores

▶ Ao invés de continuar a reduzir o tempo de resposta de um único programa


executando em um uniprocessador, fabricantes optaram por aumentar o
número de processadores por chip
■ Abordagem beneficia mais vazão do que o tempo de resposta
■ A não ser que programador escreva aplicações paralelas

▶ Termo core (ou núcleo) usado para se referir a cada processador


■ Logo máquina “quadcore” possui quatro processadores no chip

Matheus Avila (CEFETMG - LP) 8


De Uniprocessadores para Multiprocessadores

Matheus Avila (CEFETMG - LP) 9


Desempenho do AMD Opteron X4

▶ Usuário que sempre executa o mesmo conjunto de programas seria um bom


candidato para avaliar um novo computador
▶ Conjunto de programas executados formaria o workload
▶ Para avaliar dois sistemas computacionais, basta executar o mesmo
workload em ambos
▶ Nem todos os usuários podem avaliar sistemas computacionais deste modo
▶ Confiam em resultados de benchmarks
■ Conjunto de programas escolhidos para comparar o desempenho de computadores

Matheus Avila (CEFETMG - LP) 10


Desempenho do AMD Opteron X4

▶ SPEC (System Performance Evaluation Cooperative)


■ Empresas concordaram sobre um conjunto de programas e entradas
reais
■ Valioso indicador do desempenho (e da tecnologia do compilador)
■ Benchmarks para CPU, gráficos, computação de alto desempenho,
computação orientada a objetos, aplicações Java, modelo
cliente-servidor, e-mail, sistemas de arquivos, servidores Web.
■ Mais recente: SPEC CPU2006
● Formado por 12 aplicações que usam tipos de dados inteiros
● (CINT2006) e 17 que usam tipos de dado ponto-flutuante
● (CFP2006)

Matheus Avila (CEFETMG - LP) 11


Desempenho do AMD Opteron X4

Matheus Avila (CEFETMG - LP) 12


Falácias e Armadilhas

▶ Falácias: conceitos errôneos comuns


▶ Armadilhas: erros facilmente cometidos
■ Geralmente generalizações de princípios verdadeiros em um contexto restrito
▶ Armadilha 1: Esperar que a melhoria de um aspecto de um computador leve
à um aumento de desempenho em quantidade proporcional ao tamanho
desta melhoria

Matheus Avila (CEFETMG - LP) 13


Falácias e Armadilhas

▶ Exercício: Suponha que um programa seja executado em 100 segundos em


uma máquina, com multiplicação responsável por 80 segundos desse tempo.
O quanto precisamos melhorar a velocidade da multiplicação se queremos
que o programa seja executado 5 vezes mais rápido?

Matheus Avila (CEFETMG - LP) 14


Falácias e Armadilhas

▶ Lei de Amdahl

▶ No caso do exemplo, temos:

▶ Como queremos que o tempo melhore 5 vezes, o novo tempo de execução deve
ser de 20s
▶ Conclusão: A melhoria de desempenho possível é limitada pela quantidade em que
o recurso aprimorado é usado
■ Torne o caso comum rápido

Matheus Avila (CEFETMG - LP) 15


Falácias e Armadilhas

▶ Armadilha 2: Usar um subconjunto da equação de desempenho como uma


métrica de desempenho
▶ MIPS (Milhões de instruções por segundo)

▶ Problemas com MIPS:


■ Não leva em conta o tipo das instruções
■ Computadores com diferentes conjuntos de instruções terão contagens de instruções
diferentes
■ MIPS pode variar inversamente com o desempenho

Matheus Avila (CEFETMG - LP) 16


Falácias e Armadilhas

▶ Considere o computador com três classes de instruções e medições de CPI


do exemplo do fim da última aula. Agora suponha que, medindo o código
gerado por dois compiladores diferentes para o mesmo programa, obtivemos
os seguintes dados: código do compilador 1 gerou 5 bilhões de instruções da
classe de instruções A, 1 bilhão de B e 1 bilhão de C; o compilador B gerou
10 bilhões de instruções da classe A, 1 bilhão de B e 1 bilhão de C.
Considere o computador com clock de 4GHz. Que sequência de código será
executada mais rápido de acordo com o MIPS? E de acordo com o tempo de
execução?

Matheus Avila (CEFETMG - LP) 17


Falácias e Armadilhas

▶ Primeiro encontramos o tempo de execução para cada compilador usando

Matheus Avila (CEFETMG - LP) 18


Falácias e Armadilhas

▶ Pelo tempo de computação, compilador 1 gera o código mais rápido.


▶ Vamos agora ver o que o MIPS nos diz:

▶ Compilador 2 possui MIPS mais alto, porém código do compilador 1 é executado


mais rápido

Matheus Avila (CEFETMG - LP) 19

Você também pode gostar