Ricardo Rocha DCC-FCUP 1
Programação
Paralela e Distribuída
Métricas de Desempenho
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Desempenho
Desempenho
Dois dos principais objectivos do desenho de aplicações paralelas são:
Desempenho: a capacidade de reduzir o tempo de resolução do problema à medida que os recursos computacionais aumentam.
Escalabilidade: a capacidade de aumentar o desempenho à medida que a complexidade do problema aumenta.
Os factores que condicionam o desempenho e a escalabilidade de uma aplicação são: Limites Arquitecturais
Ricardo Rocha DCC-FCUP 3
Limites ao Desempenho
Limites ao Desempenho
Limites Arquitecturais
Latência e Largura de Banda Coerência dos Dados Capacidade de Memória Limites Algorítmicos
Falta de Paralelismo(código sequencial/concorrência) Frequência de Comunicação
Frequência de Sincronização
Escalonamento Deficiente(granularidade das tarefas/balanceamento de carga)
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métricas de Desempenho
Métricas de Desempenho
Existem 2 classes distintas de métricas de desempenho:
Métricas de Desempenho para Processadores: métricas que permitem avaliar a performance de um processador tendo por base a velocidade/número de operações que este consegue realizar num determinado espaço temporal.
Métricas de Desempenho para Aplicações Paralelas: métricas que permitem avaliar a performance de uma aplicação paralela tendo por base a comparação entre a execução com múltiplos processadores e a execução com um só processador.
No nosso caso, estamos obviamente mais interessados nas métricas que permitem avaliar o desempenho das aplicações paralelas.
Ricardo Rocha DCC-FCUP 5
Métricas de Desempenho para Processadores
Métricas de Desempenho para Processadores
Algumas das métricas mais conhecidas para medir o desempenho da arquitectura de um processador/computador são:
MIPS: acrónimo para Millions of Instructions Per Second.
FLOPS: acrónimo para FLoating point Operations Per Second.
SPECint: conjunto de programas de teste (benchmarks) da SPEC (Standard Performance Evaluation Corporation) que avaliam o desempenho do processador em aritmética de inteiros (1992).
SPECfp: conjunto de programas de teste da SPEC que avaliam o desempenho do processador em operações de vírgula flutuante (2000).
Whetstone: programa de teste sintético que avalia o desempenho do processador em operações de vírgula flutuante (1972).
Dhrystone: programa de teste sintético que avalia o desempenho do processador em aritmética de inteiros (1984).
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métricas de Desempenho para Aplicações Paralelas
Métricas de Desempenho para Aplicações Paralelas
Existem várias medidas que permitem medir/avaliar o desempenho duma aplicação paralela. As mais conhecidas são:
Speedup
Eficiência Redundância Utilização Qualidade
Existem igualmente várias leis/métricas que permitem balizar o comportamento duma aplicação paralela face ao seu potencial desempenho. As mais conhecidas são:
Lei de Amdahl
Lei de Gustafson-Barsis Métrica de Karp-Flatt Métrica de Isoeficiência
Ricardo Rocha DCC-FCUP 7
Speedup
Speedup
O speedup é uma medida do grau de desempenho. O speedup mede o rácio entre o tempo de execução sequencial e o tempo de execução em paralelo.
T(1) é o tempo de execução com um processador T(p) é o tempo de execução com p processadores
)
(
)
1
(
)
(
p
T
T
p
S
=
10,00 6,25 3,57 1,92 1 S(p) 100 160 280 520 1000 T(p) 16 CPUs 8 CPUs 4 CPUs 2 CPUs 1 CPUProgramação Paralela e Distribuída 2007/08 Métricas de Desempenho
Eficiência
Eficiência
A eficiência é uma medida do grau de aproveitamento dos recursos computacionais. A eficiência mede o rácio entre o grau de desempenho e os recursos computacionais disponíveis.
S(p) é o speedup para p processadores
)
(
)
1
(
)
(
)
(
p
T
p
T
p
p
S
p
E
×
=
=
0,63 0,78 0,89 0,96 1 E(p) 10,00 6,25 3,57 1,92 1 S(p) 16 CPUs 8 CPUs 4 CPUs 2 CPUs 1 CPURicardo Rocha DCC-FCUP 9
Redundância
Redundância
A redundância é uma medida do grau de aumento da computação. A redundância mede o rácio entre o número de operações realizadas pela execução paralela e pela execução sequencial.
O(1) é o número total de operações realizadas com 1 processador O(p) é o número total de operações realizadas com p processadores
)
1
(
)
(
)
(
O
p
O
p
R
=
1,50 1,23 1,10 1,03 1 R(p) 15000 12250 11000 10250 10000 O(p) 16 CPUs 8 CPUs 4 CPUs 2 CPUs 1 CPUProgramação Paralela e Distribuída 2007/08 Métricas de Desempenho
Utilização
Utilização
A utilização é uma medida do grau de aproveitamento da capacidade computacional. A utilização mede o rácio entre a capacidade computacional utilizada durante a computação e a capacidade disponível.
)
(
)
(
)
(
p
R
p
E
p
U
=
×
1,50 1,23 1,10 1,03 1 R(p) 0,95 0,96 0,98 0,99 1 U(p) 0,63 0,78 0,89 0,96 1 E(p) 16 CPUs 8 CPUs 4 CPUs 2 CPUs 1 CPURicardo Rocha DCC-FCUP 11
Qualidade
Qualidade
A qualidade é uma medida do grau de importância de utilizar programação paralela.
0,63 0,78 0,89 0,96 1 E(p) 1,50 1,23 1,10 1,03 1 R(p) 10,00 6,25 3,57 1,92 1 S(p) 4,20 3,96 2,89 1,79 1 Q(p) 16 CPUs 8 CPUs 4 CPUs 2 CPUs 1 CPU
)
(
)
(
)
(
)
(
p
R
p
E
p
S
p
Q
=
×
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Lei de
Lei de
Amdahl
Amdahl
A computação realizada por uma aplicação paralela pode ser divididas em 3 classes: C(seq): computações que só podem ser realizadas sequencialmente.
C(par): computações que podem ser realizadas em paralelo. C(com): computações de comunicação/sincronização/iniciação.
Usando estas 3 classes, o speedup de uma aplicação pode definido do seguinte modo:
)
(
)
(
)
(
)
(
)
(
)
(
)
1
(
)
(
com
C
p
par
C
seq
C
par
C
seq
C
p
T
T
p
S
+
+
+
=
=
Ricardo Rocha DCC-FCUP 13
Lei de
Lei de
Amdahl
Amdahl
Como C(com) ≥ 0 então:
Se f for a fracção da computação que só pode ser realizada sequencialmente então:
p
par
C
seq
C
par
C
seq
C
p
S
)
(
)
(
)
(
)
(
)
(
+
+
≤
p
f
seq
C
seq
C
f
seq
C
p
S
par
C
seq
C
seq
C
f
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
−
×
+
≤
+
=
1
1
)
(
)
(
)
(
)
(
e
)
(
)
(
)
(
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Lei de
Lei de
Amdahl
Amdahl
Simplificando:
p
f
f
p
S
p
f
f
p
S
p
f
seq
C
seq
C
f
seq
C
p
S
−
+
≤
⇒
−
+
≤
⇒
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
−
×
+
≤
1
1
)
(
1
1
1
1
)
(
1
1
)
(
)
(
)
(
)
(
Ricardo Rocha DCC-FCUP 15
Lei de
Lei de
Amdahl
Amdahl
Seja 0 ≤ f ≤ 1 a fracção da computação que só pode ser realizada sequencialmente. A lei de Amdahl diz-nos que o speedup máximo que uma aplicação paralela com p processadores pode obter é:
A lei de Amdahl dá-nos uma medida do speedup máximo que podemos obter ao resolver um determinado problema com p processadores.
A lei de Amdahl também pode ser utilizada para determinar o limite máximo de speedup que uma determinada aplicação poderá alcançar independentemente do número de processadores a utilizar.
p
f
f
p
S
−
+
≤
1
1
)
(
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Lei de
Lei de
Amdahl
Amdahl
Suponha que pretende determinar se é vantajoso desenvolver uma versão paralela de uma determinada aplicação sequencial. Por experimentação, verificou-se que 90% do tempo de execução é passado em procedimentos que se julga ser possível paralelizar. Qual é o speedup máximo que se pode alcançar com uma versão paralela do problema executando em 8 processadores?
E o limite máximo de speedup que se pode alcançar?
71
,
4
8
1
,
0
1
1
,
0
1
)
(
≈
−
+
≤
p
S
10
1
,
0
1
1
,
0
1
lim
=
−
+
∞ →p
pRicardo Rocha DCC-FCUP 17
Limitações da Lei de
Limitações da Lei de Amdahl
Amdahl
A lei de Amdahl ignora o custo das operações de comunicação/sincronização associadas à introdução de paralelismo numa aplicação. Por esse motivo, a lei de Amdahl pode resultar em predições pouco realísticas para determinados problemas. Suponha que desenvolveu uma aplicação paralela cujo padrão de execução é o seguinte, em que n é o tamanho do problema:
Tempo de execução da parte sequencial (input e output de dados): Tempo de execução da parte paralelizável:
Total de pontos de comunicação/sincronização por processador: Tempo de execução por comunicação/sincronização:
⎡
log
n
⎤
100
2n
n
+
000
.
18
⎡
⎤
10
log
000
.
10
×
p
+
n
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Limitações da Lei de
Limitações da Lei de Amdahl
Amdahl
Qual é o speedup máximo que se pode obter?
Utilizando a lei de Amdahl:
Utilizando a medida de speedup:
100
000
.
18
100
000
.
18
)
(
e
100
000
.
18
000
.
18
2 2 2×
+
+
+
+
≤
+
+
+
=
p
n
n
n
n
p
S
n
n
n
f
⎡
⎤
⎡
⎤
⎟
⎠
⎞
⎜
⎝
⎛
×
+
×
+
×
+
+
+
+
=
10
log
000
.
10
log
100
000
.
18
100
000
.
18
)
(
2 2n
p
n
p
n
n
n
n
p
S
Ricardo Rocha DCC-FCUP 19
Limitações da Lei de
Limitações da Lei de Amdahl
Amdahl
Speedup Lei de Amdahl 14,82 7,71 3,94 1,99 1 n = 30.000 14,02 7,51 3,89 1,98 1 n = 20.000 2,57 2,22 2,11 1,61 1 n = 10.000 6,64 4,71 3,21 1,87 1 n = 20.000 11,36 6,72 3,70 1,95 1 n = 10.000 9,29 5,89 3,55 1,93 1 n = 30.000 16 CPUs 8 CPUs 4 CPUs 2 CPUs 1 CPU
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Lei de
Lei de Gustafson
Gustafson-
-Barsis
Barsis
Consideremos novamente a medida de speedup definida anteriormente:
Se f for a fracção da computação paralela realizada a executar computações sequenciais então:
p
par
C
seq
C
par
C
seq
C
p
S
)
(
)
(
)
(
)
(
)
(
+
+
≤
(
)
p
C(par)
C(seq)
p
C(par)
f
p
par
C
seq
C
seq
C
f
+
=
−
+
=
e
1
)
(
)
(
)
(
Ricardo Rocha DCC-FCUP 21
Lei de
Lei de Gustafson
Gustafson-
-Barsis
Barsis
Logo: Simplificando:
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
+
×
−
×
=
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
+
×
=
p
par
C
seq
C
f
p
par
C
p
par
C
seq
C
f
seq
C
)
(
)
(
)
1
(
)
(
)
(
)
(
)
(
(
)
(
)
(
f
)
S
p
p
f
(
p
)
p
f
p
S
p
par
C
seq
C
p
par
C
seq
C
f
p
f
p
S
−
×
+
≤
⇒
−
×
+
≤
⇒
+
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
+
×
−
×
+
≤
1
)
(
1
)
(
)
(
)
(
)
(
)
(
1
)
(
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Lei de
Lei de Gustafson
Gustafson-
-Barsis
Barsis
Seja 0 ≤ f ≤ 1 a fracção da computação paralela realizada a executar computações sequenciais. A lei de Gustafson-Barsis diz-nos que o speedup máximo que uma aplicação paralela com p processadores pode obter é:
Enquanto a lei de Amdahl parte do tempo de execução sequencial para estimar o speedup máximo passível de ser conseguido em múltiplos processadores, a lei de Gustafson-Barsis faz precisamente o contrário, ou seja, parte do tempo de execução em paralelo para estimar o speedup máximo comparado com a execução sequencial.
(
p
)
f
p
p
Ricardo Rocha DCC-FCUP 23
Lei de
Lei de Gustafson
Gustafson-
-Barsis
Barsis
Considere que uma determinada aplicação executa em 220 segundos em 64 processadores. Qual é o speedup máximo da aplicação sabendo que por experimentação verificou-se que 5% do tempo de execução é passado em computações sequenciais.
Suponha que uma determinada companhia pretende comprar um supercomputador com 16.384 processadores de modo a obter um speedup de 15.000 num problema de fundamental importância. Qual é a fracção máxima da execução paralela que pode ser passada em computações sequenciais de modo a se atingir o speedup pretendido?
85
,
60
15
,
3
64
)
64
1
(
)
05
,
0
(
64
)
(
p
≤
+
×
−
=
−
=
S
084
,
0
384
.
1
383
.
16
)
384
.
16
1
(
384
.
16
000
.
15
≤
≤
×
−
×
+
≤
f
f
f
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Limitações da Lei de
Limitações da Lei de Gustafson
Gustafson-
-Barsis
Barsis
Ao usar o tempo de execução em paralelo como o ponto de partida, em lugar do tempo de execução sequencial, a lei de Gustafson-Barsis assume que a execução com um só processador é no pior dos casos p vezes mais lenta que a execução com p processadores.
Isso pode não ser verdade se a memória disponível para a execução com um só processador for insuficiente face à computação realizada pelos p processadores. Por este motivo, o speedup estimado pela lei de Gustafson-Barsis é habitualmente designado por scaled speedup.
Ricardo Rocha DCC-FCUP 25
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Consideremos novamente a definição do tempo de execução sequencial e do tempo de execução em paralelo:
Seja e a fracção sequencial determinada experimentalmente duma computação paralela:
)
(
)
(
)
(
)
(
)
(
)
(
)
1
(
com
C
p
par
C
seq
C
p
T
par
C
seq
C
T
+
+
=
+
=
)
1
(
)
(
T
seq
C
e
=
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Logo:
Se considerarmos que C(com) é desprezável então:
Por outro lado:
)
1
(
)
1
(
)
(
)
1
(
)
(
T
e
par
C
T
e
seq
C
×
−
=
×
=
)
(
)
(
)
1
(
)
(
)
1
(
)
(
p
T
p
S
T
p
T
T
p
S
×
=
⇒
=
p
T
e
T
e
p
T
(
)
=
×
(
1
)
+
(
1
−
)
×
(
1
)
Ricardo Rocha DCC-FCUP 27
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Simplificando:
p
p
p
S
e
p
p
e
p
S
p
e
p
e
p
S
p
e
e
p
S
p
p
S
e
p
S
e
p
p
T
p
S
e
p
T
p
S
e
p
T
1
1
1
)
(
1
1
1
1
)
(
1
1
)
(
1
)
1
(
)
(
1
)
(
)
1
(
)
(
1
)
(
)
(
)
1
(
)
(
)
(
)
(
−
−
=
⇒
+
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
−
×
=
⇒
−
+
=
⇒
−
+
=
⇒
×
−
+
×
=
⇒
×
×
−
+
×
×
=
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Seja S(p) o speedup duma aplicação paralela com p > 1 processadores. A métrica de Karp-Flatt diz-nos que a fracção sequencial determinada experimentalmente é:
A métrica de Karp-Flatt é interessante porque ao desprezar o custo das operações de comunicação/sincronização/iniciação associadas à introdução de paralelismo numa aplicação, permite-nos determinar à posteriori qual a importância da componente C(com) no eventual decréscimo de eficiência da aplicação.
p
p
p
S
e
1
1
1
)
(
1
−
−
=
Ricardo Rocha DCC-FCUP 29
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Por definição, a fracção sequencial determinada experimentalmente é um valor constante que não depende do número de processadores.
Por outro lado, a métrica de Karp-Flatt é uma função do número de processadores.
)
1
(
)
(
T
seq
C
e
=
p
p
p
S
e
1
1
1
)
(
1
−
−
=
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Como a eficiência duma aplicação é uma função decrescente do número de processadores, a métrica de Karp-Flatt permite-nos determinar qual a importância da componente C(com) nesse decréscimo.
Se os valores de e forem constantes à medida que o número de processadores aumenta isso significa que a componente C(com) é também constante. Logo, o decréscimo da eficiência é devido à existência de pouco paralelismo no problema.
Se os valores de e aumentarem à medida que o número de processadores aumenta isso significa que o decréscimo é devido à componente C(com), ou seja, à existência de custos excessivos associados à computação em paralelo (custos de comunicação, sincronização e/ou iniciação da computação).
Ricardo Rocha DCC-FCUP 31
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Por exemplo, a métrica de Karp-Flatt permite-nos detectar fontes de ineficiência não consideradas pelo modelo que assume que p processadores executam a parte que pode ser paralelizável p vezes mais rápido do que a execução com um só processador.
Se tivermos 5 processadores para resolver um problema decomposto em 20 tarefas indivisíveis, todos os processadores podem executar 4 tarefas. Se todas as tarefas demorarem o mesmo tempo a executar então o tempo de execução em paralelo será uma razão de 4.
Por outro lado, se tivermos 6 processadores para resolver o mesmo problema, 4 processadores podem executar 3 tarefas mas dois deles terão necessariamente de executar 4. Isto faz com que o tempo de execução em paralelo seja igualmente uma razão de 4 e não uma razão de 20/6.
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Considere os seguintes speedups obtidos por uma determinada aplicação paralela:
Qual é a principal razão para a aplicação obter apenas um speedup de 4,71 com 8 processadores?
Como e não aumenta com o número de processadores, isso significa que a principal razão para o baixo speedup é a falta de paralelismo existente no problema.
0,100 0,100 0,100 0,100 0,100 0,100 0,099 e 4,71 4,38 4,00 3,57 3,08 2,50 1,82 S(p)
6 CPUs 7 CPUs 8 CPUs 5 CPUs
4 CPUs 3 CPUs
Ricardo Rocha DCC-FCUP 33
Métrica de
Métrica de Karp
Karp-
-Flatt
Flatt
Considere os seguintes speedups obtidos por uma determinada aplicação paralela:
Qual é a principal razão para a aplicação obter apenas um speedup de 4,71 com 8 processadores?
Como e aumenta ligeiramente com o número de processadores, isso significa que a principal razão para o baixo speedup são os custos associados à computação em paralelo.
4,71 4,46 4,14 3,73 3,23 2,61 1,87 S(p) 0,100 0,095 0,090 0,085 0,079 0,075 0,070 e
6 CPUs 7 CPUs 8 CPUs 5 CPUs
4 CPUs 3 CPUs
2 CPUs
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Eficiência e
Eficiência e Escalabilidade
Escalabilidade
Dos resultados anteriores podemos concluir que a eficiência duma aplicação é:
Uma função decrescente do número de processadores. Tipicamente uma função crescente do tamanho do problema.
Ricardo Rocha DCC-FCUP 35
Eficiência e
Eficiência e Escalabilidade
Escalabilidade
Uma aplicação é dita de escalável quando demonstra a capacidade de manter a mesma eficiência à medida que o número de processadores e a complexidade do problema aumentam proporcionalmente.
A escalabilidade duma aplicação reflecte a sua capacidade de utilizar mais recursos computacionais de forma efectiva.
Eficiência 0,16 0,28 0,53 0,81 1 n = 10.000 0,42 0,59 0,80 0,94 1 n = 20.000 0,58 0,74 0,89 0,96 1 n = 30.000 16 CPUs 8 CPUs 4 CPUs 2 CPUs 1 CPU
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métrica de
Métrica de
Isoeficiência
Isoeficiência
A eficiência duma aplicação é tipicamente uma função crescente do tamanho do problema porque a complexidade de comunicação é habitualmente inferior à complexidade da computação, ou seja, a forma de manter o mesmo nível de eficiência quando aumentamos o número de processadores é aumentar o tamanho do problema. A métrica de isoeficiência formaliza esta ideia.
Consideremos novamente a medida de speedup definida anteriormente:
(
)
(
)
)
(
)
(
)
1
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
com
C
p
seq
C
p
par
C
seq
C
par
C
seq
C
p
com
C
p
par
C
seq
C
p
par
C
seq
C
p
com
C
p
par
C
seq
C
par
C
seq
C
p
S
×
+
×
−
+
+
+
×
=
×
+
+
×
+
×
=
+
+
+
=
Ricardo Rocha DCC-FCUP 37
Métrica de
Métrica de
Isoeficiência
Isoeficiência
Seja T0(p) o tempo de execução dispendido pelos p processadores do algoritmo paralelo a realizar computações não realizadas pelo algoritmo sequencial:
Simplificando:
)
(
)
(
)
1
(
)
(
0p
p
C
seq
p
C
com
T
=
−
×
+
×
(
)
)
1
(
)
(
1
1
)
(
)
(
)
(
1
1
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
0 0 0 0T
p
T
par
C
seq
C
p
T
p
T
par
C
seq
C
par
C
seq
C
p
E
p
T
par
C
seq
C
par
C
seq
C
p
p
S
+
=
+
+
=
+
+
+
=
+
+
+
×
=
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métrica de
Métrica de
Isoeficiência
Isoeficiência
Então:
Se pretendermos manter o mesmo nível de eficiência quando aumentamos o número de processadores então:
)
(
)
(
1
)
(
)
1
(
)
(
)
(
1
)
1
(
)
(
)
1
(
)
(
1
1
)
(
0 0 0
p
T
p
E
p
E
T
p
E
p
E
T
p
T
T
p
T
p
E
×
−
=
⇒
−
=
⇒
+
=
)
(
)
1
(
e
)
(
1
)
(
0p
T
c
T
c
p
E
p
E
×
≥
=
−
Ricardo Rocha DCC-FCUP 39
Métrica de
Métrica de
Isoeficiência
Isoeficiência
Seja E(p) a eficiência duma aplicação paralela com p processadores. A métrica de isoeficiência diz-nos que para se manter o mesmo nível de eficiência quando aumentamos o número de processadores então o tamanho do problema deve ser aumentado de forma a que a seguinte desigualdade seja satisfeita:
A aplicação da métrica de isoeficiência pode depender da quantidade de memória disponível, pois o tamanho máximo do problema que pode ser resolvido é limitado por essa quantidade.
)
(
)
(
)
1
(
)
(
e
)
(
1
)
(
que
em
)
(
)
1
(
0 0com
C
p
seq
C
p
p
T
p
E
p
E
c
p
T
c
T
×
+
×
−
=
−
=
×
≥
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métrica de
Métrica de
Isoeficiência
Isoeficiência
Suponha que a métrica de isoeficiência para um problema de tamanho n nos é dada por uma função do número de processadores p:
Se M(n) designar a quantidade de memória necessária para resolver o problema de tamanho n então:
Ou seja, para se manter o mesmo nível de eficiência, a quantidade de memória necessária por processador é:
)
( p
f
n
≥
(
f
( p
)
)
M
n
≥
(
)
p
p
f
M
(
)
Ricardo Rocha DCC-FCUP 41
Métrica de
Métrica de
Isoeficiência
Isoeficiência
Eficiência não pode ser mantida e deve decrescer
Mem ó ria p o r pr ocessador Número de processadores Eficiência pode ser mantida limite de memória
p
p
c
×
×
log
p
c
×
c
p
c
×
log
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
Métrica de
Métrica de
Isoeficiência
Isoeficiência
Considere que a versão sequencial de uma determinada aplicação tem complexidade O(n3) e que o tempo de execução dispendido por cada um dos p processadores da
versão paralela em operações de comunicação/sincronização é O(n2 log p). Se a
quantidade de memória necessária para representar um problema de tamanho n for n2, qual é a escalabilidade da aplicação em termos de memória?
Logo, a escalabilidade da aplicação é baixa.
p
p
c
p
p
p
c
p
p
p
c
M
n
n
M
p
p
c
n
p
n
p
c
n
2 2 2 2 2 2 2 3log
log
)
log
(
)
(
log
log
×
×
=
×
×
=
×
×
⇒
=
×
×
≥
×
×
×
≥
Ricardo Rocha DCC-FCUP 43
Speedup
Speedup
Superlinear
Superlinear
O speedup diz-se superlinear quando o rácio entre o tempo de execução sequencial e o tempo de execução em paralelo com p processadores é maior do que p.
Alguns dos factores que podem fazer com que o speedup seja superlinear são:
Custos de comunicação/sincronização/iniciação praticamente inexistentes. Tolerância à latência da comunicação.
Aumento da capacidade de memória (o problema passa a caber todo em memória). Subdivisão do problema (tarefas menores geram menos cache misses).
Aleatoriedade da computação em problemas de optimização ou com múltiplas soluções.
p
p
T
T
≥
)
(
)
1
(
Programação Paralela e Distribuída 2007/08 Métricas de Desempenho
“Se um único computador (processador) consegue resolver um problema em N segundos, podem N computadores (processadores)
resolver o mesmo problema em 1 segundo?”