• Nenhum resultado encontrado

Caracterização de desempenho em programas paralelos

N/A
N/A
Protected

Academic year: 2021

Share "Caracterização de desempenho em programas paralelos"

Copied!
74
0
0

Texto

(1)

Caracterização de desempenho em

programas paralelos

Esbel Tomás Valero Orellana Bacharelado em Ciência da Computação Departamento de Ciências Exatas e Tecnológicas

Universidade Estadual de Santa Cruz evalero@uesc.br

(2)

Conteúdo

1 Introdução

2 Desempenho em programas paralelos

(3)

Conteúdo

1 Introdução

2 Desempenho em programas paralelos

(4)

Serial vs Paralelo

Algoritmo serial ou seqüencial: executado em um único processador,

Algoritmo paralelo: executado em dois ou mais processa-dores,

Para cada algoritmo paralelo existe um algoritmo serial que realiza a mesma tarefa,

Antes de criar um algoritmo paralelosempre crie uma

ver-são serial para o mesmo problema. Algoritmo serial:

ponto de partida,

garante a compreensão do problema, auxilia na validação do programa paralelo.

(5)

Objetivo de um programa paralelo

Objetivo de um algoritmo paralelo: obter um

desempe-nho superior com relação a versão seqüencial; Desempenho = tempo de execução,

Tempo total de execução = tempo de computação +

(6)

Tempo de execução

Tempo de computação: tempo das operações de E/S e

cálculos do programa,

Tempo ocioso ou tempo de sincronização: Dedicado a

sin-cronizar um algoritmo ou a esperar pelos processos mais lentos,

Tempo de comunicação = latência + tempo de

transmis-são,

latência: tempo de preparação da mensagem (pacotes), tempo de transmissão: velocidade real de transmissão (largura de banda).

(7)

Fatores

Para obtermos algoritmos paralelos eficientes devemos con-siderar:

Balanceamento de carga: dividir equitativamente o trabalho entre os processadores,

Minimizar as necessidades de comunicação, Minimizar o tempo ocioso,

Sobrepor as operações de comunicação e de computação. Minimizar (concentrar) as operações E/S.

(8)

Projeto de programas paralelos

Existem basicamente dois enfoques para projetar progra-mas paralelos:

1 Paralelismo de dados: neste enfoque particionamos os

dados, e associamos um subconjunto de dados a cada pro-cesso, cada processo executa os mesmos comandos sobre seu subconjunto de dados.

2 Paralelismo de controle: dividimos o problema em

tare-fas (etapas) independentes, associamos cada tarefa a um processo, cada processo executa comandos diferentes.

(9)

Projeto de programas paralelos

(10)

Projeto de programas paralelos

(11)

Projeto de programas paralelos

Características do paralelismo de dados:

1 pode ser implementado mais facilmente que o paralelismo de controle,

2 não é prejudicado pela dependência entre as operações,

3 programas deste tipo são facilmente escaláveis (podem ser

utilizados para resolver problemas cada vez maiores, ape-nas colocando mais processos),

(12)

Introdução

Desempenho em programas paralelos Lei de Ahmdal

Projeto de programas paralelos

Características do paralelismo de controle:

1 deve considerar a dependência entre as operações,

2 difícil de ser implementado,

3 dificuldades de escalabilidade,

4 grandes necessidades de comunicação.

enfoques (dados e controle),

(13)

Projeto de programas paralelos

Características do paralelismo de controle:

1 deve considerar a dependência entre as operações,

2 difícil de ser implementado,

3 dificuldades de escalabilidade,

4 grandes necessidades de comunicação.

A maioria dos programas paralelos envolvem os dois enfoques (dados e controle),

(14)

Introdução

Desempenho em programas paralelos Lei de Ahmdal

Projeto de programas paralelos

Como construir um programa paralelo:

1 Estudar, implementar e validar uma solução serial para o problema;

3 Verificar se a solução paralela pode ser alcançada apenas executando o algoritmo serial em cada conjunto de dados (PD);

4 Se o paralelismo de dados não for suficiente, identificar as necessidades de comunicação entre os processos;

(15)

Introdução

Desempenho em programas paralelos Lei de Ahmdal

Projeto de programas paralelos

Como construir um programa paralelo:

1 Estudar, implementar e validar uma solução serial para o problema;

2 Dividir os dados do problema entre os processos(PD);

executando o algoritmo serial em cada conjunto de dados (PD);

4 Se o paralelismo de dados não for suficiente, identificar as necessidades de comunicação entre os processos;

(16)

Introdução

Desempenho em programas paralelos Lei de Ahmdal

Projeto de programas paralelos

Como construir um programa paralelo:

1 Estudar, implementar e validar uma solução serial para o problema;

2 Dividir os dados do problema entre os processos(PD);

3 Verificar se a solução paralela pode ser alcançada apenas executando o algoritmo serial em cada conjunto de dados (PD);

necessidades de comunicação entre os processos;

(17)

Introdução

Desempenho em programas paralelos Lei de Ahmdal

Projeto de programas paralelos

Como construir um programa paralelo:

1 Estudar, implementar e validar uma solução serial para o problema;

2 Dividir os dados do problema entre os processos(PD);

3 Verificar se a solução paralela pode ser alcançada apenas executando o algoritmo serial em cada conjunto de dados (PD);

(18)

Projeto de programas paralelos

Como construir um programa paralelo:

1 Estudar, implementar e validar uma solução serial para o problema;

2 Dividir os dados do problema entre os processos(PD);

3 Verificar se a solução paralela pode ser alcançada apenas executando o algoritmo serial em cada conjunto de dados (PD);

4 Se o paralelismo de dados não for suficiente, identificar as necessidades de comunicação entre os processos;

(19)

Conteúdo

1 Introdução

2 Desempenho em programas paralelos

(20)

Notação

p = número de processos (processadores) ou threads. n = tamanho do problema.

Para avaliar o desempenho de programas seriais se utiliza notação assintótica (O, Ω),

Análises assintóticas não são apropriadas para caracteri-zar o desempenho de programas paralelos.

(21)

Parâmetros

Granularidade,

Fator de balanço de carga, Speedup,

(22)

Granularidade

Granularidade G(n) expressa a relação entre a quantidade de computação e a quantidade de comunicação em um al-goritmo paralelo

G(n) = Tcp(n)

Tcm(n)

Tcp → Tempo de computação,

(23)

Granularidade

A granularidade de um problema é inversamente proporci-onal ao volume de paralelização do problema.

Nro subproblemas Computação Comunicação Granularidade Paralelismo Grande Pouca Alta Fina Alto

(24)

Granularidade

A granularidade de um problema é inversamente proporci-onal ao volume de paralelização do problema.

Nro subproblemas Computação Comunicação Granularidade Paralelismo Grande Pouca Alta Fina Alto

(25)

Fator de balanço de carga

Fator de balanço de carga ou razão de sincronização (FLB)

FLB(n) =

Tmax(n) − Tmin(n) Tmax(n)

Tmax → Tempo do último processo a terminar,

Tmin → Tempo do primeiro processo a terminar,

(26)

Speedup

Tempo de execução de um programa serial: T (n), apenas depende do tamanho do problema;

Tempo de execução de um programa paralelo: T (n, p), de-pende do tamanho do problema e do número de processa-dores utilizados na execução;

T (n, p) → tempo total de execução, tempo transcorrido desde que o primeiro processador começa a execução, até que o último processador completa a execução da última instru-ção.

(27)

Speedup

Na maioria dos programas T (n, p) é simplesmente o tempo de execução do processo responsável pelas operações de E/S do programa (processo master),

Consideramos que cada processo é executado em um pro-cessador físico diferente (não existem processos concor-rentes),

(28)

Speedup

Speedup: é a razão do tempo de execução do algoritmo

serial T (n) com o tempo de execução do algoritmo paralelo T (n, p),

S(n, p) = T (n)

T (n, p)

T (n) → tempo de execução do algoritmo serial mais rápido executado em um processador da máquina paralela, T (n, p) → tempo de execução do algoritmo paralelo em p processadores da máquina paralela.

(29)

Speedup

O algoritmo paralelo pode ser diferente do algoritmo serial mais rápido,

Ospeedup fornece um indicador para o aumento da

velo-cidade por utilizarmos uma maquina paralela. De forma geral: 0 < S(n, p) ≤ p,

(30)

Speedup

Se a sobrecarga da paralelização for muito alta, teremos que T (n) < T (n, p) e S(n, p) < 1 esta situação indesejável é chamada de slowdown.

Resumo de speedups:

S(n, p) < 1,slowdown, situação indesejável;

1 < S(n, p) < p,sublinear, comportamento geral;

S(n, p) = p,linear, ideal não existe sobrecarga;

S(n, p) > p,supralinear, situação possível; Gráfico de speedup.

(31)

Introdução

Desempenho em programas paralelos

Lei de Ahmdal

Speedup supralinear

Quais são as razões para obtermos speedup supralinear?

+ paginação),

Algoritmos não-determínisticos.

(32)

Introdução

Desempenho em programas paralelos

Lei de Ahmdal

Speedup supralinear

Quais são as razões para obtermos speedup supralinear?

Efeitos de memória em sistemas multiprocessados (cache + paginação),

(33)

Speedup supralinear

Quais são as razões para obtermos speedup supralinear?

Efeitos de memória em sistemas multiprocessados (cache + paginação),

Algoritmos não-determínisticos.

(34)

Speedup supralinear - Busca

(35)

Speedup supralinear - Busca

Busca paralela: procura

em cada subespaço em paralelo

(36)

Speedup supralinear - Busca

Calculamos o speedup: S(n, p) = T (n) T (n, p) S(n, p) =  x ×ts p  + ∆t ∆t

x - subespaço que contem a chave, ts

p - tempo de busca em um subespaço,

(37)

Introdução

Desempenho em programas paralelos

Lei de Ahmdal

Speedup supralinear - Busca

Melhor caso da versão paralela, a chave esta no último su-bespaço, i.e. x = p − 1, S(n, p) =  p−1 p  ts+ ∆t ∆t , ∆t <<  p − 1 p  ts, S(n, p) → ∞. bespaço, i.e. x = 0, S(n, p) = ∆t ∆t =1,

(38)

Introdução

Desempenho em programas paralelos

Lei de Ahmdal

Speedup supralinear - Busca

Melhor caso da versão paralela, a chave esta no último su-bespaço, i.e. x = p − 1, S(n, p) =  p−1 p  ts+ ∆t ∆t , ∆t <<  p − 1 p  ts, S(n, p) → ∞.

Pior caso da versão paralela, a chave esta no primeiro su-bespaço, i.e. x = 0,

S(n, p) = ∆t

(39)

Speedup supralinear - Busca

Melhor caso da versão paralela, a chave esta no último su-bespaço, i.e. x = p − 1, S(n, p) =  p−1 p  ts+ ∆t ∆t , ∆t <<  p − 1 p  ts, S(n, p) → ∞.

Pior caso da versão paralela, a chave esta no primeiro su-bespaço, i.e. x = 0,

(40)

Introdução

Desempenho em programas paralelos

Lei de Ahmdal

Eficiência

Eficiência: é a medida de utilização dos processos em um

programa paralelo em relação ao programa serial.

E (n, p) = S(n, p) p = T (n) pT (n, p) 1 p <E (n, p) < 1, sublinear; E (n, p) = 1, linear; E (n, p) > 1, supralinear.

(41)

Eficiência

Eficiência: é a medida de utilização dos processos em um

programa paralelo em relação ao programa serial.

E (n, p) = S(n, p) p = T (n) pT (n, p) E (n, p) < 1p, slowdown; 1 p <E (n, p) < 1, sublinear; E (n, p) = 1, linear;

(42)

Tomadas de tempo

Para avaliar o desempenho de programas paralelos deve-mos realizar tomadas de tempo,

Para obtermos tomadas de tempo confiáveis considere as seguintes etapas:

1 Garantir na medida do possível exclusividade na utilização do processador,

2 Sincronizar os processo no inicio do código,

3 Fazer uma tomada de tempo(start),

4 Sincronizar os processo no final do código,

5 fazer uma tomada de tempo(finish),

(43)

Tomadas de tempo

Exemplo usando MPI

1 double s t a r t , f i n i s h ; 2 M P I _ B a r r i e r (comm) ; 3 s t a r t = MPI_Wtime ( ) ; 4 . 5 . / ∗ Codigo que se d e s e j a c r o n o m e t r a r ∗ / 6 . 7 M P I _ B a r r i e r (comm) ; 8 s t a r t = MPI_Wtime ( ) ; 9 i f ( rank ==0) p r i n t f ( ‘ ‘ Tempo:% f ’ ’ , f i n i s h −s t a r t ) ;

(44)

Conteúdo

1 Introdução

2 Desempenho em programas paralelos

(45)

Lei de Ahmdal

A lei de Amdahl, foi formulada por Gene Amdahl em 1967; Estabelece um limite superior para o speedup de um algo-ritmo paralelo;

De forma geral um problema é composto por:

Um conjunto de operações de cálculo, Um conjunto de operações de E/S.

(46)

Instruções paralelas

O programa tem uma fração f de instruções que são “per-feitamente paralelizáveis”;

Operações de cálculo;

Independentemente do número de processos envolvidos (p), a fração f do programa apresenta speedup linear; O tempo de execução quando paralelizada com p proces-sos é: rTs/p.

(47)

Instruções seriais

Entretanto, temos uma fração (1 − r ) que é inerentemente serial;

Operações de E/S;

Independentemente do número de processos (p) utiliza-dos;

(48)
(49)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Speedup

Calculamos o speedup deste programa:

S(n, p) = Ts (1 − f )Ts+fTs/p S(n, p) = 1 (1 − f ) + f /p dS(p) dp = r [(1 − r )p + r ]2 ≥ 0

a derivada sempre positiva indica S(n, p) é uma função

(50)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Speedup

Calculamos o speedup deste programa:

S(n, p) = Ts

(1 − f )Ts+fTs/p

S(n, p) = 1

(1 − f ) + f /p

Derivamos S(n, p) com relação a p, obtemos dS(p)

dp =

r

[(1 − r )p + r ]2 ≥ 0

(51)

Speedup

Calculamos o speedup deste programa:

S(n, p) = Ts

(1 − f )Ts+fTs/p

S(n, p) = 1

(1 − f ) + f /p

Derivamos S(n, p) com relação a p, obtemos dS(p)

(52)

Speedup

Calculamos o limite de S(n, p) quando p → ∞ lim p→∞S(n, p) = limp→∞ 1 (1 − f ) + f /p = 1 (1 − f )

A função 1/(1 − f ) é um limite superior para o speedup de um programa paralelo.

Lei de Amhdal: o speedup que podemos obter ao

(53)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Exemplos

Cálculo de speedup máximo segunda a lei de Ahmdal

1 f = 0.50, MS = 1/(1 − f ) = 2, para p > 2, E (n, p) ↓.

3 f = 0.99, MS = 1/(1 − f ) = 100, para p > 100, E (n, p) ↓. 4 Se executarmos o caso 3 com p = 1000 teremos uma

(54)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Exemplos

Cálculo de speedup máximo segunda a lei de Ahmdal

1 f = 0.50, MS = 1/(1 − f ) = 2, para p > 2, E (n, p) ↓. 2 f = 0.75, MS = 1/(1 − f ) = 4, para p > 4, E (n, p) ↓.

4 Se executarmos o caso 3 com p = 1000 teremos uma eficiência E (n, p) = 0.1.

(55)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Exemplos

Cálculo de speedup máximo segunda a lei de Ahmdal

1 f = 0.50, MS = 1/(1 − f ) = 2, para p > 2, E (n, p) ↓. 2 f = 0.75, MS = 1/(1 − f ) = 4, para p > 4, E (n, p) ↓. 3 f = 0.99, MS = 1/(1 − f ) = 100, para p > 100, E (n, p) ↓.

(56)

Exemplos

Cálculo de speedup máximo segunda a lei de Ahmdal

1 f = 0.50, MS = 1/(1 − f ) = 2, para p > 2, E (n, p) ↓. 2 f = 0.75, MS = 1/(1 − f ) = 4, para p > 4, E (n, p) ↓. 3 f = 0.99, MS = 1/(1 − f ) = 100, para p > 100, E (n, p) ↓. 4 Se executarmos o caso 3 com p = 1000 teremos uma

(57)

Exemplos

(58)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Exemplos

O pintor de estacas

1 Preparo da tinta = 30s

2 Pintura das estacas = 300s

3 Tempo para a tinta secar = 30s

Tarefas paralelas 2

Pintores Tempo Speedup

1 30 +300+ 30 = 360 1.0 2 30 +150+ 30 = 210 1.7

10 30 +30+ 30 = 90 4.0

100 30 +3+ 30 = 63 5.7

(59)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Exemplos

O pintor de estacas

1 Preparo da tinta = 30s

2 Pintura das estacas = 300s

3 Tempo para a tinta secar = 30s

Tarefas seriais 1 e 3 Tarefas paralelas 2 1 30 +300+ 30 = 360 1.0 2 30 +150+ 30 = 210 1.7 10 30 +30+ 30 = 90 4.0 100 30 +3+ 30 = 63 5.7 ∞ 30 +0+ 30 = 60 6.0

(60)

Exemplos

O pintor de estacas

1 Preparo da tinta = 30s

2 Pintura das estacas = 300s

3 Tempo para a tinta secar = 30s

Tarefas seriais 1 e 3 Tarefas paralelas 2

Pintores Tempo Speedup

1 30 +300+ 30 = 360 1.0 2 30 +150+ 30 = 210 1.7

10 30 +30+ 30 = 90 4.0

100 30 +3+ 30 = 63 5.7

(61)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Exemplos

A lei de Ahmdal desencoraja a utilização de paralelismo massivo;

Não devemos utilizar centos ou mieis de processadores para resolver um único problema;

Esta conclusão é correta? O que fazer?

(62)

Exemplos

A lei de Ahmdal desencoraja a utilização de paralelismo massivo;

Não devemos utilizar centos ou mieis de processadores para resolver um único problema;

Esta conclusão é correta? O que fazer?

A formulação de Ahmdal é matematicamente correta; Entretanto, devemos discutir suas hipóteses.

(63)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Lei de Ahmdal - Hipóteses

Em todo programa existe um conjunto de (1 − f ) instruções que não são paralelizáveis;

truções são perfeitamente paralelizáveis, sempre teremos alguma sobrecarga produto da paralelização;

A principal deficiência da lei de Amdhal é que não consi-dera o tamanho do problema n na formulação.

(64)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Lei de Ahmdal - Hipóteses

Em todo programa existe um conjunto de (1 − f ) instruções que não são paralelizáveis;

É excessivamente otimista supor que as restantes f ins-truções são perfeitamente paralelizáveis, sempre teremos alguma sobrecarga produto da paralelização;

(65)

Lei de Ahmdal - Hipóteses

Em todo programa existe um conjunto de (1 − f ) instruções que não são paralelizáveis;

É excessivamente otimista supor que as restantes f ins-truções são perfeitamente paralelizáveis, sempre teremos alguma sobrecarga produto da paralelização;

(66)

consi-Introdução Desempenho em programas paralelos

Lei de Ahmdal

Lei de Gustavfson

Em um problema qualquer ao aumentarmos o tamanho do problema n, a fração de instruções seriais (1 − f ) fica con-sideravelmente menor;

Exemplos

ter constante a eficiência E (n, p), incrementando o tama-nho do problema n ao mesmo tempo que incrementamos o número de processos p.

(67)

Lei de Gustavfson

Em um problema qualquer ao aumentarmos o tamanho do problema n, a fração de instruções seriais (1 − f ) fica con-sideravelmente menor;

Exemplos

Escalabilidade: um programa é escalável se podemos

(68)

tama-Introdução Desempenho em programas paralelos

Lei de Ahmdal

Lei de Gustavfson

Conceitos detrabalho (W )esobrecarga (T0);

de execução W (n) = T (n);

O trabalho de um programa paralelo é a soma do trabalho feito por cada processo

W (n, p) = pT (n, p);

A sobrecarga do programa paralelo, é a diferença entre o trabalho feito pelo programa paralelo e o programa serial correspondente

(69)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Lei de Gustavfson

Conceitos detrabalho (W )esobrecarga (T0);

O trabalho de um programa serial é justamente seu tempo de execução

W (n) = T (n);

feito por cada processo W (n, p) = pT (n, p);

A sobrecarga do programa paralelo, é a diferença entre o trabalho feito pelo programa paralelo e o programa serial correspondente

(70)

Introdução Desempenho em programas paralelos

Lei de Ahmdal

Lei de Gustavfson

Conceitos detrabalho (W )esobrecarga (T0);

O trabalho de um programa serial é justamente seu tempo de execução

W (n) = T (n);

O trabalho de um programa paralelo é a soma do trabalho feito por cada processo

W (n, p) = pT (n, p);

trabalho feito pelo programa paralelo e o programa serial correspondente

(71)

Lei de Gustavfson

Conceitos detrabalho (W )esobrecarga (T0);

O trabalho de um programa serial é justamente seu tempo de execução

W (n) = T (n);

O trabalho de um programa paralelo é a soma do trabalho feito por cada processo

W (n, p) = pT (n, p);

(72)

Lei de Gustavfson

A eficiência foi definida na forma

E (n, p) = T (n)

pT (n, p),

Escrevemos a eficiência em função da sobrecarga,

Substituímos o denominador pela definição de sobrecarga e obtemos

E (n, p) = 1

T0(n, p)

T (n) +1

(73)

Lei de Gustavfson

Ao aumentar o número de processos incrementarmos p

au-menta a sobrecarga T0(n, p);

Se incrementamos n (aumenta T (n)) de forma que a fração

T0(n, p)/T (n) permanece constante;

Podemos então manter a eficiência constante e aumentar o número de processos,

(74)

Lei de Gustavfson

Fontes de sobrecarga em programas paralelos:

Comunicação entre processos, Inatividade de processos,

Cálculos adicionais (provocados pela paralelização).

Durante as décadas de 70 e 80, a lei de Amdahl foi ampla-mente aceita nos círculos científicos.

Nos últimos anos o conceito de escalabilidade (Lei de Gufs-tavson) tem aberto novos horizontes ao uso de paralelismo massivo.

Referências

Documentos relacionados

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa

No entanto, expressões de identidade não são banidas da linguagem com sentido apenas porque a identidade não é uma relação objetiva, mas porque enunciados de identi- dade

Os instrumentos de pesquisa utilizados serão: Ficha de Rastreamento das Participantes do Estudo, International Consultation on Incontinence Questionnaire – Short Form

O objetivo deste estudo foi avaliar o comporta- mento clínico de lesões de dermatite digital bovina após tratamento cirúrgico, uso local e parenteral de oxitetraci- clina e passagem

O presente experimento teve como objetivo avaliar o desenvolvimento até os vinte e oito meses de idade e o desempenho reprodutivo no primeiro período de acasalamento de fêmeas

As seguintes características foram avaliadas: período, em dias, da semeadura à emergência das plantas em 75% das covas; dias da semeadura à abertura da primeira flor; dias da

Do ponto de vista técnico, conseguiu convencer o corpo médico presente ao encontro que a doença seria transmissível, como comprova o primeiro item da resolução final do encontro:

Para se buscar mais subsídios sobre esse tema, em termos de direito constitucional alemão, ver as lições trazidas na doutrina de Konrad Hesse (1998). Para ele, a garantia