Sei sulla pagina 1di 53

Calcolo Parallelo e Distribuito

Prodotto Matrice-Matrice

prof. Giuliano Laccetti a.a. 2016-2017 – prodotto mat-mat


12/12/2016

Materiale tratto da slide, appunti, lezioni di Calcolo Parallelo e Distribuito del prof. A. Murli
e dal testo
A. Murli – Lezioni di Calcolo Parallelo, ed. Liguori

prof. Giuliano Laccetti a.a. 2016-2017 – prodotto mat-mat


12/12/2016
Calcolo Parallelo e Distribuito

Prodotto Matrice-Matrice

prof. Giuliano Laccetti a.a. 2016-2017 – prodotto mat-mat


12/12/2016

Materiale tratto da slide, appunti, lezioni di Calcolo Parallelo e Distribuito del prof. A. Murli
e dal testo
A. Murli – Lezioni di Calcolo Parallelo, ed. Liguori

Problema

Progettazione
di un algoritmo parallelo
per architettura MIMD
a memoria distribuita
per il calcolo del prodotto righe per colonne
di 2 matrici A e B:

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 4
Qual è l’algoritmo sequenziale ?

for i=0,n-1 do
Prodotto Matrice-Matrice
for j=0,n-1 do
cij =0
for k=0,n-1 do
cij=cij+aik bkj
endfor
endfor
endfor
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 5

Qual è l’algoritmo sequenziale ?

for i=0,n-1 do Su un calcolatore tradizionale


la matrice C
for j=0,n-1 do viene “generalmente” calcolata
cij =0 componente per componente
secondo un ordine prestabilito
for k=0,n-1 do
cij=cij+aik bkj
Il generico elemento di C
endfor è il prodotto scalare della
i-esima riga di A per la
endfor
j-esima colonna di B
endfor
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 6
Domanda
Qual è
l’algoritmo parallelo
?
ovvero

Come decomporre
il problema
Matrice-Matrice ?
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 7

DECOMPOSIZIONE: IDEA GENERALE

Decomporre un problema di dimensione N


in P sottoproblemi di dimensione N/P
e risolverli contemporaneamente
su più calcolatori

N/P N/P

N
N/P N/P

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 8
Quali sono i sotto-problemi indipendenti?

Gli elementi di C sono


calcolati effettuando i
prodotti scalari di ciascuna riga di A per
ciascuna colonna di B

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 9

Quali sono i sotto-problemi indipendenti?

Gli elementi di C sono


calcolati effettuando i
prodotti scalari di ciascuna riga di A per
ciascuna colonna di B

I prodotti scalari sono calcolati


in maniera indipendente
l’uno dall’altro
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 10
IDEA!
Decomposizione del problema
Matrice per Matrice

Partizionamento delle matrici A e B


IN BLOCCHI

Riformulazione dell’algoritmo sequenziale


“A BLOCCHI”

Parallelismo dell’algoritmo
“A BLOCCHI”
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 11

Algoritmo a blocchi - I strategia


Decomposizione di A per p blocchi di righe e
di B per p blocchi di colonne

AiBj = Cij

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 12
Algoritmo a blocchi – I strategia
Decomposizione di A per p blocchi di righe e
di B per p blocchi di colonne
begin
C=0
Prodotti matrice-matrice for i=0 to p-1 do
di dimensione minore!
for j=0 to p-1 do
Cij=AiBj
endfor
AiBj = Cij
endfor
end

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 13

Algoritmo a blocchi - I strategia

C2,3
B3

A2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 14
Algoritmo a blocchi – II strategia
Decomposizione di A per p blocchi di colonne e
di B per p blocchi di righe

AiBi = Ci

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 15

Algoritmo a blocchi – II strategia


Decomposizione di A per p blocchi di colonne e
di B per p blocchi di righe
begin
C=0
Prodotti matrice-matrice
di dimensione minore! for i=0 to p-1 do
Ci=AiBi
C=C+Ci
endfor
AiBi = Ci end

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 16
Algoritmo a blocchi – II strategia

A0 A1 A2

B0

A B1
B
B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 17

Algoritmo a blocchi – II strategia

A0 A1 A2

B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 18
Algoritmo a blocchi – II strategia

A0 A1 A2

B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 19

Algoritmo a blocchi – II strategia

A0 A1 A2

B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 20
Algoritmo a blocchi – II strategia

A0 A1 A2

B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 21

Algoritmo a blocchi – II strategia

A0 A1 A2 C1
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 22
Algoritmo a blocchi – II strategia

A0 A1 A2 C1+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 23

Algoritmo a blocchi – II strategia

A0 A1 A2 C1+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 24
Algoritmo a blocchi – II strategia

A0 A1 A2 C1+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 25

Algoritmo a blocchi – II strategia

A0 A1 A2 C1+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 26
Algoritmo a blocchi – II strategia

A0 A1 A2 C1+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 27

Algoritmo a blocchi – II strategia

A0 A1 A2 +…2
C1+C
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 28
Algoritmo a blocchi – II strategia

A0 A1 A2 C1+C2+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 29

Algoritmo a blocchi – II strategia

A0 A1 A2 C1+C2+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 30
Algoritmo a blocchi – II strategia

A0 A1 A2 C1+C2+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 31

Algoritmo a blocchi – II strategia

A0 A1 A2 C1+C2+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 32
Algoritmo a blocchi – II strategia

A0 A1 A2 C1+C2+…
B0

B1

B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 33

Algoritmo a blocchi – II strategia

A0 A1 A2 C1+C2+C
+…3
B0

B1
C
B2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 34
Introduzione del parallelismo

Distribuiamo tra i processori il calcolo dei


diversi prodotti matrice-matrice

Distribuiamo tra i processori gli elementi


delle 2 matrici

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 35

I STRATEGIA

suddividiamo
la matrice A in
blocchi di RIGHE
e la matrice B in
blocchi di COLONNE

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 36
Distribuzione dei dati: Esempio n=6
B0
A0

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 37

Distribuzione dei dati: Esempio n=6


B1

A1

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 38
Domanda

Con i dati così distribuiti


cosa può calcolare
ciascuno studente
?

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 39

I Strategia: Esempio n=6

B0 C00

A0

Lo studente 1
può calcolare
solo alcune componenti
Studente 1 Studente 2 della matrice C!
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 40
I Strategia: Esempio n=6

B1
A1

11 C
Lo studente 2
può calcolare
solo alcune componenti
Studente 1 Studente 2 della matrice C!
12/12/2016 41
Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT

Osservazione
Con la distribuzione effettuata
dei blocchi di A e B
gli studenti hanno calcolato
solo alcune componenti di C!
C00

C11

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 42
Domanda
Come calcolare le altre
componenti di C?
C01

C10

? ?

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 43

IDEA!
Gli studenti possono “interagire”
scambiandosi
i blocchi di COLONNE della matrice B!
B0 B1

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 44
IDEA!
Gli studenti possono “interagire”
scambiandosi
i blocchi di COLONNE della matrice B!
B0 B1

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 45

Domanda

Dopo lo scambio
dei blocchi di B
cosa può calcolare
ciascuno studente
?

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 46
I Strategia: Esempio n=6
Lo studente 1 ha ora anche l’altro blocco di B!
C00 C01
B0 B1
A0

Lo studente 1
può calcolare
ALTRE componenti
Studente 1 Studente 2 matrice C: il blocco C01 !
della
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 47

I Strategia: Esempio n=6


Lo studente 2 ha ora anche l’altro blocco di B!
B0 B1
A1

C10 C11
Lo studente 2
può calcolare
ALTRE componenti
Studente 1 Studente 2 della matrice C: il blocco C10 !
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 48
I STRATEGIA: In generale

I passo: decomposizione del problema


La matrice A viene distribuita
in BLOCCHI di RIGHE
fra p processori

A
A0 P0
A1 P1
A2 P2


12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 49

I STRATEGIA: In generale

I passo: decomposizione del problema


La matrice B viene distribuita
in BLOCCHI di COLONNE
fra p processori

B
P0
P1
B0 B1 B2
… P2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 50
I STRATEGIA: In generale

II passo: risoluzione dei sottoproblemi


Il prodotto A•B=C viene decomposto
in p prodotti del tipo
Ai •Bj = Cij

Ciascun processore calcola


p prodotti matrice-matrice
(di dimensione più piccola di quello assegnato!).

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 51

I strategia: caratteristiche

♦ Analogo localmente alla I strategia del


prodotto matrice-vettore

MA

♦ sono necessari degli scambi di colonne della


matrice B tra i processori

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 52
Domanda

Qual è l’algoritmo parallelo


della I Strategia
di decomposizione

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 53

Risposta
Partizionamento di
A in blocchi di righe
B in blocchi di colonne

Algoritmo a blocchi
begin Distribuzione dei
for i=0 to p-1 do blocchi fra i
for j=0 to p-1 do
processori

Cij= Ai· Bj Algoritmo parallelo


endfor
endfor Parallelizzazione dell’algoritmo a
end blocchi!
54
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT
Risposta
Partizionamento di
A in blocchi di righe
B in blocchi di colonne
Algoritmo parallelo
Algoritmo a blocchi Begin
begin for k=0 to p-1 do
for i=0 to p-1 do forall Pi (i=0,.., p-1)

for j=0 to p-1 do j=mod(i+k,p);


{Pi calcola Cij= Ai· Bj}
Cij= Ai· Bj
send(Bj, Pi+1) {p=0}
endfor
recv(Bj-1,Pi-1){-1=p-1}
endfor
endfor
end end
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 55

II strategia

suddividiamo
la matrice A in
blocchi di COLONNE
e la matrice B in
blocchi di RIGHE

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 56
Distribuzione dei dati: Esempio n=6
A0 B0

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 57

Distribuzione dei dati: Esempio n=6


A1

B1

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 58
Domanda

Con i dati così distribuiti


cosa può calcolare
ciascuno studente
?

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 59

II Strategia: Esempio n=6

A0
B0

quali componenti
della matrice C calcola lo
studente 1 ?
Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 60
II Strategia: Esempio n=6

A0
B0

Lo studente 1 può calcolare


un contributo per OGNI
elemento della matrice C
Studente 1 Studente 2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 61

II Strategia: Esempio n=6

A0
B0

C1

Lo studente 1 può calcolare


un contributo per OGNI
elemento della matrice C
Studente 1 Studente 2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 62
Cioè…

i,j=0,5

k = Indice delle colonne di A


Lo studente 1 può calcolare e Indice di riga di B
un contributo per OGNI
elemento della matrice C

Studente 1 Studente 2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 63

II Strategia: Esempio n=6

A1
B1

quali componenti
della matrice C calcola lo
studente 1 ?
Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 64
II Strategia: Esempio n=6

A1
B1

Lo studente 2 può calcolare


un contributo per OGNI
elemento della matrice C
Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 65

II Strategia: Esempio n=6

A1
B1

C2

Lo studente 2 può calcolare


un contributo per OGNI
elemento della matrice C
Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 66
Cioè…

i,j=0,5

k = Indice delle colonne di A


Lo studente 2 può calcolare e Indice di riga di B

un contributo per OGNI


elemento della matrice C

Studente 1 Studente 2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 67

Pertanto…

i,j=0,5

I due contributi
devono essere
sommati
Studente 1 Studente 2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 68
Ovvero, in forma matriciale

= +

I due contributi
devono essere
sommati

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 69

Ovvero, in forma matriciale

= C1 + C2

I due contributi
devono essere
sommati
Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 70
Domanda

Come calcolare
la matrice C
C = C1 + C 2
?

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 71

II STRATEGIA: Esempio n= 6
Per ottenere la matrice C
gli studenti devono “interagire”
sommando i loro risultati parziali

C1 + C2

Studente 1 Studente 2
C = C1 + C2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 72
II STRATEGIA: In generale

♦ Calcolo:
Inizialmente tutti i processori calcolano,
indipendentemente, un contributo parziale di
tutte le componenti di C

♦ Comunicazione/calcolo
Successivamente in parallelo tutti i processori
concorrono alla somma dei contributi parziali

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 73

II STRATEGIA: In generale

I passo: decomposizione del problema


La matrice A viene distribuita
in BLOCCHI di COLONNE
fra p processori

A
P0
P1
A0 A1 A2 … P2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 74
II STRATEGIA: In generale

I passo: decomposizione del problema


La matrice B viene distribuita
in BLOCCHI di RIGHE
fra p processori

B
B0 P0
B1 P1
B2 P2


12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 75

II STRATEGIA: In generale

II passo: risoluzione dei sottoproblemi


Il prodotto A·B = C viene decomposto
in p prodotti del tipo
P-1
Ai •Bi=Ci dove C=∑ Ci
i=0

Ciascun processore calcola


un prodotto matrice matrice
(di dimensione più piccola di quello assegnato).
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 76
II strategia: caratteristiche

♦ I risultati parziali devono essere


sommati tra i processori

♦ In questo caso l’algoritmo parallelo è


analogo a quello del prodotto matrice-
vettore (II strategia)

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 77

Domanda

Qual è
l’algoritmo parallelo
della II Strategia
di decomposizione

?
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 78
Risposta
Partizionamento di
A in blocchi di colonne
B in blocchi di righe

begin Distribuzione dei


C =0 blocchi fra i
for i=0 to p-1 do processori
Ci =Ai·Bi
C =C + Ci Algoritmo parallelo
endfor
End Parallelizzazione dell’algoritmo a
blocchi!
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 79

Risposta
Partizionamento di
A in blocchi di colonne
B in blocchi di righe
Algoritmo parallelo
begin begin

C =0 forall Pi (i=0,.., p-1)

for i=0 to p-1 do {Pi calcola Ci= Ai·Bi}


Ci =Ai·Bi {combinazione dei Ci
C =C + Ci
C =C + Ci }
endfor
End end

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 80
III strategia

Suddividiamo
ENTRAMBE
le matrici A e B in
blocchi di COLONNE

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 81

Distribuzione dei dati: Esempio n=6


A0 B0

studente1
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 82
Distribuzione dei dati: Esempio n=6
A1 B1

studente2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 83

Domanda

Con i dati così distribuiti


cosa può calcolare
ciascuno studente
?

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 84
III Strategia: Esempio n=6

A0 B0

quali componenti
della matrice C
calcola lo studente 1

Studente 1 Studente 2 ?
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 85

III Strategia: Esempio n=6

A1 B1

quali componenti
della matrice C
calcola lo studente 2

Studente 1 Studente 2 ?
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 86
Premessa…
C A B

A0 A1 B0 B1

Riorganizziamo la matrice C in blocchi quadrati

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 87

Premessa…

A0 A1 B0 B1

Riorganizziamo la matrice C in blocchi quadrati


Allo stesso modo riorganizziamo
i blocchi di colonne di A e B!
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 88
Osservazione…

A0 A1 B0 B1

Riorganizziamo la matrice C in blocchi quadrati


Allo stesso modo riorganizziamo
i blocchi di colonne di A e B!
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 89

Osservazione…

A0 A1 B0 B1
Pertanto…
C00 = A00 B00 + A01 B10
C10 = A10 B00 + A11 B10
C01 = A00 B01 + A01 B11
C11 = A10 B01 + A11 B11
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 90
Fase di calcolo

A0 B0
Pertanto…
C00 = A00 B00 + A01 B10 Lo studente 1
C10 = A10 B00 + A11 B10 calcola “un contributo”
C01 = A00 B01 + A01 B11 di “una parte” della
matrice C!
C11 = A10 B01 + A11 B11 Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 91

Fase di calcolo

A0 B0
Pertanto…
C00 = A00 B00 + A01 B10 ? Lo studente 1
C10 = A10 B00 + A11 B10 NON può completare
i calcoli
C01 = A00 B01 + A01 B11
perché non possiede
C11 = A10 B01 + A11 B11 Studente 1 gli altri blocchi di 2A!
Studente
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 92
Fase di calcolo

A1 B1
Pertanto…
C00 = A00 B00 + A01 B10 Lo studente 2
C10 = A10 B00 + A11 B10 calcola “un contributo”
C01 = A00 B01 + A01 B11 di “una parte” della
matrice C!
C11 =Studente
A10 B011 + A11 B11 Studente 2
12/12/2016 93
Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT

Fase di calcolo

A1 B1
Pertanto…
C00 = A00 B00 + A01 B10
? NONLopuò
studente 2
completare
C10 = A10 B00 + A11 B10
i calcoli
C01 = A00 B01 + A01 B11
perché non possiede
C11 =Studente
A10 B011 + A11 B11 Studente 2 gli altri blocchi di A!
12/12/2016 94
Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT
Domanda

Come “completare”
i contributi calcolati

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 95

IDEA!
Gli studenti possono scambiarsi
i blocchi di COLONNE della matrice A!
A0 A1

Studente 1 Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 96
IDEA!
Gli studenti possono scambiarsi
i blocchi di COLONNE della matrice A!
A0 A1

Dopo lo scambio…
Studente 1 Studente 2
12/12/2016 97
Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT

Dopo lo scambio… Fase di calcolo 2

A0 A1 B0
Pertanto…
C00 = A00 B00 + A01 B10 Lo studente 1

C10 = A10 B00 + A11 B10 ha ricevuto


l’altro blocco di A
C01 = A00 B01 + A01 B11 e può completare il
C11 = A10 B01 + A11 B11 Studente 1 Calcolo!
Studente 2
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 98
Dopo lo scambio… Fase di calcolo 2

A0 A1 B1
Pertanto…
C00 = A00 B00 + A01 B10 Lo studente 2

C10 = A10 B00 + A11 B10 ha ricevuto


l’altro blocco di A
C01 = A00 B01 + A01 B11 e può completare il
C11 =Studente
A10 B011 + A11 B11 Studente 2 Calcolo!
99
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT

III STRATEGIA: In generale

I passo: decomposizione del problema


La matrice A viene distribuita
in BLOCCHI di COLONNE
fra p processori

A
P0
P1
A0 A1 A2 … P2

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 100
III STRATEGIA: In generale

I passo: decomposizione del problema


La matrice B viene distribuita
in BLOCCHI di COLONNE
fra p processori

B
P0
P1
B0 B1 B2
… P2


12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 101

III STRATEGIA: In generale

II passo: risoluzione dei sottoproblemi


Il prodotto A·B = C viene decomposto
in p×p prodotti del tipo
P-1
Ci=∑AkBki
k=0

Ciascun processore calcola


p prodotti matrice matrice
(di dimensione più piccola di quello assegnato).
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 102
Domanda

Qual è l’algoritmo parallelo


della III Strategia
di decomposizione

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 103

Risposta
Partizionamento delle matrici
A e B in blocchi di colonne

begin
Distribuzione dei
for i=0 to p-1 do
blocchi fra i
Ci =0
processori
for j=0 to p-1 do
Ci = Ci + Aj ·Bji
endfor
Algoritmo parallelo
endfor
end Parallelizzazione dell’algoritmo a
blocchi!
12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 104
Risposta
Partizionamento delle matrici
A e B in blocchi di colonne
Algoritmo parallelo
Begin
begin for k=0 to p-1 do
for i=0 to p-1 do forall Pi (i=0,..,p-1)
Ci =0 j=mod(i+k,p);
for j=0 to p-1 do
{Pi calcola
Ci = Ci + Aj ·Bji
Ci= Ci +Aj· Bji}
endfor
send(Aj, Pi-1) {p = 0}
endfor
end recv(Aj+1,Pi+1) {-1=p-1}
endfor
12/12/2016
Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 105

Fine Lezione

12/12/2016 Calcolo Parallelo e Distribuito modA prof. Giuliano Laccetti a.a. 2016/2017 Prodotto MAT-MAT 106

Potrebbero piacerti anche