paralelos.
ISUTIC - 2016
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.
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
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?
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.
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.
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.
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.
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.
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.
Desenho de algoritmos paralelos:
•
Exemplo de resolução de sistemas de
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-sex
n Sistema (n-1) (n-1)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 SF
F
F
j
F
n
F
T
1 2 1 1 1)
)
1
(
2
1
(
)
2
1
(
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 U11Distribuição por filas consecutivas
Processadores Matriz U P3 n/p filas P0 P1 P2 b x SwitchAlgoritmo 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 filaj Ppr 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 filai Ppr Então bi := bi – Ui,j* xj //(2) FIM_PARA FIM
Análise do algoritmo escalar
1 0 22
2
1
n j AF
p
n
F
p
n
F
T
1 02
n j Cnp
n
j
p
T
F
np
p
n
T
P 22
Supondo que a rede de
interconexão é de topologia Estrela.
Análise do algoritmo escalar
F
n
p
p
np
F
p
n
F
n
T
T
S
P S P
2 2 22
2
p
p
S
p n
2
lim
F
p
n
p
n
p
n
T
p
T
D
q S A 2 2 22
Speed-Up aceitável, pois é proporcional ao número de processadores.
A distribuição de carga de trabalho entre os processadores está muito desequilibrada.
Distribuição cíclica de filas
Processadores Matriz U b x 1 fila P0 P1 P2 P3 P0 P1 P2 P3 P0 P1 P2 P3Algoritmo TRS (Triangular Row Scatter)
Distribuição cíclica de filas: filaj Pj MOD pEM PARALELO: PARA pr = 0, 1,…, p-1 EM Ppr:
PARA j:= n-1, n-2,…, 0
SE filaj Ppr 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 filai Ppr Então bi := bi – Ui,j*xj //(2) FIM_PARA FIM
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 02
2
n j Cp
np
T
F
np
p
n
T
P2
2Supondo que a rede de
interconexão é de topologia Estrela.
Análise do algoritmo TRS
F
n
p
p
np
F
p
n
F
n
T
T
S
P S P
2 2 22
1
2
p
S
p n
lim
0
2 2
p
n
p
n
T
p
T
D
q S APode-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.
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
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.
paralelos.
ISUTIC - 2016