Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% acharam este documento útil (0 voto)
5 visualizações16 páginas

Arq hp2

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1/ 16

2 .

DESEMPENHO DE COMPUTADORES

• Performance -> Como medir o desempenho ?

Desempenho de um avião

AVIÃO PASSAGEIROS AUTOMIA VELOCIDADE THROUGHPUT


(milhas) (mph) (passag.Xveloc)
Boeing 777 375 4630 610 228.750
Boeing 747 470 4150 610 286.700
Concorde 132 4000 1350 178.200
Douglas 146 8720 544 79.424
DC-8

O desempenho pode ser definido de formas diferentes, p. ex.,


velocidade, n. de passageiros, (n. passag. X veloc.), etc.

Em computação:

Um programa sendo executado em duas worksations


diferentes, a mais rápida é aquela que acaba o job
primeiro.
para o usuário è tempo de resposta ou tempo de
processamento.

Em um centro de computação com 2 computadores


grandes com timeshared, executando jobs de vários
usuários, o mais rápido é aquele que executa mais jobs
durante um intervalo de tempo.
para o adm. de sistemas è throughput è job/hora.

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 12


• Tempo de resposta & “Throughput”

Quais das afirmações abaixo faz com que cresça o “throughput”,


decresça o tempo de resposta, ou ambos ?
(Quase sempre que se decresce o tempo de resposta, o
“throughput” cresce).

1. Mudar o processador por um mais rápido

2. Adicionar mais um processador a sistemas que usam


múltiplos processadores para tarefas distintas

Resposta

Em 1. O tempo de resposta e o “throughput” crescem, enquanto


em 2, o tempo de resposta continua o mesmo e o “throughput”
cresce.

Obs.: Diminuindo o tempo de espera, podemos também


aumentar o tempo de resposta.

• Para uma máquina X:

PerformanceX = ( 1 / tempo de execuçãoX ); para uma


determinada tarefa.

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 13


• Comparando 2 máquinas X e Y, se:

PerformanceX > PerformanceY è

è Tempo de execuçãoY > Tempo de execuçãoX

• Performance relativa

(PerformanceX / PerformanceY ) = (Tempo de execuçãoY /


Tempo de execuçãoX)

Se X é n vezes mais rápida que Y, então o tempo de execução


em Y é n vezes maior que em X.

• Exemplo

Um programa leva 10 segundos na máquina A e 15 na B:

n= (Tempo de execuçãoB / Tempo de execuçãoA) = 1.5 è

è A é 1.5 vezes mais rápido que B.

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 14


• Medida de Performance è tempo

Tempo de Execução è segundos/programa

• Tempo de relógio (clock time)


• Tempo de resposta (response time)
• Tempo transcorrido (elapsed time)
• Tempo de CPU ( CPU time)

Obs.:
• elapsed time = tempo de tudo (CPU + I/O + etc.)

• CPU time = user CPU time + system CPU time


(geralmente só se considera user CPU time)

• Exemplo: comando time do UNIX

90.7u 12.9s 2:39 65%


((90.7+12.9)/159)=0.65 è
è % do elapsed time relativo
ao CPU time
elapsed time (159)
system CPU time
user CPU time

• CPU performance è user CPU time

• Clock time è período do clock (clock cycle) è segundos


Ex.: 2nseg
è freqüência do clock (clock rate) è Hz
Ex.: 500 MHz

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 15


• Tempo de CPU

TCPU(para um programa) =
= períodos de clock da CPU (para um
programa) X período do clock

TCPU(para um programa) =
= períodos de clock da CPU (para um
programa) / freqüência do clock

Exemplo

Um programa roda em 10 seg. na máquina A, cuja


freqüência de clock é de 400 MHz. Uma máquina B, a ser
projetada, tem que rodar este programa em 6 seg. Que
acréscimo na freqüência de clock é possível, sabendo-se que
causará um acréscimo de 1.2 vezes mais em número de
períodos de clock da máquina A.

Solução

A è 10 seg.è 400 MHz è k períodos


B è 6 seg. è ? è 1.2 k períodos

tA = 10 = k/400 è k= 4000

tB = 6 = 1.2k/x è x = (1.2 X 4000)/6 = 800 MHz

B tem que ter um clock com freqüência duas vezes maior


que A.

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 16


• n. de períodos da CPU ( para um programa) =
= n. de instruções X n. médio de períodos por instrução (CPI)

TCPU(para um programa) =
= (n. de instruções X CPI) / f ck

TCPU(para um programa) =
= (n. de instruções X CPI) X tck

Exemplo
- Duas implementações para o mesmo Instruction Set.
- Para um determinado programa temos:
tck CPI
• Máquina A 1 ns 2.0
• Máquina B 2 ns 1.2

Qual a máquina mais rápida ? E quanto ?

Solução:
I = n. de instruções do programa

Tempo da CPU

TcpuA = I X 2.0 X 1n = 2.0n X I è + rápida

Períodos de clock para o programa

TcpuB = I X 1.2 X 2n = 2.4n X I

(CPU performanceA / CPU performance B) = (2.4n X I / 2.0n X


I) = 1.2 è 1.2 vezes + rápida

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 17


• COMPONENTES BÁSICOS DE PERFORMANCE

COMPONENTES UNIDADE DE MEDIDA


tempo de CPU segundos/programa
n. de instruções Instruções executadas (do
programa)
períodos de clock/instruções Média do n. de períodos de
(CPI) clock para a execução das
instruções
Período do clock segundos

• Para instruções de diferentes tipos

n n. de classes de instruções
Períodos de clock da CPU = Σ ( CPI X C )
i=1
i i

n. de instruções da classe i
média do n. de períodos para instruções da classe i

Exemplo

Um projetista de compiladores está tentando decidir 2


seqüências de códigos para uma determinada máquina. Os
aspectos de hardware da máquina são:

classes de instruções CPI para a classe


A 1
B 2
C 3

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 18


Para um comando, o projetista está considerando 2 seqüências
de código:

n. de instruções para cada classe


seqüência de código A B C
1 2 1 2
2 4 1 1

Qual a seqüência que executa mais instruções ?

Qual a seqüência mais rápida ?

Qual a CPI de cada seqüência ?

Solução

A seqüência 1 executa : 2 + 1 + 2 = 5 instruções è menos


instruções
A seqüência 2 executa : 4 + 1 + 1 = 6 instruções
n

CPUperíodos de clock = CPUpc = Σ ( CPI X C )


i=1
i i

CPUpc1 = ( 2X 1) + ( 1 X 2 ) + ( 2 X 3 ) = 10 períodos
CPUpc2 = ( 4X 1) + ( 1 X 2 ) + ( 1 X 3 ) = 9 períodos è mais
rápida

CPI = CPUpc / n. de instruções

CPI1 = 10 / 5 = 2 ( média de 2 períodos por instrução)


CPI2 = 9 / 6 = 1.5 (média de 1.5 períodos por instrução)

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 19


• SPEC

800

700

600
SPEC performance ratio

500

400

300

200

100

0
gcc espresso spice do duc nasa7 li eqntott ma trix300 fpppp tomcatv

Benchmark
Compiler
Enhanced compiler

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 20


• Descrição do sistema utilizado na figura 2.3

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 21


Exemplo de utilização de um conjunto de programas para um
Benchmark:

Computador A Computador B
Programa 1 1 10
Programa 2 1000 100
Total ( segs) 1001 110

Individualmente:

• A é 10 vezes mais rápido que B para o programa 1


• B é 10 vezes mais rápido que A para o programa 2

Qual o mais rápido ?

Usando o tempo de execução total :

PerformanceB / PerformanceA =
= Tempo de execuçãoA / Tempo de execução B =
= 1001 / 110 = 9.1

è B é 9.1 mais rápido que A para os programas 1 e 2 juntos !

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 22


• SPEC95 CPU Benchmarks

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 23


• Benchmark com SPECInt95 para Pentium e Pentium PRO
com diferentes clocks

10

6
SPECint

0
50 100 150 200 250

Clock rate (MHz) Pentium

Pentium Pro

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 24


• Benchmark com SPECfp95 para Pentium e Pentium PRO
com diferentes clocks

10

6
SPECfp

0
50 100 150 200 250
Clock rate (MHz)
Pentium

Pentium Pro

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 25


• MIPS è Tentativa de padronizar uma medida de
desempenho de um computador.

MIPS= n. de instruções / (tempo de execução X 106)

• Problemas:

• MIPS não leva em consideração o tipo de instrução


(não se pode comparar computadores com Instruction
Set diferentes)

• MIPS varia entre programas num mesmo


computador

• MIPS pode variar inversamente com a performance

Exemplo

Máquina com 3 tipos de instruções e com CPI do exemplo


da página 21

n. de instruções por classe (bilhões)


código do A B C
compilador 1 5 1 1
compilador 2 10 1 1

freqüência de clock = 500 MHz

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 26


Qual a seqüência de código que será executado mais
rápido em MIPS e Tempo de Execução ?

Tempo de execução = CPUpc / fck


n

CPUpc = Σ ( CPI X C )
i=1
i i

CPUpc1 = ( 5 X 1) + ( 1 X 2 ) + ( 1 X 3 ) X 109= 10 X 109


períodos

CPUpc2 = ( 10 X 1) + ( 1 X 2 ) + ( 1 X 3 ) X 109 = 15 X 109


períodos

Tempo de execução1 = 10 X 109 / 500 X 106 = 20 s è


compilador 1 gera o código mais rápido

Tempo de execução2 = 15 X 109 / 500 X 106 = 30 s

MIPS = n. instruções / (tempo execução X 106)

MIPS1 = (( 5 + 1 + 1) X 109) / ( 20 X 106) = 350

MIPS1 = (( 10 + 1 + 1) X 109) / ( 30 X 106) = 400 è


compilador 2 tem a maior medida MIPS

ARQUITETURA DE SISTEMAS COMPUTACIONAIS - RICARDO PANNAIN 27

Você também pode gostar