Buscar

Aula 03 desempenho

Prévia do material em texto

Introdução
Marcelo Zamith
e-email:zamith.marcelo@gmail.com
Universidade Federal Rural do Rio de Janeiro - DCC
2016.1
Roteiro
Introdução
Medidas de desempenho
Programas para avaliação de desempenho
Exercício
Introdução
Desempenho: eficiência do sistema inteiro
Avaliar e compreender o desempenho trata:
I Medir
I Informar
I Resumir
Fatores determinantes.
Introdução
Desempenho: eficiência do sistema inteiro
Avaliar e compreender o desempenho trata:
I Medir
I Informar
I Resumir
Fatores determinantes.
Introdução
O que é desempenho? Por que um programa é mais rápido que outro? Quais são os
fatores determinantes?
Introdução
Avião Capacidade Autonomia (mi) Velocidade (mph)
Boeing 777 375 4630 610
Boeing 747 470 4150 610
Concorde (BAC-Sub) 132 4000 1350
Douglas DC-8-50 146 8720 544
Introdução
Avião Capacidade Autonomia (mi) Velocidade (mph)
Boeing 777 375 4630 610
Boeing 747 470 4150 610
Concorde (BAC-Sub) 132 4000 1350
Douglas DC-8-50 146 8720 544
Introdução
É complexo avaliar o desempenho desse tipo de sistema:
I Complexidade e escala dos softwares modernos.
I Ampla gama de técnicas de melhoria de desempenho.
I Grande combinação de hardwares (processadores, memórias, hds, etc...).
Melhorar o desempenho de um software executado em um determinado
hardware.
Fatores do hardware que influenciam no desempenho global do sistema.
A importância relativa de cada um destes fatores.
Introdução
Os fatores de hardware:
I Compilador: como o compilador utiliza as instruções de máquina para gerar o
código do programa.
I Como o hardware implementa estas instruções.
I Como a memória e os dispositivos de entrada e saída se comportam durante o
processamento do programa.
Introdução
Bom projeto depende do entendimento do impacto dos fatores de hardware:
I Motivação dos projetos com aspectos específicos.
I Maior desempenho.
Medidas de desempenho
O que determina o desempenho de um computador?
Tempo de execução ou tempo de resposta: é o tempo que um programa leva
para ser executada.
Tempo de Resposta (latência): Quanto tempo leva para executar uma
instrução.
Throughput : Vazão, quantidade de instruções executadas em um determinado
intervalo de tempo.
Reduzir o tempo de resposta quase sempre leva a um aumento do Throughput.
Medidas de desempenho
O que determina o desempenho de um computador?
Tempo de execução ou tempo de resposta: é o tempo que um programa leva
para ser executada.
Tempo de Resposta (latência): Quanto tempo leva para executar uma
instrução.
Throughput : Vazão, quantidade de instruções executadas em um determinado
intervalo de tempo.
Reduzir o tempo de resposta quase sempre leva a um aumento do Throughput.
Medidas de desempenho
Relação entre desempenho e tempo de execução:
D =
1
TE
(1)
onde:
D é o desempenho.
TE representa o tempo de execução.
Medidas de desempenho
Considerando duas máquinas X e Y, se o desempenho de X é melhor do que o
desempenho de Y, então:
DX > DY (2)
Portanto,
1
TEX
>
1
TEY
(3)
Definições de desempenho
Considerando duas máquinas X e Y, se o desempenho de X é melhor do que o
desempenho de Y, então:
DX > DY (4)
Portanto,
1
TEX
>
1
TEY
(5)
Medidas de desempenho
Analisar dois diferentes desempenho.
Expressar que a máquina X é n vezes mais rápida que a máquina Y.
DX
DY
= n (6)
ou
TEY
TEX
= n (7)
Observação:
n representa uma taxa!
Medidas de desempenho
Analisar dois diferentes desempenho.
Expressar que a máquina X é n vezes mais rápida que a máquina Y.
DX
DY
= n (6)
ou
TEY
TEX
= n (7)
Observação:
n representa uma taxa!
Medidas de desempenho
Exemplo:
Se o computador A executa um programa em 10 segundos e um computador
B executa o mesmo programa em 15 segundos, pergunta-se:
I Quantas vezes o computador A é mais rápido que B?
I O computador A será n vezes mais rápido que o computador B se:
DA
DB
=
TEB
TEA
= 1.5 (8)
É possível afirmar que:
I O computador B é 1.5 vezes mais lento que o computador A, uma vez que:
DA
x
1.5 = DB (9)
Medidas de desempenho
Exemplo:
Se o computador A executa um programa em 10 segundos e um computador
B executa o mesmo programa em 15 segundos, pergunta-se:
I Quantas vezes o computador A é mais rápido que B?
I O computador A será n vezes mais rápido que o computador B se:
DA
DB
=
TEB
TEA
= 1.5 (8)
É possível afirmar que:
I O computador B é 1.5 vezes mais lento que o computador A, uma vez que:
DA
x
1.5 = DB (9)
Medidas de desempenho
Exemplo:
Se o computador A executa um programa em 10 segundos e um computador
B executa o mesmo programa em 15 segundos, pergunta-se:
I Quantas vezes o computador A é mais rápido que B?
I O computador A será n vezes mais rápido que o computador B se:
DA
DB
=
TEB
TEA
= 1.5 (8)
É possível afirmar que:
I O computador B é 1.5 vezes mais lento que o computador A, uma vez que:
DA
x
1.5 = DB (9)
Medidas de desempenho
Exemplo:
Se o computador A executa um programa em 10 segundos e um computador
B executa o mesmo programa em 15 segundos, pergunta-se:
I Quantas vezes o computador A é mais rápido que B?
I O computador A será n vezes mais rápido que o computador B se:
DA
DB
=
TEB
TEA
= 1.5 (8)
É possível afirmar que:
I O computador B é 1.5 vezes mais lento que o computador A, uma vez que:
DA
x
1.5 = DB (9)
Medidas de desempenho
Exemplo:
Se o computador A executa um programa em 10 segundos e um computador
B executa o mesmo programa em 15 segundos, pergunta-se:
I Quantas vezes o computador A é mais rápido que B?
I O computador A será n vezes mais rápido que o computador B se:
DA
DB
=
TEB
TEA
= 1.5 (8)
É possível afirmar que:
I O computador B é 1.5 vezes mais lento que o computador A, uma vez que:
DA
x
1.5 = DB (9)
Medidas de desempenho
Tempo de execução ou tempo de resposta define o tempo total para se
completar uma tarefa computacional.
I Inclui os acessos à memória e ao disco, as atividades de entrada e saída e o
overhead do sistema operacional.
Quando o sistema é compartilhado o processador pode trabalhar em vários
programas simultaneamente.
Medidas de desempenho
Tempo de CPU ou Tempo de Processador: Tempo gasto pelo processador em
um programa em particular.
I Tempo de CPU do usuário: Tempo que a CPU gasta na execução das
instruções do programa do usuário.
I Tempo de CPU do sistema: Tempo que a CPU gasta pelo sistema
operacional para executar tarefas em benefício do programa do usuário.
Tempo de CPU = Tempo de CPU do usuário + Tempo de CPU do sistema
Medidas de desempenho
Considerando os detalhes de uma máquina:
I Os projetistas medem a velocidade do hardware na execução de suas funções
básicas com o clock.
I O clock possui uma taxa constante e determina o momento da ocorrência de
eventos do próprio hardware.
I Ciclos de clock são intervalos de tempo discretos. São também conhecidos como:
ticks, clock ticks, períodos de clock, clocks ou ciclos.
I Frequência é o inverso do período: f = 1T .
Medidas de desempenho
Relação entre as métricas:
I Tempo de CPU para um programa = ciclos de clock × Tempo do ciclo de clock.
I Tempo de CPU para um programa = ciclos de clock / frequência do clock.
O desempenho pode ser melhorado:
I Redução do tamanho do ciclo de clock.
I Redução do número de ciclos de clock.
Medidas de desempenho
A quantidade de instruções é outra métrica.
O tempo de execução está relacionado com a quantidade de instruções
executadas.
Ciclo por instruções: CPI.
Permite a comparação de diferentes implementações em uma mesma
arquitetura do conjunto de instruções.
A relação é dada por:
I CPI = Número de instruções para um programa × Média dosciclos de clock por
instrução.
Medidas de desempenho
Três principais fatores que afetam o desempenho:
i Quantidade de instruções.
ii Média dos ciclos gastos por instrução.
iii Período de clock
Equação do desempenho:
I Tempo de CPU para um programa = Número de instruções × CPI × Tempo do ciclo de clock.
I Tempo de CPU para um programa = (Número de instruções × CPI) / frequência do clock.
Medidas de desempenho
Exemplo: Suponha que temos os computadores A e B. Ambos da mesma arquitetura de conjunto de
instruções. O computador A tem um período de 250ps e um CPI de 2 para um determinado
programa P. O computador B tem o período de 500ps e um CPI de 1.2 para o mesmo programa P.
Pergunta:
Qual o computador mais rápido para este tipo de programa ?
Dados do problema:
Ambos os computadores executam as
mesmas instruções I.
CPIA = 2
CPIB = 1.2
Tempo do ciclo de clock - comp. A:
PA = 250ps
Tempo do ciclo de clock - comp. B :
PB = 500ps
Solução:
TA = I × CPIA × PA = 500Ips
TB = I × CPIB × PB = 600Ips
TB
TA
= 1.2
Medidas de desempenho
Exemplo: Suponha que temos os computadores A e B. Ambos da mesma arquitetura de conjunto de
instruções. O computador A tem um período de 250ps e um CPI de 2 para um determinado
programa P. O computador B tem o período de 500ps e um CPI de 1.2 para o mesmo programa P.
Pergunta:Qual o computador mais rápido para este tipo de programa ?
Dados do problema:
Ambos os computadores executam as
mesmas instruções I.
CPIA = 2
CPIB = 1.2
Tempo do ciclo de clock - comp. A:
PA = 250ps
Tempo do ciclo de clock - comp. B :
PB = 500ps
Solução:
TA = I × CPIA × PA = 500Ips
TB = I × CPIB × PB = 600Ips
TB
TA
= 1.2
Medidas de desempenho
Exemplo: Suponha que temos os computadores A e B. Ambos da mesma arquitetura de conjunto de
instruções. O computador A tem um período de 250ps e um CPI de 2 para um determinado
programa P. O computador B tem o período de 500ps e um CPI de 1.2 para o mesmo programa P.
Pergunta:Qual o computador mais rápido para este tipo de programa ?
Dados do problema:
Ambos os computadores executam as
mesmas instruções I.
CPIA = 2
CPIB = 1.2
Tempo do ciclo de clock - comp. A:
PA = 250ps
Tempo do ciclo de clock - comp. B :
PB = 500ps
Solução:
TA = I × CPIA × PA = 500Ips
TB = I × CPIB × PB = 600Ips
TB
TA
= 1.2
Medidas de desempenho
Tempo de CPU e os diversos tipos de instruções: acesso à memória, operações
lógicas e aritméticas que não gastam o mesmo tempo.
Considerar o CPI de cada classe de instrução:
ciclos de clock da CPU =
n∑
i=1
(CPIi × Ci)
CPIi: representa a CPI da classe i de instruções.
Ci: é a contagem do número de instruções da classe i para essa máquina.
Medidas de desempenho
Exemplo: O projetista de um compilador deseja decidir entre duas possíveis sequências de código
para a resolução de um problema. Dado os tipos de instrução o o número de ciclos por instrução
(CPI) de cada tipo defina. Pergunta-se:
i Qual o código mais rápida?
ii Qual a CPI de cada um dos programas?
Dados do problema:
Classe de instrução CPI
A 1
B 2
C 3
Número de instruções
Código Classe A Classe B Classe C
1 2 1 2
2 4 1 2
Medidas de desempenho
Solução:
1. Total de instruções do programa 1:
2 + 1 + 2 = 5 instruções.
2. Total de instruções do programa 2:
4 + 1 + 1 = 6 instruções.
3. O número de ciclos de clock para o código 1:
(2 x 1) + (1 x 2) + (2 x 3)= 10 ciclos.
4. O número de ciclos de clock para o código 2:
(4 x 1)+(1 x 2)+(1 x 3)= 9 ciclos.
5. O código mais rápido, obter primeiro o CPI médio de cada programa:
CPI médio do código 1 = 10/5 = 2.0 .
CPI médio código 2 = 9/6 = 1.5.
6. O código mais rápido é o 2, por que?
O código 2 tem o CPI mais baixo, ainda que execute mais uma instrução.
Medidas de desempenho
Solução:
1. Total de instruções do programa 1:
2 + 1 + 2 = 5 instruções.
2. Total de instruções do programa 2:
4 + 1 + 1 = 6 instruções.
3. O número de ciclos de clock para o código 1:
(2 x 1) + (1 x 2) + (2 x 3)= 10 ciclos.
4. O número de ciclos de clock para o código 2:
(4 x 1)+(1 x 2)+(1 x 3)= 9 ciclos.
5. O código mais rápido, obter primeiro o CPI médio de cada programa:
CPI médio do código 1 = 10/5 = 2.0 .
CPI médio código 2 = 9/6 = 1.5.
6. O código mais rápido é o 2, por que?
O código 2 tem o CPI mais baixo, ainda que execute mais uma instrução.
Medidas de desempenho
Solução:
1. Total de instruções do programa 1:
2 + 1 + 2 = 5 instruções.
2. Total de instruções do programa 2:
4 + 1 + 1 = 6 instruções.
3. O número de ciclos de clock para o código 1:
(2 x 1) + (1 x 2) + (2 x 3)= 10 ciclos.
4. O número de ciclos de clock para o código 2:
(4 x 1)+(1 x 2)+(1 x 3)= 9 ciclos.
5. O código mais rápido, obter primeiro o CPI médio de cada programa:
CPI médio do código 1 = 10/5 = 2.0 .
CPI médio código 2 = 9/6 = 1.5.
6. O código mais rápido é o 2, por que?
O código 2 tem o CPI mais baixo, ainda que execute mais uma instrução.
Medidas de desempenho
Solução:
1. Total de instruções do programa 1:
2 + 1 + 2 = 5 instruções.
2. Total de instruções do programa 2:
4 + 1 + 1 = 6 instruções.
3. O número de ciclos de clock para o código 1:
(2 x 1) + (1 x 2) + (2 x 3)= 10 ciclos.
4. O número de ciclos de clock para o código 2:
(4 x 1)+(1 x 2)+(1 x 3)= 9 ciclos.
5. O código mais rápido, obter primeiro o CPI médio de cada programa:
CPI médio do código 1 = 10/5 = 2.0 .
CPI médio código 2 = 9/6 = 1.5.
6. O código mais rápido é o 2, por que?
O código 2 tem o CPI mais baixo, ainda que execute mais uma instrução.
Medidas de desempenho
Solução:
1. Total de instruções do programa 1:
2 + 1 + 2 = 5 instruções.
2. Total de instruções do programa 2:
4 + 1 + 1 = 6 instruções.
3. O número de ciclos de clock para o código 1:
(2 x 1) + (1 x 2) + (2 x 3)= 10 ciclos.
4. O número de ciclos de clock para o código 2:
(4 x 1)+(1 x 2)+(1 x 3)= 9 ciclos.
5. O código mais rápido
, obter primeiro o CPI médio de cada programa:
CPI médio do código 1 = 10/5 = 2.0 .
CPI médio código 2 = 9/6 = 1.5.
6. O código mais rápido é o 2, por que?
O código 2 tem o CPI mais baixo, ainda que execute mais uma instrução.
Medidas de desempenho
Solução:
1. Total de instruções do programa 1:
2 + 1 + 2 = 5 instruções.
2. Total de instruções do programa 2:
4 + 1 + 1 = 6 instruções.
3. O número de ciclos de clock para o código 1:
(2 x 1) + (1 x 2) + (2 x 3)= 10 ciclos.
4. O número de ciclos de clock para o código 2:
(4 x 1)+(1 x 2)+(1 x 3)= 9 ciclos.
5. O código mais rápido, obter primeiro o CPI médio de cada programa:
CPI médio do código 1 = 10/5 = 2.0 .
CPI médio código 2 = 9/6 = 1.5.
6. O código mais rápido é o 2, por que?
O código 2 tem o CPI mais baixo, ainda que execute mais uma instrução.
Medidas de desempenho
Solução:
1. Total de instruções do programa 1:
2 + 1 + 2 = 5 instruções.
2. Total de instruções do programa 2:
4 + 1 + 1 = 6 instruções.
3. O número de ciclos de clock para o código 1:
(2 x 1) + (1 x 2) + (2 x 3)= 10 ciclos.
4. O número de ciclos de clock para o código 2:
(4 x 1)+(1 x 2)+(1 x 3)= 9 ciclos.
5. O código mais rápido, obter primeiro o CPI médio de cada programa:
CPI médio do código 1 = 10/5 = 2.0 .
CPI médio código 2 = 9/6 = 1.5.
6. O código mais rápido é o 2, por que?
O código 2 tem o CPI mais baixo, ainda que execute mais uma instrução.
Medidas de desempenho
Solução:
1. Total de instruções do programa 1:
2 + 1 + 2 = 5 instruções.
2. Total de instruções do programa 2:
4 + 1 + 1 = 6 instruções.
3. O número de ciclos de clock para o código 1:
(2 x 1) + (1 x 2) + (2 x 3)= 10 ciclos.
4. O número de ciclos de clock para o código 2:
(4 x 1)+(1 x 2)+(1 x 3)= 9 ciclos.
5. O código mais rápido, obter primeiro o CPI médio de cada programa:
CPI médio do código 1 = 10/5 = 2.0 .
CPI médiocódigo 2 = 9/6 = 1.5.
6. O código mais rápido é o 2, por que?
O código 2 tem o CPI mais baixo, ainda que execute mais uma instrução.
Medidas de desempenho
MIPS: milhões de instruções por segundo - million instruction per second.
I MPIS = No. instruções / (tempo de execução ×106).
MFLOPS: milhões de instruções de ponto flutuante por segundo - millions of
floating-point operations per second.
I MFLOPS = No. operações de PF / (tempo de execução ×106).
Contexto limitado.
Distorções.
Resultados enganadores.
Medidas de desempenho
Algumas considerações sobre o MIPS:
I Especifica a taxa de execução de instruções, mas não considera a capacidade de
executar mais ou menos trabalho.
Não se pode comparar máquinas com conjuntos de instruções diferentes.
I Os resultados obtidos variam entre programas no mesmo computador
Impede que determinada máquina tenha um MIPS característico.
Medidas de desempenho
Algumas considerações sobre o MIPS:
I Especifica a taxa de execução de instruções, mas não considera a capacidade de
executar mais ou menos trabalho.
Não se pode comparar máquinas com conjuntos de instruções diferentes.
I Os resultados obtidos variam entre programas no mesmo computador
Impede que determinada máquina tenha um MIPS característico.
Medidas de desempenho
Lei de Amdahl: O aumento de desempenho possível com uma determinada
melhoria é limitado pela quantidade de uso do recurso melhorado.
Medidas de desempenho
Lei de Amdahl
O ganho é obtido pela expressão:
Tempo de execução após melhoria = Tempo de execução não afetado + (Tempo de
execução afetado / Quantidade de melhoria)
Medidas de desempenho
Lei de Amdahl
Exemplo: Suponha que um programa seja executado em 100 segundos em uma
máquina, como uma multiplicação é responsável por 80 segundos desse tempo.
O quanto precisamos melhorar a velocidade da multiplicação se queremos que
o programa seja executado 4 vezes mais rápido?
Dados do problema:
Tempo de execução após melhoria = 25.
Tempo de execução não afetado = 100 - 80
Tempo de execução afetado = 80
Quantidade de melhoria = ???
Solução:
25 = (100 - 80) + (80 / n)
(25 - 20) × n = 80
n = 16
Observação:
n = 16 → Quantidade de melhoria a ser aplicada sobre a parte “melhorável”
Medidas de desempenho
Lei de Amdahl
Exemplo: Suponha que um programa seja executado em 100 segundos em uma
máquina, como uma multiplicação é responsável por 80 segundos desse tempo.
O quanto precisamos melhorar a velocidade da multiplicação se queremos que
o programa seja executado 4 vezes mais rápido?
Dados do problema:
Tempo de execução após melhoria = 25.
Tempo de execução não afetado = 100 - 80
Tempo de execução afetado = 80
Quantidade de melhoria = ???
Solução:
25 = (100 - 80) + (80 / n)
(25 - 20) × n = 80
n = 16
Observação:
n = 16 → Quantidade de melhoria a ser aplicada sobre a parte “melhorável”
Medidas de desempenho
Lei de Amdahl
Exemplo: Suponha que um programa seja executado em 100 segundos em uma
máquina, como uma multiplicação é responsável por 80 segundos desse tempo.
O quanto precisamos melhorar a velocidade da multiplicação se queremos que
o programa seja executado 4 vezes mais rápido?
Dados do problema:
Tempo de execução após melhoria = 25.
Tempo de execução não afetado = 100 - 80
Tempo de execução afetado = 80
Quantidade de melhoria = ???
Solução:
25 = (100 - 80) + (80 / n)
(25 - 20) × n = 80
n = 16
Observação:
n = 16 → Quantidade de melhoria a ser aplicada sobre a parte “melhorável”
Medidas de desempenho
Lei de Amdahl
Exemplo: Suponha que um programa seja executado em 100 segundos em uma
máquina, como uma multiplicação é responsável por 80 segundos desse tempo.
O quanto precisamos melhorar a velocidade da multiplicação se queremos que
o programa seja executado 5 vezes mais rápido?
Dados do problema:
Tempo de execução após melhoria = 20.
Tempo de execução não afetado = 100 - 80
Tempo de execução afetado = 80
Quantidade de melhoria = ???
Solução:
20 = (100 - 80) + (80 / n)
(20 - 20) × n = 80
Observação:
Limitação da parte “melhorável”
Medidas de desempenho
Lei de Amdahl
Exemplo: Suponha que um programa seja executado em 100 segundos em uma
máquina, como uma multiplicação é responsável por 80 segundos desse tempo.
O quanto precisamos melhorar a velocidade da multiplicação se queremos que
o programa seja executado 5 vezes mais rápido?
Dados do problema:
Tempo de execução após melhoria = 20.
Tempo de execução não afetado = 100 - 80
Tempo de execução afetado = 80
Quantidade de melhoria = ???
Solução:
20 = (100 - 80) + (80 / n)
(20 - 20) × n = 80
Observação:
Limitação da parte “melhorável”
Medidas de desempenho
Lei de Amdahl
Exemplo: Suponha que um programa seja executado em 100 segundos em uma
máquina, como uma multiplicação é responsável por 80 segundos desse tempo.
O quanto precisamos melhorar a velocidade da multiplicação se queremos que
o programa seja executado 5 vezes mais rápido?
Dados do problema:
Tempo de execução após melhoria = 20.
Tempo de execução não afetado = 100 - 80
Tempo de execução afetado = 80
Quantidade de melhoria = ???
Solução:
20 = (100 - 80) + (80 / n)
(20 - 20) × n = 80
Observação:
Limitação da parte “melhorável”
Medidas de desempenho
Aceleração ou speedup:
I Medida de como a máquina se comporta após a implementação de uma melhoria
em relação ao seu comportamento anterior.
I Aceleração = Desempenho após a melhoria / desempenho antes da melhoria.
Aceleração = 1: Não houve melhoria efetiva.
Aceleração > 1: Houve melhoria.
Aceleração < 1: A melhoria deixou o programa mais lento (não houve melhoria).
Programas para avaliação de desempenho
Conjunto de programas executado pelo usuário:
I Carga de Trabalho (workload).
I Avaliação entre diferentes sistemas.
Comparação do tempo de execução da carga de trabalho do usuário.
Em geral, os usuários não possuem uma carga de trabalho típica que possa ser
utilizada para a avaliação.
Avaliação entre diferentes sistemas:
I Quatro níveis de programa (em ordem decrescente de precisão de previsão):
i Programas reais.
ii Núcleos ou kernels: Pedaços de programas reais.
iii Toy Benchmarks: 10 a 100 linhas de código que produzem um resultado
conhecido a priori.
iv Benchmarks sintéticos: frequência média de operações de um grande conjunto de
programas.
Programas para avaliação de desempenho
Benchmarks:
I Aplicações que representam cargas de trabalho (workloads), cujo objetivo é
estimar o desempenho das cargas de trabalho reais.
I Podem conter aplicações típicas de processamento científico, compiladores,
processadores de texto.
I Exemplos:
NAS.
SPLASH.
SPEC (System Performance Evaluation Cooperative): SPECint, SPECfp,
SPECWeb.
Whetstone (ponto flutuante).
Dhrystone (inteiro e string).
Programas para avaliação de desempenho
Benchmarks:
I Aplicações que representam cargas de trabalho (workloads), cujo objetivo é
estimar o desempenho das cargas de trabalho reais.
I Podem conter aplicações típicas de processamento científico, compiladores,
processadores de texto.
I Exemplos:
NAS.
SPLASH.
SPEC (System Performance Evaluation Cooperative): SPECint, SPECfp,
SPECWeb.
Whetstone (ponto flutuante).
Dhrystone (inteiro e string).
Exercício:
Em grupo de até 3 alunos, implementem uma multiplicação de matrizes e
utilizem o PAPI para obter o CPI e FLOPS do código responsável pela
multiplicação. A implementação TEM que ser feita em C.
Orientações:
1. Executar o programa na mesma máquina com diferentes tamanhos de matrizes.
2. Executar em máquinas diferentes a mesma instância das matrizes.
Para cada execução obter o tempo, CPI e FLOPS.
3. As matrizes devem ser quadradas.
4. Trabalhar com alocação dinâmica de memória.
5. As matrizes devem ter entre 1000x1000 e 10000x10000.
6. Trabalhar com precisãosimples (ponto flutuante de 32bits).
7. Biblioteca PAPI: http://icl.cs.utk.edu/papi/index.html
Data de apresentação: 6 de abril de 2016.
	Introdução
	Medidas de desempenho
	Programas para avaliação de desempenho
	Exercício

Continue navegando