34
1 1 Prof. Almerico Murli Corso di Calcolo Parallelo e Distribuito II a.a. 2005-2006 2 Problema in ambiente di calcolo distribuito n a a a S + + + = ... 2 1 Progettare un algoritmo per il calcolo della somma di N numeri :

amurli/didattica/2005_2006/nav_cp2/somma_CP2.pdf1 1 Prof. Almerico Murli Corso di Calcolo Parallelo e Distribuito II a.a. 2005-2006 2 Problema in ambiente di calcolo distribuito S

  • 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

22

43

I passo: Somma locale nel livello 3

44

Cioè….

s1 s1 s1 s1

s2

23

45

Somma con il livello 2

46

Cioè…

s1+s2

s1+s2 s3 s3 s3

24

47

Somma al livello 1

48

Cioè….

s1+s2+s3s1+s2+s3

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

34

67

FINE LEZIONE