RMV AC Avaliacao 1

9
RMV – FEUP – 2003/2004 Arquitectura de Computadores Avaliação de Desempenho 1 Desempenho Existem vários critérios aceitáveis: Tempo de execução; Débito (trabalho executado por unidade de tempo); etc. Se D x representar o desempenho do computador X e T x o tempo de execução de um programa no mesmo computador, então D x = 1/T x . Dizer que o computador X é n vezes mais rápido que o computador Y equivale a dizer que D x /D y = n = T y /T x Tempo de resposta: Tempo decorrido entre início e fim de execução Tempo de CPU: Sistema (T x s ) + Utilizador (T x u )

description

RMV AC Avaliacao 1

Transcript of RMV AC Avaliacao 1

Page 1: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 1

Desempenho

Existem vários critérios aceitáveis: Tempo de execução; Débito (trabalho executado por unidade de tempo); etc.

Se Dx representar o desempenho do computador X e Tx o tempo de execução de um programa no mesmo computador, então Dx = 1/Tx.

Dizer que o computador X é n vezes mais rápido que o computador Y equivale a dizer que Dx/Dy = n = Ty/Tx

Tempo de resposta:Tempo decorrido entre início e fim de execução

Tempo de CPU: Sistema (Txs) + Utilizador (Tx

u)

Page 2: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 2

Ciclos de Relógio

Em vez de reportar o tempo de execução em segundos, é frequente a sua quantificação em ciclos

Segundos/ Programa = (Ciclos/ Programa) * (Segundos/ Ciclo)

Período T (Tempo de ciclo) = Número de segundos por ciclo

Frequência f = 1/T = Número de ciclos por segundo (1 Hz = 1 ciclo/ segundo)

Por exemplo, um relógio com uma frequência de 200 MHz, possui um período

T = 1/(200*106) segundos = 5*10-9 segundos = 5 nanosegundos

Page 3: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 3

Tempos de execução

Para um dado programa, Tu = Nc * T, em que Nc é o número de ciclos de relógio necessários para executar o programa.

Por outro lado, Nc = Ni * CPI, em que Ni é o número de instruções executadas pelo programa e CPI é o número médio de ciclos de relógio por instrução.

Então,

TTu u = N= Nii * CPI * T* CPI * T

Page 4: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 4

Cálculo de desempenho: Um exemplo (1)

Um CPU possui as seguintes características:

O autor de um compilador pretende escolher entre duas sequências de instruções:

Pretende-se saber:- A sequência que executa mais instruções- A mais rápida- O CPI de cada uma

A B C1 2 1 22 4 1 1

SequênciaNúmero de Instruções

Classe CPIA 1B 2C 3

Page 5: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 5

Cálculo de desempenho: Um exemplo (2)

Sequência 1

N1i = 2 + 1 + 2 = 5

N1c = (2 * 1) + (1 * 2) + (2 * 3) = 10

CPI1 = 10/5 = 2

Sequência 2

N2i = 4 + 1 + 1 = 6 Mais instruções

N2c = (4 * 1) + (1 * 2) + (1 * 3) = 9 Menos ciclos

CPI2 = 9/6 = 1.5 Melhor CPI

Page 6: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 6

Métricas de desempenho: MIPS

MIPS ⇒ Millions of Instructions Per Second

MIPS = Ni/(Tu * 106) = f/(CPI * 106) Tu = Ni/(MIPS * 106)

Em geral, máquinas mais rápidas → Índice MIPS maior. Contudo:

1. MIPS não depende do conjunto de instruções (não serve para comparar máquinas com instruções diferentes);

2. Depende dos programas e dos respectivos dados de entrada;

3. Pode evoluir de forma contrária ao desempenho!

Page 7: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 7

Métrica MIPS: Exemplo

Para a máquina do exemplo anterior (página 4), foi medido o número de instruções para o mesmo programa com compiladores diferentes.

Suponhamos que f = 100 MHz. Qual código é mais rápido de acordo com MIPS? E de acordo com o tempo de execução?

A B CCompilador 1 5 1 1Compilador 2 10 1 1

Compilador Nº de instruções por classe (106)

Page 8: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 8

Solução

N1c = 10 * 106 N2

c = 15 * 106

CPI1 = N1c/(7 * 106) = 1.43 CPI2 = N2

c/(12 * 106) = 1.25

MIPS1 = (100 * 106)/(1.43 * 106) = 69.9 MIPS2 = (100 * 106)/(1.25 * 106) = 80.0

T1u = (N1

i * CPI1)/f T2u = (N2

i * CPI2)/f

= (7 * 1.43)/100 = 0.10 S = (12 * 1.25)/100 = 0.15 S

Page 9: RMV AC Avaliacao 1

RMV – FEUP – 2003/2004 Arquitectura de Computadores – Avaliação de Desempenho 9

Conclusão

- Desempenho é específico para um dado programa ou conjunto de programas

- Para uma dada arquitectura, melhoria de desempenho pode ser obtida por:

- Aumento da frequência de relógio (sem efeitos adversos no CPI);

- Melhoramentos na organização do processador por forma a baixar o CPI;

- Melhoramentos nos compiladores por forma a baixar o CPI e/ ou o número de instruções.