Académique Documents
Professionnel Documents
Culture Documents
EvertonHermann
Introduoaoprocessamentoparaleloedistribudo
Roteiro
Objetivos
Algunsalgoritmos
Implementaes
Resultados
Conculses
Objetivos
Analisartcnicasealgoritmosparamultiplicao
dematrizes
Escolhaeimplementaodearquiteturas
disponveis
Avaliaodedesempenhoeganhosde
paralelizao
Mostrarqueaplicaescientficaspodemfazer
proveitodaparalelizao
Multiplicaodematrizes
C i , j = Ai , k B k , j
k
00
157
392
000 = 468 X 671
000
302
849
c11=3x1+5x6+7x8
MultiplicaoutilizandoSIMD
parai=1atn{
C[i,j]:=0;(0<j<n)
parak:=1atn
C[i,j]:=C[i,j]+A[i,k]*B[k,j];(0<j<n)
}
OBS:(1<=j<=n)operaousandonunidadesdeprocessamento
Implementao/simulao
SimularasoperaesSIMDatravsdefunes
Contaronmerodechamadasacadaoperao
array_le(deonde,tamanho,paraonde);
array_multiplica(op1,op2,destino);
array_soma(op1,op2,destino,tamanho);
array_escreve(deonde,paraonde,tamanho);
Unidadedeprocessamento:
estrutura{
inteiroreg[4];
}
Visualizao
157
392 000
468 X 671 = 000
302
849 000
157
392 392
468 X 671 = 000
302
849 000
157
392 33447
468 X 671 = 000
302
849 000
157
392 897270
468 X 671 = 000
302
849 000
Resultadoobtido
Simulao em maquina SIMD
Nmero de instrues SIMD
30000
27500
25000
22500
20000
17500
15000
12500
10000
7500
5000
2500
0
16
24
32
40
48
56
64
Tamanho da matriz
72
80
88
96
Soluobaseadaemcluster
Boarelaocusto/desempenho
Utilizaodebibliotecaspadro
MPI,OpenMP
Comunicaoviatrocademensagens
Distribuiodosdadosetarefas
Distribuiraslinhasnecessriasparacalcularum
elementodamatrizrespostaparacada
processador
Distribuiodosdadosetarefas
Daraacadaprocessadorumalinhaeumamatriz
inteira,possibilitandooclculodeumalinha
Distribuiodosdadosetarefas
Daraacadaprocessadorumalinhaeumabloco
damatriz,possibilitandooclculodealguns
elementos
=
Problemadedescontinuidadedosdados
Soluoadotada
DividiramatrizAemlinhasedistribuirentreos
processadores
TransferirtodaamatrizB
x
Dadoscontguosnamemria
Implementao
Mestreescravo
Processomestreenviaosdados
Cadaprocessadorcalculasuaparcela
Mestreaguardaosresultadoseosagrupa
Comunicaomestre/escravoMPI
ClculodosclientesOpenMP(utilizaros2
processadores)
Testes
Icluster2,INRIA,Grenoble
104nsItanium264bits900Mhz
3GbytesRAM
RedeMyrinet
Multiplicao MPI
550
500
Tempo (s)
450
400
sequencial
OpenMP
350
sequencial
6
300
10
250
14
18
200
22
150
26
30
100
50
0
200
800
1400
Tamanho da matriz
2000
2600
Eficincia
2.75
2.5
2.25
Eficincia
sequencial
6
1.75
10
1.5
14
18
1.25
22
26
30
0.75
0.5
0.25
0
200
T1/(Tn*N)
800
1400
2000
Tamanho da matriz
2600
Concluses
Multiplicaodematrizesfacilmente
paralelizvel
Calculodependedosdadoslocais
Oganhodeparalelizaodependedagrode
dadosdadoacadaprocessador
Arquiteturaemarraypermiteumcalculorpido
masdependedotamanhodaarray