• Non ci sono risultati.

Prof. Almerico Murli. Corso di Calcolo Parallelo e Distribuito II. a.a Progettare un algoritmo per il calcolo della somma di N numeri :

N/A
N/A
Protected

Academic year: 2022

Condividi "Prof. Almerico Murli. Corso di Calcolo Parallelo e Distribuito II. a.a Progettare un algoritmo per il calcolo della somma di N numeri :"

Copied!
34
0
0

Testo completo

(1)

1

Prof. Almerico Murli

Corso di Calcolo Parallelo e Distribuito II a.a. 2005-2006

Problema

in ambiente di calcolo distribuito

a

n

a a

S =

1

+

2

+ ... +

Progettare un algoritmo per il calcolo della somma di N numeri :

(2)

3

Quali sono le caratteristiche dell’ambiente di calcolo

?

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

Caratteristiche dell’ambiente

P 1 P 2

potenza di calcolo : 4 GFLOPs

(4)

7

Caratteristiche dell’ambiente

rete LAN : Bandwidth=100 Mbit/sec

latenza= 0.01sec

P 1 P 2

I dati sono già distribuiti

P 1 P 2

a

2

a

1

(5)

9

I dati sono già distribuiti

P 1 P 2

a

2

a

1

Come sommare

a

1 e

a

2

?

? +

Algoritmo

I passo: comunicazione

P 1 P 2

a

2

a

1

a

1

(6)

11

Algoritmo

I passo: comunicazione

P 1 P 2

a

2

a

1

a

2

Algoritmo

II passo: calcolo

P 1 P 2

a

2

a

1

a

2

+ + a

1

(7)

13

Quanto tempo impiega l’algoritmo ( T

p

)?

I passo: comunicazione Æ T

com

II passo: calcolo Æ T

calc

T

com

= t

lat

+ m t

word

T

calc

= N

op

t

calc

Quanto tempo T

p

impiega l’algoritmo?

T

p

= T

com

+ T

calc

Risposta

Poiché T

com

>> T

calc

Il tempo di esecuzione dell’algoritmo è dello stesso ordine di grandezza

di T

com

OSSERVAZIONE

(8)

15

1 word=32 bit

I passo: calcoliamo T

com

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 T

p

= T

com

+ T

calc

1 word=32 bit

I passo: calcoliamo T

com

Tcom = t lat + m x t word =

Calcolo di T

p

= T

com

+ T

calc

Tcom = t lat + m x t word = sec6

(9)

17

II passo: calcoliamo T

calc

Ogni processore effettua 4 x 10 9 flops

) 10 4 /(

1 × 9

t calc= sec

Tcalc = N op x tcalc= 0.25 x 10 -9 sec

Calcolo di T

p

= T

com

+ T

calc

Tcalc= Nop tcalc

1 somma

T

2

= T

com

+ T

calc

=

9 6

2

0 . 32 10 0 . 25 10

10

+ ×

+ ×

sec ≈ 10 -2

=

Calcolo di T

p

= T

com

+ T

calc

p = 2

il tempo necessario per sommare 2 numeri è dominato dal tempo di latenza

tlat

(10)

19

Quindi ….

T

p

= T

com

+ T

calc

=

= ( t

lat

+ m x t

word

) + N

op

x t

calc

poichè

t

lat

>> t

word e

t

word

>> t

calc

Il tempo di latenza può influenzare in maniera significativa il tempo di

esecuzione dell’algoritmo

ESEMPIO 2

calcolo della somma di N numeri

distribuiti su risorse di calcolo

situate in due siti geograficamente distribuiti

(11)

21

Sito 2 Sito 1

Rete geogr.: lat. = 0.3 sec

LAN: lat. = 0.01 sec LAN: lat. = 0.01 sec

Caratteristiche dell’ambiente di calcolo

Sito 2 Sito 1

Rete geogr.: lat. = 0.3 sec

LAN: lat. = 0.01 sec LAN: lat. = 0.01 sec

Caratteristiche dell’ambiente di calcolo

a2

a1

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)

Una soluzione..

Riorganizzare il calcolo in modo da effettuare solo 1 comunicazione 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 S1nel Sito 1

Sito 1 Sito 2

a4 a5 a3

a2

Rete geogr.: lat. = 0.3 sec

a1

I passo: 4 comunicazioni inter-sito

Calcolo somma parziale S1nel Sito 1

Sito 1 Sito 2

Rete geogr.: lat. = 0.3 sec

(14)

27

I passo: 2 comunicazioni inter-sito

Calcolo somma parziale S2nel Sito 2

Sito 1 Sito 2

s1 a6 a8

Rete geogr.: lat. = 0.3 sec

5 1

1

a ... a s = + +

a7

I passo: 2 comunicazioni inter-sito

Calcolo somma parziale S2nel Sito 2

... a a

s = + +

Sito 1 Sito 2

Rete geogr.: lat. = 0.3 sec

(15)

29

II passo

Sito 1 Sito 2

calcolo S = s1+s2

1 comunicazione intra-sito

s2

Rete geogr.: lat. = 0.3 sec

2

1 s

s S = +

s2

II passo

Sito 1 Sito 2

calcolo

2

1 s

s S = +

1 comunicazione intra-sito

Rete geogr.: lat. = 0.3 sec

(16)

31

III passo: 6 comunicazioni inter-sito

Sito 1 Sito 2

S

S S

Spedire Sagli altri nodi del sito

S S S S S

Rete geogr.: lat. = 0.3 sec

Quindi:

• I passo:

– 6 comunicazioni inter-sito 1

• II passo:

- 1 comunicazione intra-sito

• III passo:

(17)

33

ESEMPIO 3

calcolo della somma di N numeri

distribuiti su risorse di calcolo

situate in due siti geograficamente distribuiti dove in uno dei due siti

c’è un cluster a rete locale veloce

Sito 2 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

a1

a4

a6

a5

a3

a2

a8

a7 Switch: lat. = 0.001 sec

LAN: lat. = 0.01 sec

Rete geogr.: lat. = 0.3 sec

LAN: lat. = 0.01 sec

Sito 1

Sito 2

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

(19)

37

Idea

fare il “massimo possibile” di comunicazioni sulla rete con

tempo di latenza più basso

…in che modo?

Una Soluzione

Calcolare prima

5 2

) (

1 a ... a sb = + +

)

(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

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 risultati

parziali

algoritmo topology-aware

In generale: calcolo della somma

(22)

43

I passo: Somma locale nel livello 3

Cioè….

s1 s1 s1 s1 s2

(23)

45

Somma con il livello 2

Cioè…

s1+s2

s1+s2 s3 s3 s3

(24)

47

Somma al livello 1

Cioè….

s1+s2+s3 s1+s2+s3

(25)

49

Distribuzione al livello 2

S S

S= s1+s2+s3

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

)

Aspetti algoritmici

(27)

53

Struttura del livello 1: cid(livello)= risorsa

Ad ogni livellole reti connettono 2 o piu’ risorse

Switch

LAN LAN

cid(1)=0

cid(1)=1

Struttura del livello 2

Switch cid(2)=0

cid(2)=1

cid(2)=0cid

(2)=1 cid (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

problema

Come identificare i processi delle varie

risorse?

(29)

57

Identificativo dei processi delle risorse al livello 1

In ogni clusteri processi hanno un differente identificativo (pid) 0

1 2 3 4

0 1 2

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

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=2 cid(1)=1 prof=2

cid(1)=0 cid(2)=0

prof=3 cid(1)=0

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=2 pid(1)=0

pid(2)=0 prof=3

pid(1)=4 pid(2)=3 pid(3)=0

prof=2 pid(1)=2 pid(2)=0

Somma al livello 3

cid(1)=0 cid(2)=1 cid(3)=0 pid(1)=1

cid(1)=0 cid(2)=1 cid(3)=1 pid(1)=2

cid(1)=0 cid(2)=1 cid(3)=2 pid(1)=3

cid(1)=0 cid(2)=1 cid(3)=3 pid(1)=4

stesso cid(2) e pid(3)=0 !!!!

(32)

63

Somma al livello 2

cid(1)=0 cid(2)=1 cid(3)=0 pid(1)=1 pid(2)=0 pid(3)=0 cid(1)=0

cid(2)=0 pid(1)=0 pid(2)=0

cid(1)=1 cid(2)=0 pid(1)=0 pid(2)=0

cid(1)=1 cid(2)=1 pid(1)=1 pid(2)=0

cid(1)=1 cid(2)=2 pid(1)=2 pid(2)=0

stesso cid(1) e pid(2)=0 !!!!

Somma al livello 1

cid(1)=1 cid(2)=0 pid(1)=0 pid(2)=0 cid(1)=0

cid(2)=0 pid(1)=0 pid(2)=0

stesso cid(0) e pid(1)=0 !!!! …

(33)

65

Distribuzione al livello 2

cid(1)=0 cid(2)=1 cid(3)=0 pid(1)=1 pid(2)=0 pid(3)=0 cid(1)=0

cid(2)=0 pid(1)=0 pid(2)=0

cid(1)=1 cid(2)=0 pid(1)=0 pid(2)=0

cid(1)=1 cid(2)=1 pid(1)=1 pid(2)=0

cid(1)=1 cid(2)=2 pid(1)=2 pid(2)=0

stesso cid(1) e pid(2) =0 !!!!

S S

Distribuzione al livello 3

cid(1)=0 cid(2)=1 cid(3)=0 pid(1)=1

cid(1)=0 cid(2)=1 cid(3)=1 pid(1)=2

cid(1)=0 cid(2)=1 cid(3)=2 pid(1)=3

cid(1)=0 cid(2)=1 cid(3)=3 pid(1)=4

stesso cid(2) e pid(3) =0 !!!!

S S S S

S

(34)

67

FINE LEZIONE

Riferimenti

Documenti correlati

SISD: Single Instruction Stream - Single Data Stream SIMD: Single Instruction Stream - Multiple Data Stream MISD: Multiple Instruction Stream - Single Data Stream MIMD:

• Il movimento dei dati e’ molto piu’ costoso delle operazioni aritmetiche. • Riduzione della comunicazione all’interno di un singolo sistema – Registri CPU ↔ L1 ↔ L2 ↔

• Ogni processo deve essere conoscere quanti sono i processi in

– Preleva dalla memoria l'istruzione da eseguire; l'istruzione viene prelevato dall'indirizzo di memoria che si trova in PC; il contenuto di tale cella di memoria viene posto in IR.

Il passo suddetto viene eseguito k volte, dove k è il numero dei blocchi di n cifre binarie di x: essendo r il numero totale di cifre binarie di x, si ha k≤(r/n)+1, dunque k ha

• Del pari di questo periodo è il metodo della variazione delle costanti arbitrarie (ripreso poi da Cauchy) per determinare un integrale particolare di un’equazione

MPI_Cart_rank: sulla base della topologia definita all’interno del comunicatore, ritorna il rank del processo con un fissato set di coordinate cartesiane.. [IN] nnodes: numero

count è di tipo int e contiene il numero di elementi del send buffer dtype è di tipo MPI_Datatype e descrive il tipo di ogni elemento del send buffer. dest è di tipo int e contiene