desempenhodesempenhosimone/scminter/contaulas/2_desemp.pdfsistemas de computa ção definiç ão •...

28
Sistemas de Computação Desempenho

Upload: others

Post on 08-Nov-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

DesempenhoDesempenho

Page 2: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Definição

• Medidas de desempenho utilizadas– Tempo de resposta ou tempo de execução: tempo decorrido entre o

início da execução de um programa e o seu final

– Quantidade de trabalho realizada em um determinado intervalo de tempo (throughput)

• Enfoque será dado em tempo de execução

Page 3: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Medida de desempenho

• Para maximizar desempenho, devemos minimizar tempo de execução de uma tarefa

• Para uma máquina X, teremos– DesempenhoX=1/tempo de execução em X

• Comparação de desempenhos– DesempenhoX > DesempenhoY, então Tempo de execução em Y >

Tempo de execução em X

Page 4: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Exemplo

• Uma máquina A executa um programa em 10s e uma máquina B executa o mesmo programa em 15s. Qual é mais rápida?

• DesempenhoA/DesempenhoB=Tempo de execução em B/ Tempo de execução em A=15/10=1,5

• Dizemos que A é 1,5 vezes mais rápida que B

Page 5: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Medindo desempenho

• Tempo utilizado como tempo de execução do programa é conhecido como wall-clock time, response time, ou elapsed time

• Inclui tempo total de execução da tarefa no sistema– CPU

– acesso a disco

– acesso a memória

– atividades de E/S

– overhead de sistema operacional

Page 6: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Medindo desempenho

• Em sistemas timeshared, o sistema pode tentar maximizar o throughput e não minimizar o elapsed time, então utiliza-se uma medida para saber o tempo de CPU que foi utilizado pelo programa

• Tempo de execução da CPU (CPU time)– tempo que a CPU gastou para realizar um determinado programa

– não inclui tempo de espera pela CPU por entrada e saída ou gasto pela CPU para executar outros programas

• CPU time = User time + system CPU time

Page 7: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Medindo desempenho

• Através do comando time, obtêm-se os seguintes dados: 90.7u 12.9s 2:39 65%

• Elapsed time= 159s, User time=90,7s, System time=12,9s

• Porcentagem da CPU utilizada pelo programa– (90,7+12,9)/159=65%

– 35% gasto para espera por E/S ou por outros programas

Page 8: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Outras métricas de desempenho

• Projetistas de hardware gostariam de utilizar uma medida que mostrasse a rapidez que um hardware pode executar funções básicas

• Computadores possuem um relógio que possui uma freqüência de operação e determina o momento em que eventos são realizados na máquina

• Os intervalos de tempo discretos do relógio são denominados ciclos de relógio

• Período do relógio = 5 ns, Freqüência=200MHZ

Page 9: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Relacionando as métricas

• Tempo de execução de um programa = Número de ciclos de relógio utilizados pela CPU para o programa Tempo de cada ciclo do relógio

• Tempo de execução de um programa = Número de ciclos de relógio utilizados pela CPU para o programa / Freqüência do relógio

• Para aumentar o desempenho de uma máquina se pode reduzir o tempo do ciclo do relógio ou o número de ciclos

Page 10: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Relacionando as métricas - Exemplo

• Um programa gasta 20s para ser executado em uma máquina A, cujo relógio é de 1GHZ. Queremos construir uma máquina B que execute este mesmo programa em 12s. Sabe-se que a freqüência do relógio pode ser aumentada, mas esse aumento implica em mudanças no projeto, fazendo com que a máquina B necessite 1,2 vezes mais ciclos de relógio que a máquina A para executar o programa. Qual deve ser a freqüência a ser utilizada na máquina B?

Page 11: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Relacionando as métricas - Exemplo

• Número de ciclos requerido pelo programa executando-o em A

– Tempo de CPUA=Número de ciclos de CPUA/Freq. do relógioA

– Número de ciclos da CPUA=20109

• Relógio da máquina B– Tempo de CPUB=Número de ciclos de CPUB/Freq. do relógioB

– Número de ciclos de CPUB=1,2 Número de ciclos de CPUA

– Freq. do relógioB= 1,2 Número de ciclos de CPUA/ Tempo de CPUB=2GHZ

Page 12: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Relacionando hardware e software

• Tempo de execução de um programa pode ser visto como o produto do número de instruções necessárias para executá-lo pelo tempo médio de execução de uma instrução

• Instruções podem ter número de ciclos de relógio variáveis

– CPI (clock cycles per instruction): média do número de ciclos por instrução

• Número de ciclos de relógio de um programa éigual ao produto do número de instruções pelo número médio de ciclos de relógio gasto por cada instrução

Page 13: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Exemplo de desempenho

• Suponha que existam duas implementações para o mesmo conjunto de instruções. A máquina A possui um relógio de freqüência 1GHZ e uma CPI de 2,4 para um determinado programa com I instruções e a máquina B possui um relógio de freqüência 500 MHZ e CPI de 1,0 para o mesmo programa. Qual máquina executa mais rapidamente?

• Tempo de CPUA =Número de ciclosA Tempo do ciclo em A= I 2,4 (1/109)=2,4 I ns

Page 14: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Exemplo de desempenho

• Tempo de CPUB =Número de ciclosB Tempo do ciclo em B= I 1,0 (1/500 106)=2,0 I ns

• DesempenhoB/DesempenhoA=Tempo de execução em A/Tempo de execução em B= 2,4 I ns/ 2,0 I ns=1,2

• Máquina B é 1,2 vezes mais rápida que a máquina A

Page 15: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Equação de desempenho de um programa

• Tempo de CPU=(Número de instruções CPI) /Freqüência do relógio

– Tempo de CPU obtém-se executando o programa

– Freqüência é dada pelo fabricante

– Número de instruções pode ser obtido por ferramentas de software ou simulador da arquitetura

– CPI depende do projeto da máquina e das instruções utilizadas pelo programa

Page 16: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

MIPS

• MIPS: Million Instructions Per Second

• Para um dado programa, MIPS=Número de instruções / (Tempo de execução 106)

• Máquinas mais rápidas possuem MIPS maiores

• Problemas– Máquinas com conjuntos de instruções diferentes não podem ser

comparadas porque o número de instruções vai diferir entre elas

– Não se pode considerar uma medida única, pois cada programa executado apresenta uma medida diferente

– Pode variar inversamente ao desempenho

Page 17: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Exemplo de problema com MIPS

• Considere uma máquina com freqüência de relógio de 250MHZ que possui três classes de instruções A, B e C com as seguintes medidas de CPI: Classe A=1, Classe B=2 e Classe C=3. Suponha que para um mesmo programa obtivemos código utilizando dois compiladores diferentes, resultando em:

• Qual executará mais rápido de acordo com a métrica MIPS e com o tempo de execução ?

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

Número de instruções (em bilhões)Código do

Page 18: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Exemplo de problema com MIPS

• Tempo de execução=Número de ciclos/Freqüência

• Número de ciclos=CPIA númeroA + CPIB númeroB + CPIC númeroC

• Número de ciclos para compilador 1=10 109

• Número de ciclos para compilador 2=15 109

• Tempo de execução para compilador 1= 40s

• Tempo de execução para compilador 2= 60s

• Compilador 1 mais rápido que 2

Page 19: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Exemplo de problema com MIPS

• MIPS=Número de instruções/(Tempo de execução 106)

• Número de instruções para compilador 1=7 109

• Número de instruções para compilador 2=12 109

• MIPS para compilador 1=7 109 / (40 106)= 175

• MIPS para compilador 2=12 109 / (60 106)= 200

• Compilador 2 produz código com maior MIPS mas maior tempo de execução

Page 20: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

MFLOPS

• MFLOPS: Million FLoating-point Operations Per Second

• Para um dado programa, MFLOPS=Número de operações em ponto flutuante/ (Tempo de execução 106)

• Operações de ponto flutuante consistem de operações de adição, subtração, multiplicação ou divisão aplicadas a números representados em ponto flutuante

Page 21: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

MFLOPS

• Programas diferentes requerem números diferentes de operações em ponto flutuante medida aplicada para programas que utilizam intensamente estas operações

• MFLOPS seria uma medida mais justa para comparar desempenho do que MIPS, partindo-se do pressuposto que máquinas diferentes executam números de instruções diferentes, mas igual número de operações em ponto flutuante

• Na realidade, o conjunto de operações em ponto flutuante varia de máquina para máquina

Page 22: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

MFLOPS

• Operações em ponto flutuante possuem tempos de execução variáveis

• Um programa que possui 100% de somas em ponto flutuante é executado mais rápido que um outro que possua 100% de divisões, acarretando a dependência da medida MFLOPS ao programa

Page 23: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

Como avaliar e comparar desempenho?

• Executar programas e verificar tempo de execução

• Programas utilizados freqüentemente pelo usuário

• Programas desenvolvidos especialmente para medir desempenho (benchmark)

• Programas devem ser aplicações típicas do ambiente em que a máquina irá ser utilizada

• Otimização de compiladores direcionados aos programas de benchmark

• Programas de benchmark devem ser grandes

Page 24: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

SPEC benchmark

• System Performance Evaluation Cooperative

• Possui vários programas para benchmark em várias áreas: CPU, gráficos, paralelismo

• SPEC CPU 2000– programas CPU intensivos para dar ênfase no desempenho da

CPU, arquitetura de memória e compilador– 12 programas com inteiros (C e C++) e 14 com ponto flutuante

(Fortran)

• Problemas reais– compilador C, jogo de xadrez, banco de dados orientado a objetos,

problemas de otimização, análise de fluidos, teste de números primos, modelo de acelerador de partículas

Page 25: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

SPEC benchmark

• Para uma arquitetura com um determinado conjunto de instruções, o desempenho da máquina pode ser aumentado de três maneiras:

– aumento da freqüência do relógio– melhorias na organização do processador de modo que CPI se

torne menor– melhoramentos do compilador que gera menor número de

instruções ou gera instruções com CPI médio menor

Page 26: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

SPEC benchmark

0100200300400500

0 500 1000 1500

Freqüência

SPEC

int

Pentium III

Esperado

Page 27: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

0

100

200

300

400

0 500 1000 1500

Freqüência

SPEC

fp Pentium III

Esperado

Page 28: DesempenhoDesempenhosimone/scminter/contaulas/2_DESEMP.pdfSistemas de Computa ção Definiç ão • Medidas de desempenho utilizadas – Tempo de resposta ou tempo de execu ç ão:

Sistemas de Computação

SPEC benchmark

0

100200

300

400

0 500 1000 1500

Freqüência

SPEC

fp

Pentium III

Pentium IIIPro