Desempenho de cpu
Download
Report
Transcript Desempenho de cpu
Arquitetura e Organização de Computadores 1
José Hiroki Saito
Igor Marçal Botamede Spadoni – PESCD
DESEMPENHO DE CPU
DESEMPENHO DE CPU – INTRODUÇÃO
Eficiência de um sistema inteiro
Avaliar e compreender o desempenho trata:
Medir
Informar
Resumir
Fatores
determinantes
2
DESEMPENHO DE CPU – INTRODUÇÃO
É 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 DE CPU – INTRODUÇÃO
Desempenho é um fator importante para os
projetistas
O
que determina o desempenho de um
computador?
4
DEFININDO DESEMPENHO
Analogia com aviões de passageiro
Avião
Passageiros
Boeing 777
Boeing 747
BAC/Sud Concorde
Douglas DC-8-50
375
470
132
146
Autonomia (mi) Velocidade (mph)
4630
4150
4000
8720
610
610
1350
544
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
DESEMPENHO – TERMOS
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
VAZÃO E TEMPO DE RESPOSTA
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:
tem po de xecução
e
B
n
tem po de xecução
e
A
7
DESEMPENHO
Desempenho é definido como o inverso do
tempo de execução
1
desem penhoA
tem po de xecução
e
A
Desempenho Relativo
1
tempo de e xecução B desempenho B desempenho A
n
1
tempo de e xecução A
desempenho B
desempenho A
8
DEFINIÇÃO DE DESEMPENHO
Problema:
máquina
A executa um programa em 10 segundos
máquina B executa o mesmo programa em 15
segundos
Calcular n
desem penho
tem po de xecução
e
A
B
n
desem penho
tem po de xecução
e
B
A
15
n
10
n 1,5
TEMPO DE EXECUÇÃO
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
DESEMPENHO – DETALHANDO
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
DESEMPENHO – FATORES
Métricas utilizadas
Ciclos
de clock
Tempo de ciclo
Instruções por programa
Média dos ciclos de clock por instrução
tempo de xecução
e
ciclos declock x empo
t
do ci
clo
ou
ciclos de clock
tempo de e xecução
velocidade de clock
12
DESEMPENHO – FATORES
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 declock Instruções para x média dos ciclos
o programa
por instrução
Ciclos de clock por instrução pode ser
chamado como CPI
tempo de xecução
e
CPIx Nº de Inst x tempo do ci
clo
13
CICLOS DE CLOCK
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)
QUANTOS CICLOS SÃO REQUERIDOS POR UM PROGRAMA?
...
6th
5th
4th
3rd instruction
2nd instruction
Assumir que # de ciclos = # de instruções
1st instruction
time
Essa consideração é apenas uma aproximação, pois diferentes
instruções levam diferentes tempos para serem executadas.
DIFERENTES NÚMEROS DE CICLOS PARA DIFERENTES
INSTRUÇÕES
tempo
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
DESEMPENHO – EXEMPLO
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
DESEMPENHO – EXEMPLO
ciclos declockA
tem po de xecução
e
A
velocidadede clockA
ciclos declockA
10 s
4 x109
ciclos declockA 40x109 ciclos
1,2 xciclos declockA
tem po de xecução
e
B
velocidadede clockB
6 s x velocidadede clockB 1,2 x 40x109
velocidadede clockB 8GHz
18
AGORA QUE ENTENDEMOS OS CICLOS
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
COMBINANDO OS FATORES
A única medida completa e confiável do
desempenho é o tempo
Instruções Ciclos de clock
Segundos
Tem po
X
X
P r ogram a
Instruções
Ciclos de clock
Segundos
Tem po
P r ogram a
Componentes de desempenho
Unidades de medida
Tempo de execução da CPU de um programa
Segundos para o programa
Contagem de instruções
Instruções executadas para o programa
CPI
Número médio de ciclos de clock por instrução
Tempo do ciclo de clock
Segundos por ciclo de clock
20
MIPS
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
Nº de Instruções
MIPS
Tem po de Execução X106
21
DESEMPENHO DE UM PROGRAMA
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).
Compilador
Contagem 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
Afeta as instruções necessárias para
função, o custo em ciclos de cada
instrução e a velocidade geral do
22
DESEMPENHO
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.
EXEMPLO DE CPI
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?
ciclos de clockA Ix2 ,0
ciclos de clockB Ix1,2
Tem poA ciclos de clockA x tem po dociclo declockA
Ix2,0 x 250ps 500xIps
Tem poB ciclos de clockB x tem po dociclo declockB
Ix1,2 x500ps 600xIps
tem po de xecução
e
600xIps
B
n
1,2
tem po de xecução
e
500xIps
A
25
EXEMPLO DO Nº DE INSTRUÇÕES
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
C
A 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?
BENCHMARKS
Determinação melhor do desempenho executando
aplicações reais
Pequenos benchmarks
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.
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
SPEC ‘89
Gráfico de “melhoramento” do compilador e
desempenho
800
700
600
SPEC performance ratio
500
400
300
200
100
0
gcc
espresso
spice
doduc
nasa7
li
eqntott
matrix300
fpppp
tomcatv
Benchmark
Compiler
Enhanced compiler
SPEC ‘95
Benchmark
go
m88ksim
gcc
compress
li
ijpeg
perl
vortex
tomcatv
swim
su2cor
hydro2d
mgrid
applu
trub3d
apsi
fpppp
wave5
Description
Artificial intelligence; plays the game of Go
Motorola 88k chip simulator; runs test program
The Gnu C compiler generating SPARC code
Compresses and decompresses file in memory
Lisp interpreter
Graphic compression and decompression
Manipulates strings and prime numbers in the special-purpose programming language Perl
A database program
A mesh generation program
Shallow water model with 513 x 513 grid
quantum physics; Monte Carlo simulation
Astrophysics; Hydrodynamic Naiver Stokes equations
Multigrid solver in 3-D potential field
Parabolic/elliptic partial differential equations
Simulates isotropic, homogeneous turbulence in a cube
Solves problems regarding temperature, wind velocity, and distribution of pollutant
Quantum chemistry
Plasma physics; electromagnetic particle simulation
SPEC ‘95
10
10
9
9
8
8
7
7
6
6
SPECfp
SPECint
Dobrando a taxa de clock dobra o desempenho?
Uma máquina com uma taxa de clock lenta pode
ter um melhor desempenho?
5
5
4
4
3
3
2
2
1
1
0
0
50
100
150
Clock rate (MHz)
200
250
Pentium
Pentium Pro
50
100
150
Clock rate (MHz)
200
Pentium
Pentium Pro
250
ARMADILHAS – MELHORIAS
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
ARMADILHAS – SPEED UP
Speed Up (S)
desempenho de toda a operação usando a melhoria
S
desempenho de toda a operação sem usar a melhoria
tempo de execução de toda a operação sem usar a melhoria
S
tempo de execução de toda a operação usando a melhoria
32
ARMADILHAS – SPEED UP
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
ARMADILHAS – SPEED UP
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
Fmelhoria
tenovo teantigo 1 Fmelhoria
S melhoria
34
ARMADILHA – SPEED UP
O speed up total (Stotal) é a razão entre os
tempos de execução
Stotal
teantigo
tenovo
1
Fmelhoria
1 Fmelhoria
S melhoria
35
ARMADILHA – EXEMPLO DE SPEED UP
Suponha uma melhoria que executa 10 vezes
mais rápido do que o original, mas é utilizada
somente 40% do tempo
Fmelhoria 0.4
Smelhoria 10
1
1
Stotal
1.56
0.4 0.64
0.6
10
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
CONCLUSÕES
Desempenho é específico a um programa
particular
O tempo de execução total é um resultado do
desempenho
Para 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 CPI
Melhorar o compilador para diminuir o CPI e/ou
número de instruções
CONCLUSÃO
Cuidado: não esperar que a melhoria do
desempenho num aspecto de uma máquina
melhore sempre o seu desempenho total!
38
FIM
39
EXERCÍCIOS
40