Sei sulla pagina 1di 4

.:: Corso di Laurea in Informatica ‐ UniNa ::.

Collegamenti Rapidi FAQ Notifiche [0] Messaggi privati [0] •  sorrentix ▼

Indice ‹ Corso di Laurea Magistrale in Informatica ‹ Primo Anno ‹ Calcolo Parallelo e Distribuito (Mod. A)

[Traccia inventata 09/01/2017] Esercizio 2 (mat‐vet)


Rispondi Cerca qui... 1 messaggio • Pagina 1 di 1

luigi_starace
Admin

[Traccia inventata 09/01/2017] Esercizio 2 (mat‐vet)


ieri, 10:35
M
LINK ALL'INDICE DELLE TRACCE
LINK ALLA TRACCIA (INVENTATA )
Questo esercizio è stato inventato per esercitarmi con alcuni colleghi e non è tratto da nessuna traccia in
particolare.

Si consideri il prodotto della matrice A ∈ R8×7 con il vettore colonna b di dimensione 7 su architettura MIMD‐DM
con 4 processi.
Per ciascuna strategia risolutiva, si dica come vengono distribuiti i dati (e come viene eventualmente organizzata
la topologia dei processi) e si calcoli speed‐up ed efficienza secondo la definizione classica, la legge di Ware e la
legge di Ware generalizzata.

Note:
per la strategia 1, non è richiesto che un singolo processo contenga il risultato completo;
per la strategia 2, se necessario, si adotti la strategia di comunicazione 2 vista per la somma;
per la strategia 3, se necessario, si consideri una disposizione dei processi con topologia a griglia cartesiana
bidimensionale 2 × 2 . Inoltre è richiesto che alla fine un singolo processo contenga il risultato completo.

PRIMA STRATEGIA
Distribuzione dei dati e funzionamento generale: la matrice A viene distribuita per blocchi di righe e ciascun
processo riceverà quindi 2 righe. Il vettore b viene distribuito in modo che ciascun processo abbia una copia completa.
Ciascun processo può quindi effettuare il prodotto del suo blocco di A di dimensioni 2 × 7 per il vettore b e calcolare
2 componenti del risultato finale. Poiché non è esplicitamente richiesto l'ottenimento del risultato completo in unico

processo, non sono necessari ulteriori passi di comunicazione.

DEFINIZIONE CLASSICA
Il prodotto eseguito in sequenziale richiederebbe 8 × (2 × 7 − 1) = 104 operazioni e quindi impiegherebbe
T (1) = 104t calc .

Ogni processo deve inizialmente calcolare il prodotto tra il suo blocco di A di dimensioni 2 × 7 per il vettore b ,
ovvero calcolare 2 prodotti scalari di una riga per il vettore colonna, ciascuno dei quali necessita di 7
moltiplicazioni e 6 somme. In totale quindi 2 × (2 × 7 − 1) = 26 operazioni che impiegano 26tcalc . Non sono
necessari altri passi perché ogni processo contiene già 2 componenti finite del vettore risultato. Possiamo
calcolare quindi speed‐up e efficienza:

T (1) 104t calc


S (4) = = = 4 E(4) = 1
T (4) 26t calc
LEGGE DI WARE GENERALIZZATA
Dal momento che tutte le operazioni sono svolte da tutti i processi, si avrà che α4 = 1 e di conseguenza che
S (4) = 4 e E(4) = 1 .

LEGGE DI WARE
Per le considerazioni al punto precedente, si avrà α = 0 e 1 − α = 1. Di conseguenza S (4) = 4 e E(4) = 1 .

SECONDA STRATEGIA
Distribuzione dei dati e funzionamento generale: la matrice A viene distribuita per blocchi di colonne e ciascun
processo riceverà quindi 2 righe. Il vettore b viene distribuito in modo che ciascun processo abbia tante componenti
quante colonne di A . In particolare tutti i processi riceveranno 2 colonne di A e altrettante componenti di b tranne
P3 che ne riceverà una soltanto. Ciascun processo può quindi effettuare il prodotto del suo blocco di A di dimensioni

8 × 2 o 8 × 1 per le componenti ricevute del vettore b e calcolare un risultato parziale. Per comporre il risultato

finale è necessario sommare tutti i risultati parziali.

DEFINIZIONE CLASSICA
Il prodotto eseguito in sequenziale richiederebbe 8 × (2 × 7 − 1) = 104 operazioni e quindi impiegherebbe
T (1) = 104t calc .

Al passo 0 ciascun processo effettua il prodotto locale con i dati ricevuti. Questo passo impiega il tempo che
impiega il processo che deve effettuare più operazioni, ovvero quanto impiega ciascuno dei primi tre processi:
8 × (2 × 2 − 1) = 24t calc . A questo seguiranno 2 passi di comunicazione, ciascuno dei quali costerà

8t comm + 8t calc (invio di un vettore di 8 elementi seguito da 8 somme in P0 per aggiornare il risultato

parziale). In totale quindi T (4) = 24tcalc + 16tcomm + 16tcalc = 40tcalc + 16tcomm . Assumendo
t comm = 2t calc si ha T (4) = 40t calc + 32t calc = 72t calc . È quindi possibile applicare la definizione classica:

T (1) 104t calc S (4) 1.444


S (4) = = = 1.444 E(4) = = = 0.361
T (4) 72t calc 4 4

LEGGE DI WARE GENERALIZZATA


Al passo zero dell'algoritmo i primi tre processi effettuano 8 × (2 × 2 − 1) = 24 operazioni mentre il quarto
effettua 8 prodotti. In totale 32 operazioni vengono eseguite da tutti i processi. Al primo passo di
comunicazione 2 processi eseguono 8 somme, mentre al terzo soltanto P0 esegue 8 somme. Quindi si ha
24×3+8=80 16 8
α4 =
104
= 0.769 , α2 =
104
= 0.154 , α1 =
104
= 0.077 e tutti gli altri αi = 0 . Possiamo quindi
applicare la legge di Ware generalizzata:

1 1 S (4) 2.888
S (4) = = = 2.888 E(4) = = = 0.722
p αi
0.154 0.769
∑ 4 4
i=1
0.077 + +
i 2 4

LEGGE DI WARE SEMPLICE


Sfruttando i risultati ottenuti nel punto precedente, α = α1 = 0.077 e quindi 1 − α = 0.923 . Applicando la
legge di Ware semplice:

1 1 S (4) 3.249
S (4) = = = 3.249 E(4) = = = 0.812
1−α 0.923
0.077 + 4 4
α+
4 4

TERZA STRATEGIA
Distribuzione dei dati e funzionamento generale: la matrice A viene suddivisa in blocchi di righe e colonne. In
particolare, considerando i processi disposti in topologia a griglia 2 × 2 come la seguente:

P0 P1

P2 P3

si avrebbe che P0 e P2 ricevono un blocco di A di dimensioni 4×4 , mentre P1 e P3 ricevono un blocco di A di


4×3 4
0 3

dimensioni 4 × 3. Allo stesso modo, P0 e P2 ricevono lo stesso blocco di b di lunghezza 4 , mentre P1 e P3 ricevono
lo stesso blocco di b di lunghezza 3 . Ogni processo effettua quindi il prodotto locale tra le componenti ricevute e
calcola una componente di una parte del risultato di dimensione 4 . Sarà necessario sommare i risultati parziali
ottenuti dai processi della stessa riga per ottenere una parte completa del risultato. Dal momento che la traccia
richiede che un singolo processo possegga il risultato completo, sarà anche necessario che P2 invii la propria porzione
di risultato a P0 .

DEFINIZIONE CLASSICA
Il prodotto eseguito in sequenziale richiederebbe 8 × (2 × 7 − 1) = 104 operazioni e quindi impiegherebbe
T (1) = 104t calc .

Al passo 0 ogni processo calcola il proprio prodotto locale. Questo passo impiega il tempo che impiega P0 o P2
dal momento che questi sono i processi che effettuano più operazioni, ovvero 4 × (2 × 4 − 1) = 28
operazioni, quindi 28tcalc . Segue quindi un passo di comunicazione in cui P 1 e P3 inviano rispettivamente a P0
e P2 le proprie componenti parziali che costa quindi 4tcomm + 4tcalc . Infine P2 invia a P0 le proprie
componenti complete affinché quest'ultimo possa disporre del risultato complessivo, impiegando 4tcomm .
In totale quindi si ha: T (4) = 28tcalc + 4tcalc + 8tcomm = 32tcalc + 8tcomm . Assumendo come sempre
t comm = 2t calc si ha: T (4) = 32t calc + 16t calc = 48t calc . Applicando dunque la definizione classica:

T (1) 104t calc S (4) 2.167


S (4) = = = 2.167 E(4) = = = 0.542
T (4) 48t calc 4 4

LEGGE DI WARE GENERALIZZATA


Al passo 0 ogni processo calcola il proprio prodotto locale. P0 o P2 effettueranno 4 × (2 × 4 − 1) = 28
operazioni ciascuno.
P1 o P3 effettueranno 4 × (2 × 3 − 1) = 20 operazioni ciascuno. In totale 28 × 2 + 20 × 2 = 96 operazioni

sono eseguite da tutti i processi. Al primo passo di comunicazione P1 e P2 effettuano ciascuno 4 somme, per
un totale di 8 operazioni effettuate da due processi. Il resto è solo comunicazione e non sono necessari ulteriori
96 8
step di calcolo. Si ha quindi α4 =
104
,
= 0.923 α2 =
104
= 0.077 , tutti gli altri αi = 0 . Applicando la legge
di Ware generalizzata:

1 1 S (4) 3.714
S (4) = = = 3.714 E(4) = = = 0.928
p ai
0.077 0.923
∑ + 4 4
i=1 i 2 4

LEGGE DI WARE SEMPLICE


Sfruttando i risultati trovati nel punto precedente, si avrebbe che α = 0 e quindi α−1 = 1 e di conseguenza
che S (4) = 4 e E(4) = 1 .

~ Luigi Starace

He's making a database ~ 
and sortin' it twice ~ 
SELECT * FROM Contacts WHERE behaviour = 'nice'; ~ 
SQL Clause is coming to town!
T
o
Rispondi 1 messaggio • Pagina 1 di 1

Torna a “Calcolo Parallelo e Distribuito (Mod. A)”

Vai a

CHI C’È IN LINEA
Visitano il forum: sorrentix e 0 ospiti

Indice Staff Iscritti Cancella cookie • Tutti gli orari sono UTC+01:00

Powered by phpBB® Forum Software © phpBB Limited 
Traduzione Italiana phpBBItalia.net