Vous êtes sur la page 1sur 18

Multiplicaodematrizes

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

Vous aimerez peut-être aussi