40
Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD

Desempenho de cpu

  • Upload
    abner

  • View
    66

  • Download
    0

Embed Size (px)

DESCRIPTION

Arquitetura e Organização de Computadores 1 José Hiroki Saito Igor Marçal Botamede Spadoni – PESCD. Desempenho de cpu. Eficiência de um sistema inteiro Avaliar e compreender o desempenho trata: Medir Informar Resumir Fatores determinantes. Desempenho de cpu – Introdução. - PowerPoint PPT Presentation

Citation preview

Arquitetura e Organização de Computadores 1José Hiroki Saito

Igor Marçal Botamede Spadoni – PESCD

Eficiência de um sistema inteiro Avaliar e compreender o desempenho

trata: Medir Informar Resumir Fatores determinantes

2

É complexo avaliar o desempenho desse tipo de sistema Complexidade e escala dos softwares

modernos Ampla gama de técnicas de melhoria de

desempenho Impossível sentar com um manual do

conjunto de instruções e determinar a velocidade de execução de um sistema

3

Desempenho é um fator importante para os projetistas O que determina o desempenho de um

computador?

4

Analogia com aviões de passageiro

Desempenho determinado pela velocidade: Quão rápido é o Concorde comparado com o

747? 1 passageiro de um ponto a outro 450 passageiro de um ponto a outro

5

Avião Passageiros Autonomia (mi) Velocidade (mph)

Boeing 777 375 4630 610Boeing 747 470 4150 610BAC/Sud Concorde 132 4000 1350Douglas DC-8-50 146 8720 544

Tempo de Resposta (latência) Quanto tempo leva para executar uma tarefa?

Throughput Quantas tarefas a máquina pode executar de

uma vez? O que é a taxa média de execução?

Qual o impacto, se substituir o processador por uma versão mais rápida?

Qual o impacto, se adicionarmos uma nova máquina no laboratório?

6

Tempo de Resposta ou Tempo de Execução Tempo entre inicio e término de uma tarefa Diminuir o tempo de resposta quase

sempre melhora a vazão Dizer que uma máquina A é n vezes mais

rápida que uma máquina B significa que:

7

nxecuçãotempo de e

xecuçãotempo de e

A

B

Desempenho é definido como o inverso do tempo de execução

Desempenho Relativo

8

AA

1desempenho

xecuçãotempo de e

B

A

A

B

A

B1

1

desempenho

desempenho

desempenho

desempenho

xecuçãotempo de e

xecuçãotempo de en

Problema: máquina A executa um programa em 10

segundos máquina B executa o mesmo programa em

15 segundosCalcular n

5,110

15A

B

B

A

n

n

xecuçãotempo de e

xecuçãotempo de e

desempenho

desempenhon

Tempo decorrido Tempo de CPU gasto no SO realizando as

tarefas a pedido do programa Tempo de CPU

Não conta E/S ou tempo dispendido rodando outros programas

significa o tempo que a CPU consome computando

Nosso foco: tempo de CPU do usuário tempo gasto executando linhas de código que

estão “dentro” do nosso programa

Caracterizado por limitações de tempo real

Dois tipos de limitações Tempo real rígido

Define um limite fixo para responder ou processar um evento (ex: freio antitravamento)

Tempo real flexível Uma resposta média ou uma resposta dentro

de um tempo limitado a uma grande fração dos eventos (ex: manipular quadros de vídeos em um sistema de reprodução)

11

Métricas utilizadas Ciclos de clock Tempo de ciclo Instruções por programa Média dos ciclos de clock por instrução

ou

12

cloempo do ci clock x t ciclos dexecução tempo de e

de clockvelocidade

clockciclos de xecuçãotempo de e

Porém nas equações anteriores não fazemos referência ao número de instruções necessárias para o programa, logo o número de ciclos de clock pode ser estendido como:

Ciclos de clock por instrução pode ser chamado como CPI

13

rução por instama o progr iclosédia dos cs para x m Instruçõeclock ciclos de

cloempo do cie Inst x t CPIx Nº dxecução tempo de e

Ao invés de reportar o tempo de execução em segundos, geralmente usa-se ciclos

Um “tick” de clock indica quando se inicia uma atividade Tempo de ciclo = tempo entre ticks =

segundos por ciclo Taxa de clock (frequência) = ciclos por

segundo (1 Hz. = 1 ciclo/s)

Assumir que # de ciclos = # de instruções

Essa consideração é apenas uma aproximação, pois diferentes instruções levam diferentes tempos para serem executadas.

time

1st

inst

ruct

ion

2nd

inst

ruct

ion

3rd

inst

ruct

ion

4th

5th

6th ...

Multiplicação leva mais tempo que soma Operações de ponto flutuante levam

mais tempo que operações de inteiros Acessar memória leva mais tempo que

acessar registradores Importante: alterando o tempo de ciclo muitas vezes

altera o número de ciclos requerido para várias instruções

tempo

Computador A executa um programa em 10 segundos e tem um clock de 4 GHz

Computador B execute esse programa em 6 segundos e B exija 1,2 vez mais ciclos de clock do que o computador A

Qual a velocidade de clock de B?

17

18GHz de clockvelocidade

xx, de clockvelocidadex s

de clockvelocidade

clockxciclos dexecuçãotempo de e

xclockciclos de

x

clockciclos de

de clockvelocidade

clockciclos de xecuçãotempo de e

B

B

B

AB

A

A

A

AA

8

104021 6

2,1

ciclos 1040

104 s 10

9

9

9

Um dado programa irá requerer Certo número de instruções (instruções de

máquina)

Certo número de ciclos

Certo tempo em segundos

A única medida completa e confiável do desempenho é o tempo

20

ograma

SegundosTempo

clockCiclos de

SegundosX

Instruções

clockCiclos de X

ograma

InstruçõesTempo

Pr

Pr

Componentes de desempenho Unidades de medidaTempo de execução da CPU de um programa Segundos para o programa

Contagem de instruções Instruções executadas para o programa

CPINúmero médio de ciclos de clock por instrução

Tempo do ciclo de clock Segundos por ciclo de clock

MIPS Milhões de instruções por segundo

Número de instruções de código de máquina que o processador pode executar em um segundo

Porém não é possível usá-lo como medida de desempenho

21

610xecução X Tempo de E

ruçõesNº de InstMIPS

22

Componente de hardware ou software

Afeta o quê? Como?

Algoritmo

Contagem de instruções,

possivelmente o CPI

Determina o Nº de instruções do programa fonte executadas.

Pode favorecer instruções mais lentas ou rápidas.

Linguagem de Programação

Contagem de instruções e CPI

Instruções da linguagem traduzidas em instrução do processador.

Pode usar chamadas indiretas (CPI mais altos).

CompiladorContagem de

instruções e CPI

Afeta a contagem de instruções e a média de CPI já que determina a

tradução da linguagem de programação para instrução

Conjunto de instruções

Contagem de instruções,

velocidade de clock e CPI

Afeta as instruções necessárias para função, o custo em ciclos de cada instrução e a velocidade geral do

processador.

O desempenho é determinado pelo tempo de execução

As variáveis abaixo não determinam o desempenho: N° de ciclos para executar um programa; N° de instruções num programa; N° de ciclos por segundo; N° médio de ciclos por instrução; e N° médio de instruções por segundo.

Considerar que temos duas implementações da mesma arquitetura do conjunto de instruções (ISA). Para certo programa:Máquina A tem um tempo de ciclo de clock de 250 ps e um CPI de 2.0 Machine B tem um tempo de ciclo de clock de 500 ps e um CPI de 1.2

Qual máquina é mais rápida para esse programa, e por quanto?

25

2,1500

600

6005002,1

5002500,2

21

02

A

B

xIps

xIps

xecuçãotempo de e

xecuçãotempo de en

xIpspsxIx

clock ciclo de x tempo doclockciclos de Tempo

xIpspsxIx

clock ciclo de x tempo doclockciclos de Tempo

,Ixclockciclos de

,Ixclockciclos de

BBB

AAA

B

A

Um projetista de compilador está tentando decidir entre duas sequências de código para uma máquina particular. Baseado numa implementação de hardware, existem 3 classes diferentes de instruções: Classe A, Classe B, e Classe C, que requerem um, dois e três ciclos (respectivamente).

A primeira sequência tem 5 instruções: 2 de A, 1 de B, e 2 de CA segunda sequência tem 6 instruções: 4 de A, 1 de B, e 1 de C.

Qual sequência será mais rápida? Quanto?Qual o CPI para cada sequência?

Determinação melhor do desempenho executando aplicações reais Usa programas típicos de carga de trabalho (workload) desejada Ou, típicos de classes de aplicações desejadas

ex., compiladores/editores, aplicações científicas, gráficos, etc.

Pequenos benchmarks Bom para arquitetos e projetistas Fácil para padronização Podem ser abusados (usados erroneamente)

SPEC (System Performance Evaluation Cooperative) As companhias adotam um conjunto de programas reais

Podem ser abusados

Gráfico de “melhoramento” do compilador e desempenho

0

100

200

300

400

500

600

700

800

tomcatvfppppmatrix300eqntottlinasa7doducspiceespressogcc

BenchmarkCompiler

Enhanced compiler

SPEC

perform

ance

ratio

Benchmark Description

go Artificial intelligence; plays the game of Gom88ksim Motorola 88k chip simulator; runs test programgcc The Gnu C compiler generating SPARC codecompress Compresses and decompresses file in memoryli Lisp interpreterijpeg Graphic compression and decompressionperl Manipulates strings and prime numbers in the special-purpose programming language Perlvortex A database program

tomcatv A mesh generation programswim Shallow water model with 513 x 513 gridsu2cor quantum physics; Monte Carlo simulationhydro2d Astrophysics; Hydrodynamic Naiver Stokes equationsmgrid Multigrid solver in 3-D potential fieldapplu Parabolic/elliptic partial differential equationstrub3d Simulates isotropic, homogeneous turbulence in a cubeapsi Solves problems regarding temperature, wind velocity, and distribution of pollutantfpppp Quantum chemistrywave5 Plasma physics; electromagnetic particle simulation

Dobrando a taxa de clock dobra o desempenho?

Uma máquina com uma taxa de clock lenta pode ter um melhor desempenho?

Clock rate (MHz)

SP

EC

int

2

0

4

6

8

3

1

5

7

9

10

200 25015010050

Pentium

Pentium Pro

PentiumClock rate (MHz)

SP

EC

fp

Pentium Pro

2

0

4

6

8

3

1

5

7

9

10

200 25015010050

As decisões de projeto devem favorecer os casos mais freqüentes: tornar rápido o caso mais comum

A lei de Amdahl define o speed up (S), que consiste do ganho em desempenho que pode ser obtido ao melhorar determinada característica do computador

31

Speed Up (S)

32

melhoria ausar sem operação a todade desempenho

melhoria a usando operação a todade desempenhoS

melhoria a usando operação a todade execução de tempomelhoria ausar sem operação a todade execução de tempoS

O speed up a partir de alguma melhoria depende de dois fatores

A fração do tempo de computação na máquina original que pode tirar vantagem da melhoria (Fmelhoria): se 20s do tempo de execução de um programa, que leva 60s para ser executado, podem ser melhorados, a fração é 20/60;

O ganho obtido com a execução da melhoria (Smelhoria): se a melhoria leva 2s para ser executada e a original leva 5s, o ganho é 5/2.

33

O tempo de execução usando a máquina original com a melhoria (tenovo) será igual ao tempo gasto usando a parte da máquina sem melhoria mais o tempo gasto usando a melhoria

34

melhoria

melhoriamelhoriaantigonovo S

FFtete 1

O speed up total (Stotal) é a razão entre os tempos de execução

35

melhoria

melhoriamelhoria

novo

antigototal

S

FFte

teS

1

1

Suponha uma melhoria que executa 10 vezes mais rápido do que o original, mas é utilizada somente 40% do tempo

A lei de Amdahl serve como um indicativo de quanto uma melhoria irá aumentar o desempenho total e como distribuir recursos para melhorar a relação custo/desempenho.

O objetivo é investir recursos proporcionalmente aonde o tempo é gasto

36

4.0melhoriaF

10melhoriaS

56.164.01

104.0

6.0

1

totalS

Desempenho é específico a um programa particular

O tempo de execução total é um resultado do desempenhoPara que uma dada arquitetura melhore

deve-se:Aumentar a taxa de clock (sem afetar o CPI)Melhorar a organização do processador para

diminuir o CPIMelhorar o compilador para diminuir o CPI e/ou

número de instruções

Cuidado: não esperar que a melhoria do desempenho num aspecto de uma máquina melhore sempre o seu desempenho total!

38

FIM

39

40