Upload
others
View
33
Download
0
Embed Size (px)
Citation preview
1
1
Prof. Almerico Murli
Corso di Calcolo Parallelo e Distribuito II
a.a. 2005-2006
2
Problema
in ambiente di calcolo distribuito
naaaS +++= ...21
Progettare un algoritmo per il calcolo della somma di N numeri :
2
3
Quali sono le caratteristiche dell’ambiente di calcolo
?
4
Requisiti fondamentali
• le risorse di calcolo sono distribuite geograficamente
•i dati risiedono nella memoria locale di tali risorse (ovvero sono già distribuiti)
3
5
ESEMPIO 1
Calcolo della somma di 2 numeri utilizzando 2 risorse di calcolo connessi mediante una rete LAN
6
Caratteristiche dell’ambiente
1P 2Ppotenza di calcolo : 4 GFLOPs
4
7
Caratteristiche dell’ambiente
rete LAN :Bandwidth= 100 Mbit/sec
latenza = 0.01sec
1P 2P
8
I dati sono già distribuiti
1P 2P
a2 a1
5
9
I dati sono già distribuiti
1P 2P
a2 a1
Come sommare a1 e a2
?
?+
10
AlgoritmoI passo: comunicazione
1P 2P
a2 a1 a1
6
11
AlgoritmoI passo: comunicazione
1P 2P
a2 a1 a2
12
AlgoritmoII passo: calcolo
1P 2P
a2 a1 a2 a1+ +
7
13
Quanto tempo impiega l’algoritmo (Tp)?
I passo: comunicazione Tcom
II passo: calcolo Tcalc
Tcom= tlat + m tword
Tcalc = Nop tcalc
14
Quanto tempo Tp impiega l’algoritmo?
Tp = Tcom + Tcalc
Risposta
Poiché Tcom >> Tcalc
Il tempo di esecuzione dell’algoritmo è dello stesso ordine di grandezza
di Tcom
Tp = O( Tcom)
OSSERVAZIONE
8
15
1 word=32 bit
I passo: calcoliamo Tcom
Tcom = t lat + m x t word =
0.01 sec ?m=1 Poiché
bandwidth= 100 Mbit/sec
t word = 0.32 x 10 -6 sec
Calcolo di Tp = Tcom + Tcalc
16
1 word=32 bit
I passo: calcoliamo Tcom
Tcom = t lat + m x t word =
Calcolo di Tp = Tcom + Tcalc
Tcom = t lat + m x t word = sec6−
9
17
II passo: calcoliamo Tcalc
Ogni processore effettua 4 x 10 9 flops
)104/(1 9×t calc = sec
Tcalc = N op x tcalc = 0.25 x 10 -9 sec
Calcolo di Tp = Tcom + Tcalc
Tcalc = Nop tcalc
1 somma
18
T2 = Tcom + Tcalc = 962 1025.01032.010 −−− ×+×+ sec ≈ 10 -2=
Calcolo di Tp = Tcom + Tcalc≈
p = 2
il tempo necessario per sommare2 numeri è dominato dal tempo di latenza
tlat
10
19
Quindi ….Tp= Tcom + Tcalc =
= ( tlat + m x tword ) + Nop x tcalc
poichè tlat >> t word e tword >> tcalc
Il tempo di latenza può influenzare in maniera significativa il tempo di
esecuzione dell’algoritmo
20
ESEMPIO 2
calcolo della somma di N numeri
distribuiti su risorse di calcolosituate in due siti geograficamente distribuiti
11
21
Sito 2Sito 1
Rete geogr.: lat. = 0.3 sec
LAN: lat. = 0.01 secLAN: lat. = 0.01 sec
Caratteristiche dell’ambiente di calcolo
22
Sito 2Sito 1
Rete geogr.: lat. = 0.3 sec
LAN: lat. = 0.01 secLAN: lat. = 0.01 sec
Caratteristiche dell’ambiente di calcolo
2a1a
I dati sono già distribuiti
12
23
Problema
ridurre “al minimo possibile”le comunicazioni sulla rete con
tempo di latenza più alto
Ovvero
Ridurre le comunicazioni tra un sito e l’altro
(intra – sito)
24
Una soluzione..Riorganizzare il calcolo
in modo da effettuare solo 1comunicazione sulla rete intra – sito
Rete geogr.: lat. = 0.3 sec
IDEA
Sito 1 Sito 2
rete intra – sito
13
25
I passo: 4 comunicazioni inter-sito
Calcolo somma parziale S1 nel Sito 1
Sito 1Sito 2
4a 5a3a2a
Rete geogr.: lat. = 0.3 sec
1a
26
I passo: 4 comunicazioni inter-sito
Calcolo somma parziale S1 nel Sito 1
511 ... aas ++=Sito 1
Sito 2
Rete geogr.: lat. = 0.3 sec
14
27
I passo: 2 comunicazioni inter-sito
Calcolo somma parziale S2 nel Sito 2
Sito 1 Sito 2
1s 8a6a
Rete geogr.: lat. = 0.3 sec
511 ... aas ++=
7a
28
I passo: 2 comunicazioni inter-sito
Calcolo somma parziale S2 nel Sito 2
862 ... aas ++=Sito 1 Sito 2
Rete geogr.: lat. = 0.3 sec
511 ... aas ++=
15
29
II passo
Sito 1 Sito 2
calcolo 21 ssS +=
1 comunicazione intra-sito
2s
Rete geogr.: lat. = 0.3 sec
21 ssS +=
2s
30
II passo
Sito 1 Sito 2
calcolo21 ssS +=
1 comunicazione intra-sito
Rete geogr.: lat. = 0.3 sec
S
16
31
III passo: 6 comunicazioni inter-sito
Sito 1 Sito 2
SS S
Spedire S agli altri nodi del sito
S S S S S
Rete geogr.: lat. = 0.3 sec
32
Quindi:
• I passo:– 6 comunicazioni inter-sito 1
• II passo:
- 1 comunicazione intra-sito
• III passo:
- 6 comunicazione inter-sito
17
33
ESEMPIO 3
calcolo della somma di N numeri
distribuiti su risorse di calcolosituate in due siti geograficamente distribuiti
dove in uno dei due sitic’è un cluster a rete locale veloce
34
Sito 2Sito 1
Caratteristiche risorse di calcolo:nel sito 1 c’è un cluster a rete locale veloce
Switch: lat. = 0.001 sec
LAN: lat. = 0.01 sec
Rete geogr.: lat. = 0.3 sec
LAN: lat. = 0.01 sec
ESEMPIO 3:
18
35
I dati sono già distribuiti
1a
4a
6a
5a3a2a
8a7aSwitch: lat. = 0.001 sec
LAN: lat. = 0.01 sec
Rete geogr.: lat. = 0.3 sec
LAN: lat. = 0.01 sec
Sito 1Sito 2
36
PROBLEMA
4 nodi beowulf
Switch: lat. = 0.001 sec
LAN: lat. = 0.01 sec
PC
Sito 1
Nel Sito 1 ci sono 2 reti di comunicazione
cercare di usare il meno possibile
la rete di comunicazione più lenta
19
37
Idea
fare il “massimo possibile” di comunicazioni sulla rete contempo di latenza più basso
…in che modo?
38
Una Soluzione
Calcolare prima52
)(1 ... aas b ++=
)(b4 nodi beowulf
Switch: lat. = 0.001 sec
LAN: lat. = 0.01 sec
PC
Sito 1)(b )(b )(b
Successivamente)(b
(2= log (p) comunicazioni)
(1 comunicazione)
20
39
In GENERALE
Latenza elevata
Latenza bassa
Livello 1
Livello 2
Livello 3
Ogni livello individua un tipo di rete in base al tempo di latenza
Switch
LAN
Rete geogr.
LAN
40
Idea
sfruttare quanto più è possibile i livelli più bassi perché relativi
alle reti veloci
Procedere nel calcolo dal basso verso l’alto
calcolo
21
41
successivamente
Distribuire i risultati procedendo dall’alto verso il basso
distribuzione risultatiparziali
algoritmo topology-aware
42
In generale: calcolo della somma
25
49
Distribuzione al livello 2
S S
S= s1+s2+s3
50
Distribuzione al livello 3
S S S S
S
S= s1+s2+s3
26
51
osservazione
Lo schema dell’algoritmo della somma nella formulazione standard
presuppone un ambiente di calcolo omogeneo
(soprattutto rispetto al tempo di comunicazione)perché gestisce uniformemente le comunicazioni
tra processori(albero binario)
52
Aspetti algoritmici
27
53
Struttura del livello 1: cid(livello)= risorsa
Ad ogni livello le reti connettono 2 o piu’ risorse
Switch
LAN LAN
cid(1)=0
cid(1)=1
54
Struttura del livello 2
Switchcid(2)=0
cid(2)=1
cid(2)=0cid(2)=1cid(2)=2
Ogni risorsa e’ suddivisa in 2 o piu’ sottorisorse ….
cid(1)=0
28
55
Struttura del livello 3
cid(3)=0cid(3)=1cid(3)=2cid(3)=3
… fino al livello piu’ basso
56
problema
Come identificare i processi delle varie
risorse?
29
57
Identificativo dei processi delle risorse al livello 1
In ogni cluster i processi hanno un differente identificativo (pid)
0
1 2 3 4
0 1 2
58
Identificativo dei processi nei cluster al livello 2
0
0 1 2 3
0 0 0
Il pid cambia da ogni livello
30
59
Identificativo dei processi nei cluster al livello 3
0 0 0 0
Ai livelli piu’ bassi i processi hanno pid =0
60
Riassumendo….
Livello 1
Livello 2
Livello 3
cid(1)=0 cid(1)=1
cid(2)=0 cid(2)=1
Ogni processo e’ cosi’ identificato da una profondità (prof) e da un identificativo di cluster (cid) ad ogni livello
prof=2cid(1)=1cid(2)=2
prof=2cid(1)=0cid(2)=0
prof=3cid(1)=0cid(2)=1cid(3)=3
cid(2)=0 cid(2)=1 cid(2)=2
cid(3)=0 cid(3)=1cid(3)=2 cid(3)=3
31
61
Inoltre …
Livello 1
Livello 2
Livello 3
Ogni processo e’ identificato da un identificativo di processo (pid) ad ogni livello
prof=2pid(1)=0pid(2)=0 prof=3
pid(1)=4pid(2)=3pid(3)=0
prof=2pid(1)=2pid(2)=0
62
Somma al livello 3
cid(1)=0cid(2)=1cid(3)=0pid(1)=1pid(2)=0pid(3)=0
cid(1)=0cid(2)=1cid(3)=1pid(1)=2pid(2)=1pid(3)=0
cid(1)=0cid(2)=1cid(3)=2pid(1)=3pid(2)=2pid(3)=0
cid(1)=0cid(2)=1cid(3)=3pid(1)=4pid(2)=3pid(3)=0
stesso cid(2)e pid(3)=0 !!!!
32
63
Somma al livello 2
cid(1)=0cid(2)=1cid(3)=0pid(1)=1pid(2)=0pid(3)=0
cid(1)=0cid(2)=0pid(1)=0pid(2)=0
cid(1)=1cid(2)=0pid(1)=0pid(2)=0
cid(1)=1cid(2)=1pid(1)=1pid(2)=0
cid(1)=1cid(2)=2pid(1)=2pid(2)=0
stesso cid(1)e pid(2)=0 !!!!
64
Somma al livello 1
cid(1)=1cid(2)=0pid(1)=0pid(2)=0
cid(1)=0cid(2)=0pid(1)=0pid(2)=0
stesso cid(0)e pid(1)=0 !!!! …(ponendo cid(0)=0 a tutti i processi)
33
65
Distribuzione al livello 2
cid(1)=0cid(2)=1cid(3)=0pid(1)=1pid(2)=0pid(3)=0
cid(1)=0cid(2)=0pid(1)=0pid(2)=0
cid(1)=1cid(2)=0pid(1)=0pid(2)=0
cid(1)=1cid(2)=1pid(1)=1pid(2)=0
cid(1)=1cid(2)=2pid(1)=2pid(2)=0
stesso cid(1) e pid(2) =0 !!!!
S S
66
Distribuzione al livello 3
cid(1)=0cid(2)=1cid(3)=0pid(1)=1pid(2)=0pid(3)=0
cid(1)=0cid(2)=1cid(3)=1pid(1)=2pid(2)=1pid(3)=0
cid(1)=0cid(2)=1cid(3)=2pid(1)=3pid(2)=2pid(3)=0
cid(1)=0cid(2)=1cid(3)=3pid(1)=4pid(2)=3pid(3)=0
stesso cid(2) e pid(3) =0 !!!!
S S S S
S