• Nenhum resultado encontrado

Sistemas Distribuídos e Paralelos

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Distribuídos e Paralelos"

Copied!
26
0
0

Texto

(1)

paralelos.

ISUTIC - 2016

(2)

Aula de hoje

Análise de algoritmos paralelos:

Parâmetros absolutos e relativos para avaliar

algoritmos paralelos.

Desenho de algoritmos paralelos:

Exemplo de resolução de sistemas de

equações lineares U*x = b.

(3)

Introdução

De pouca utilidade costuma ser qualquer

computador se não se dispõe de algoritmos

eficientes que permitam o aproveitar ao máximo.

Isto é especialmente verdadeiro no caso dos

Computadores Paralelos onde as técnicas de

desenho diferem fundamentalmente das

(4)

Introdução

Devemos ser capazes de analisar e comparar os

algoritmos paralelos com outros já existentes e

tratar dos melhorar ao máximo explodindo todas

as possibilidades do paralelismo.

¿Como de rápido é um algoritmo paralelo?

¿Está a utilizar-se um Computador Paralelo de

forma eficiente?

(5)

Modelo RAM (Random Access

Machine)

Modelo usado para analisar e desenhar os algoritmos sequenciais. É muito simples e representa fielmente o modelo de Von Neumann. Nele se supõe que:

1. O algoritmo é implementado utilizando seu conjunto básico de instruções.

2. As instruções são executadas uma a seguir de outra. 3. Para a cada operação básica conhece-se seu tempo de execução ou sua forma de calcular.

(6)

Modelo multiprocessador com memória

distribuída (D-RAM)

Um dos modelos mais usados para analisar e desenhar os algoritmos paralelos.

Características:

• Compõe-se por vários processadores RAM, ou elementos de processo.

• A cada elemento de processo tem sua própria memória local, e seu próprio espaço de direções.

• Os processadores estão ligados mediante uma rede de interconexão.

• A comunicação entre os processadores realiza-se mediante passo de mensagens.

(7)

Modelo multiprocessador com memória

distribuída (D-RAM)

Características:

• A cada processador é identificado por um índice.

• Todos os processadores executam o mesmo programa (SPMD).

• Os códigos podem particularizar-se em função do índice identificador do processador.

• Existem primitivas de comunicação.

• Enviar(v, i): Escreve a mensagem alojada no variável v no buffer do processador Pi.

• Receber(v): Aloja a mensagem que tenha no buffer na variável v e esvazia o buffer.

(8)

Envio de mensagens

Tempo de envio de uma mensagem de N bytes de um nó a outro nó vizinho:

N · τ + β

τ : Tempo que demora um byte em circular de um nó a outro.

β : Tempo de latência. Tempo que decorre desde que se decidiu enviar a mensagem até que se envia o primeiro byte.

(9)

Tempos de execução (Parâmetros absolutos)

Tempo sequencial (Ts): Tempo que demora em

se executar o algoritmo num processador. Costuma

medir-se em FLOPS.

FLOPS: Tempo que demora em se executar uma

operação elementar em vírgula flutuante.

Tempo paralelo (Tp) : Tempo que demora o

algoritmo em se executar em p processadores.

(10)

Tempos de execução (Parâmetros absolutos)

Tempo aritmético (Ta): Tempo que demora o sistema

multiprocessador em fazer operações aritméticas. Costuma medir-se em FLOPS.

Tempo de comunicações (Tc): Tempo que demora o sistema multiprocessador em executar transferências de dados.

Tempo de sobreposição (Tsol): Tempo que decorre

quando se realizam operações aritméticas e operações de comunicação simultaneamente.

(11)
(12)

Desenho de algoritmos paralelos:

Exemplo de resolução de sistemas de

(13)

Algoritmo sequencial

                                     n n nn n n b b b x x x U U U U U U ... ... ... ... ... 2 1 2 1 2 22 1 12 11                                                   n n n n n n n n n n n n n x U b x U b x U b x x x U U U U U U 1 1 2 2 1 1 1 2 1 1 1 1 2 22 1 1 12 11 ... ... ... ... ... Sistema n n Calcula-se

x

n Sistema (n-1)(n-1)

(14)

Algoritmo sequencial

PARA j := n, n-1,…, 1 //Ciclo (1)

xj := bj/Ujj //Determina uma componente do vetor x PARA i:= 1, 2,…, j-1 //Ciclo (2)

bi:= bi - Uij*xj //Atualiza as componentes de b FIM_PARA FIM_PARA

   

n j n j j i S

F

F

F

j

F

n

F

T

1 2 1 1 1

)

)

1

(

2

1

(

)

2

1

(

(15)

Diagrama de dependências

b1 x1 b1 b1 b1 b2 b3 b2 x2 x3 x4 b4 U44 b3 U34 b2 U24 U14 U33 U23 U13 U22 U12 U11

(16)

Distribuição por filas consecutivas

Processadores Matriz U P3 n/p filas P0 P1 P2 b x Switch

(17)

Algoritmo escalar

Distribuição por filas consecutivas: filaj  Pj DIV (n / p)

EM PARALELO: PARA pr = 0, 1,…, p-1 EM Ppr:

PARA j := n-1, n-2,…, 0

SE filajPpr Então //jDIV(n/p) = pr xj := bj/Ujj //(1)

Enviar xj a Pk para tudo k < pr

EM OUTRO CASO SE pr < jDIV(n/p) Então Esperar xj PARA i:= 0, 1,…, j-1 SE filaiPpr Então bi := bi – Ui,j* xj //(2) FIM_PARA FIM

(18)

Análise do algoritmo escalar

 





 





1 0 2

2

2

1

n j A

F

p

n

F

p

n

F

T

 

1 0

2

n j C

np

n

j

p

T





 

F

np

p

n

T

P 2

2

Supondo que a rede de

interconexão é de topologia Estrela.

(19)

Análise do algoritmo escalar

 

F

n

p

p

np

F

p

n

F

n

T

T

S

P S P

2 2 2

2

2

p

p

S

p n

 

2

lim

F

p

n

p

n

p

n

T

p

T

D

q S A 2 2 2

2

Speed-Up aceitável, pois é proporcional ao número de processadores.

A distribuição de carga de trabalho entre os processadores está muito desequilibrada.

(20)

Distribuição cíclica de filas

Processadores Matriz U b x 1 fila P0 P1 P2 P3 P0 P1 P2 P3 P0 P1 P2 P3

(21)

Algoritmo TRS (Triangular Row Scatter)

Distribuição cíclica de filas: filaj  Pj MOD p

EM PARALELO: PARA pr = 0, 1,…, p-1 EM Ppr:

PARA j:= n-1, n-2,…, 0

SE filajPpr Então //jMODp = pr xj := bj/Ujj //(1)

Difunde Xj a Pk para tudo kpr EM OUTRO CASO Esperar xj PARA i:= 0, 1,…, j-1 SE filaiPpr Então bi := bi – Ui,j*xj //(2) FIM_PARA FIM

(22)

Análise do algoritmo TRS

  F p n F p n p n p n p F i p n F p T p n i A 2 1 / 0 2 2 2 2 2 2 1                            

 

 

1 0

2

2

n j C

p

np

T





F

np

p

n

T

P

2

2

Supondo que a rede de

interconexão é de topologia Estrela.

(23)

Análise do algoritmo TRS

 

F

n

p

p

np

F

p

n

F

n

T

T

S

P S P

2 2 2

2

1

2

p

S

p n

 

lim

0

2 2

p

n

p

n

T

p

T

D

q S A

Pode-se atingir o máximo de ganho de velocidade.

O desequilíbrio é totalmente nulo, pelo que a carga de trabalho nos processadores já está equilibrada.

(24)

Algoritmo TRS na prática

Suponhamos que n = 1024 e que se tem um sistema multiprocessador com 8 processadores e onde existam as seguintes condições:

F = 1.2  10-8 sg.  = 8.5  10-8 sg.

 = 1.8  10-4 sg.

TP  3 sg. Significativo para un problema não tão grande.

Paralelismo de grão fino: Enviam-se muitas mensagens

(25)

Tarefa

1. O que é o paralelismo de grão fino?

2. Pesquise os seguintes aspectos sobre o algoritmo TRB (Triangular Row Block): Pseudocódigo, Tempo de execução e Distribuição de carga entre os

processadores. Compare com o algoritmo TRBS (Triangular Row Block Scatter) tendo em conta os mesmos aspectos.

(26)

paralelos.

ISUTIC - 2016

Referências

Documentos relacionados

Outro grupo de animais que foram dosificados em maio com Doramectin, julho com Albendazole e Setembro com Doramectin, mostram um ganho médio de peso de 21 quilos

Os estudos iniciais em escala de bancada foram realizados com um minério de ferro de baixo teor e mostraram que é possível obter um concentrado com 66% Fe e uma

coordenar estudos, pesquisas e levantamentos de interesse das anomalias de cavidade oral e seus elementos, que intervirem na saúde da população; Examinar os dentes e

d) os dados obtidos na avaliação fonoaudiológica foram, na maioria da vezes, suficientes para definir a conduta fonoaudiológica quanto à necessidade de avaliação abrangente ou

Temos o campo senha, conforme dito acima, onde informara a senha para acesso e os botões para entrar e sair do programa... Mônaco Distribuidora de Peças

Quando contratados, conforme valores dispostos no Anexo I, converter dados para uso pelos aplicativos, instalar os aplicativos objeto deste contrato, treinar os servidores

Do “distante” desse século maior para nossa civilização ocidental que é o Século XVI, Claude Dubois, de um lado, pode dar conta da fragilidade dos historicismos e das

Quadro 5-8 – Custo incremental em função da energia em períodos de ponta (troços comuns) ...50 Quadro 5-9 – Custo incremental em função da energia ...52 Quadro 5-10