• Non ci sono risultati.

Crescita del numero di processori

N/A
N/A
Protected

Academic year: 2021

Condividi "Crescita del numero di processori"

Copied!
17
0
0

Testo completo

(1)

Marco Lapegna – Calcolo Parallelo e Distribuito II

1

Gli algoritmi Fault Tolerant

Marco Lapegna – Calcolo Parallelo e Distribuito II

2

Performance Singola CPU

Frequenza CPU Performance complessiva dei sistemi

0.0010 0.00100.0010 0.0010 0.0100 0.01000.0100 0.0100 0.1000 0.10000.1000 0.1000 1.0000 1.00001.0000 1.0000 10.0000 10.000010.0000 10.0000 100.0000 100.0000 100.0000 100.0000 1000.0000 1000.0000 1000.0000 1000.0000 10000.0000 10000.0000 10000.0000 10000.0000 100000.0000 100000.0000 100000.0000 100000.0000 1000000.0000 1000000.0000 1000000.0000 1000000.0000

1980 1980 1980

1980 1985198519851985 1990199019901990 1995199519951995 2000200020002000 2005200520052005 2010201020102010 YearYear YearYear FLOPSFLOPSFLOPSFLOPS

100M100M 100M100M 1G1G 1G1G 10G10G 10G10G 100G100G 100G100G 10T 10T 10T 10T 100T 100T 100T 100T 1P1P 1P1P

10M 10M 10M 10M 1T 1T 1T 1T

100MHz 100MHz 100MHz 100MHz 1GHz 1GHz 1GHz 1GHz 10GHz 10GHz 10GHz 10GHz

10MHz 10MHz 10MHz 10MHz XXX

X---- MPMPMPMP VPVPVPVP---- 200200200200 S S S S---- 810/20810/20810/20810/20

S SS S---- 820/80820/80820/80820/80 VPVP VPVP---- 400400400400 SX SX SX

SX---- 2222 CRAYCRAYCRAYCRAY---- 2222 YYYY---- MP8MP8MP8MP8 VP2600/1 VP2600/1 VP2600/1 VP2600/1 0 00 0 SX SX SX SX---- 3333

C90C90C90 C90 SX SX SX SX---- 3R3R3R3R

S S S S---- 3800380038003800 SR2201SR2201SR2201SR2201

SR2201/2K SR2201/2K SR2201/2K SR2201/2K CMCMCM

CM---- 5555 Paragon Paragon Paragon Paragon

T3D T3DT3D T3D

T90 T90T90 T90 T3ET3E T3ET3E NWT/166 NWT/166 NWT/166 NWT/166 VPP500VPP500VPP500VPP500

SXSX SXSX---- 4444 ASCI Red ASCI Red ASCI Red ASCI Red VPP700VPP700VPP700VPP700

SXSX SXSX---- 5555

SR8000 SR8000SR8000 SR8000

SR8000G1 SR8000G1SR8000G1 SR8000G1 SX SXSX SX---- 6666 ASCI Blue ASCI Blue ASCI Blue ASCI Blue ASCI Blue Mountain ASCI Blue Mountain ASCI Blue Mountain ASCI Blue Mountain VPP800

VPP800 VPP800 VPP800

VPP5000 VPP5000 VPP5000 VPP5000 ASCI White ASCI WhiteASCI White ASCI White ASCI QASCI QASCI QASCI Q

Earth Simulator Earth Simulator Earth Simulator Earth Simulator

1M 1M1M 1M

Crescita del numero di processori

Crescita del parallelismo nella Top500

Fonte: J.Dongarra

Crescita del numero di processori

Anni 80: un sistema con

64processori  sistema di grandidimensioni Anni 90: un sistema con

64 processori  sistema di medie dimensioni 1024processori  sistema di grandidimensioni Anni 2000: un sistema con

64 processori  sistema di piccole dimensioni 1024 processori  sistema di medie dimensioni 32000processori  sistema di grandidimensioni

In costruzione sistemi con 100000 processori

IBM Blue Gene

Totale =131872 processori

(2004: 32768 procs)

Node card Node Chip

Rack

2 procs

2 chips = 4 procs 16 node = 64 procs

32 node cards = 2048 procs 64 racks = 131872 procs

(2)

Marco Lapegna – Calcolo Parallelo e Distribuito II

5

MTTF (mean time to failure)

Tempo medio per un guasto: e’ il tempo (medio) di funzionamento di un processore

• E’ una misura dell’affidabilita’ delle componenti hardware

• Un valore comune per il MTTF e’: ~ 10

5

ore per processore

(circa 11 anni)

Ogni quanto tempo si guastera’

un processore dell’ IBM Blue gene?

Marco Lapegna – Calcolo Parallelo e Distribuito II

6

Guasto dell’IBM Blue Gene

IBM Blue Gene = 131872 processori MTTF per uno dei 131872 processori

=

10

5

/ 131872 = 0.75 ore = 45 min. !!

Ci si deve aspettare che (mediamente) ogni 45 minuti potrebbe rendersi indisponibile

1 processore dell’ IBM Blue Gene

Marco Lapegna – Calcolo Parallelo e Distribuito II

7

La fault tolerancee

Esigenze

• Crescita del numero di processori

• Molte applicazioni sono sviluppate per esecuzioni lunghe giorni Opportunita’

• in ambienti distribuiti le risorse sono indipendenti. Se una diventa non disponibile, le altre non ne risentono

Le applicazioni distribuite possono (e devono) essere tolleranti ai guasti (fault tolerant)

Marco Lapegna – Calcolo Parallelo e Distribuito II

8

Algoritmi fault tolerant

Un algoritmo e’ detto Fault Tolerant

Se e’ in grado di continuare correttamente

l’esecuzione anche se uno dei nodi si rende

indiponibile

(3)

Marco Lapegna – Calcolo Parallelo e Distribuito II

9

esempio

• matrice N x M

• p=4 processi

• matrice distribuita per colonne

• calcolare

ij 1 M

0 1 j N , 0 i

a max ∑ ∑ ∑ ∑ −−−−

−−−− ====

====

N

M

P

0

P

1

P

2

P

3

Massimo sulle righe

Somma sulle colonne

Marco Lapegna – Calcolo Parallelo e Distribuito II

10

Possibile algoritmo parallelo

P = numero di processi Myid = mio identificativo

jstart= Myid*M/P jend= (Myid+1)*M/P -1

max= 0 for i = 0, N-1 do

sumloc = 0 for j = jstart, jend

sumloc = sumloc + |a(i,j)|

endfor

globalsum (sumloc, sumglob )

if (sumglob > max) then max = sumglob endif

endfor

Il ciclo parte sempre da 0 Somma sulle colonne locali ad ogni proc

Somma sui processi Massimo sulle righe

problema

Se uno dei processi cade

Il valore di sumloc per quel processo non e’ disponibile  impossibile calcolare sumglob

Inoltre l’algoritmo non puo’ continuare e tutto il lavoro eseguito fino a quel punto non e’ piu’ recuperabile

Bisogna ricominciare daccapo

soluzione

Il contenuto delle memorie di massa persiste al guasto dei processi

• Salvare periodicamente sul disco lo stato del calcolo (checkpoint)

• In caso di guasto, far ripartire l’applicazione dall’ultimo checkpoint (ripristino)

• Sostituire il processo caduto oppure

• Continuare con un processo in meno

Fault tolerance a livello dell’algoritmo

(4)

Marco Lapegna – Calcolo Parallelo e Distribuito II

13

Fault tolerance = checkpoint + ripristino

QUANDO: ad esempio ogni 10 righe COSA:

• il valore del massimo (la variabile max)

• la riga a cui si e’ arrivati (la variabile i)

QUANDO e COSA salvare sul disco?

In caso di errore, il calcolo puo’ riprendere dall’ultimo checkpoint

Marco Lapegna – Calcolo Parallelo e Distribuito II

14

Esempio: ripristino con sostituzione

P = numero di processi;

Myid = mio identificativo i = 0; max = 0;

if (restart == true) then

restoredata (isaved, maxsaved) i = isaved; max = maxsaved;

endif

jstart = Myid*M/P jend = (Myid+1)*M/P -1

Ripristino dopo una failure:

Ogni proc legge i dati salvati in un checkpoint precedente

Cont….

NB: La prima volta si esegue con restart = false

Marco Lapegna – Calcolo Parallelo e Distribuito II

15

Esempio: (cont.)

while ( i <= N-1 ) do

sumloc = 0 for j = jstart, jend

sumloc = sumloc + |a(i,j)|

endfor

k = numero di proc indisponibili if ( k != 0) then

procedura di ripristino endif

globalsum (sumloc, sumglob ) if (sumglob > max ) then

max = sumglob endif

if (i/10*10 == i) savedata(i, max)

i=i+1 endwhile

Fase di checkpoint Fase di ripristino Il ciclo non parte sempre da 0

Vedi dopo

Marco Lapegna – Calcolo Parallelo e Distribuito II

16

Procedura di ripristino

scegli tra i sopravvissuti un ‘master’ (ad es. quello con Myid minimo)

if (Myid == master){

Manda in esecuzione K nuovi processicon restart = TRUE }

Restoredata (isaved, maxsaved) i = isaved

max = maxsaved

sumloc = 0 for j = jstart, jend

sumloc = sumloc + |a(i,j)|

endfor Anche i proc

sopravvissuti ripristinano lo stato dell’ultimo checkpoint

Sostituzione processi non piu’ disponibili

(5)

Marco Lapegna – Calcolo Parallelo e Distribuito II

17

Quindi

La gestione della fault tolerance coinvolge 2 fasi specifiche

• checkpoint periodico

• ripristino in caso di risorse di calcolo non piu’

disponibili

Marco Lapegna – Calcolo Parallelo e Distribuito II

18

osservazione

Individuazione di risorse non piu’ disponibili

Ruolo dell’

ambiente software Risorse hw

Ambiente sw applicazione

L’ambiente software

Risorse hw Ambiente sw

applicazione

L’ambiente software media tra le risorse hw e l’applicazione

comandi tipo:

• determina il numero di processi sopravvissuti…

• Manda in esecuzione nuovi processi …

dipendono dall’ambiente di calcolo utilizzato

Ambienti sw Fault Tolerance

Un ambiente sw e’ detto Fault Tolerant

Se e’ in grado di comunicare all’applicazione

un cambiamento dello stato delle risorse e

gestire la dinamicita’ delle stesse

(6)

Marco Lapegna – Calcolo Parallelo e Distribuito II

21

Quindi…

FAULT TOLERANCE

Individuazione dello stato delle risorse

A carico dell’

ambiente sw

Checkpoint e ripristino dei dati

A carico dell’

applicazione

Marco Lapegna – Calcolo Parallelo e Distribuito II

22

Ambienti sw Fault Tolerant

Non tutti gli ambienti sw sono fault tolerant (ad esempio lo standard MPI non lo e’ !!)

Implementazioni (non standard) di MPI per renderlo FT

• FT-MPI

(icl.cs.utk.edu/ftmpi)

• MPIFT

• MPICH-V

Non ancora

disponibili

Ambienti sw fault tolerant:

• PVM

Marco Lapegna – Calcolo Parallelo e Distribuito II

23

Osservazione:

Nell’esempio mostrato, ogni proc effettua il checkpoint solo sul proprio disco

Ma cio’ non e’ sempre possibile.

(se il processore non ha il disco, o non si hanno i permessi di scrittura)

Ne’ sempre opportuno

(se il processore diventa indisponibile, anche il disco lo diventa)

E’ necesario un altro disco per il checkpoint di tutti i processi

Marco Lapegna – Calcolo Parallelo e Distribuito II

24

problema

Il tempo di accesso alle memorie di massa e’

dell’ordine di 10

-3

sec.

Tale tempo va moltiplicato per il numero di dati da salvare/recuperare

Tale tempo va inoltre moltiplicato per il numero di

processi che deve effettuare il checkpoint/restart

In un sistema con 10

5

processori tale fase potrebbe

durare ore!!

(7)

Marco Lapegna – Calcolo Parallelo e Distribuito II

25

Diskless checkpoint

Utilizzare processi in piu’ rispetto a quelli utilizzati per il calcolo,

per effettuare le fasi di checkpoint/ripristino IDEA

Una automobile ha una ruota in piu’ da utilizzare nel caso se ne buchi una

(resource redundancy)

Marco Lapegna – Calcolo Parallelo e Distribuito II

26

Esempio 1: mirroring - checkpoint

P0 P1 P2 P3

M0 M1 M2 M3

P4 P5 P6 P7

M4 M5 M6 M7

Ogni processo ha un proprio processo per il checkpoint Ogni processo effettua il checkpoint oltre che nella propria memoria, anche in quella del processo di checkpoint

Esempio 1: mirroring - ripristino

P0 P1 P2 P3

M0 M1 M2 M3

P4 P5 P6 P7

M4 M5 M6 M7

Se il processo P0 cade, i dati possono essere recuperati dalla memoria M1 e l’applicazione puo’

ripartire dall’ultimo checkpoint Il processo di checkpoint P1 sostituisce “naturalmente” P0

Esempio 1: mirroring

Per ogni processo dedicato al calcolo, esiste un processo dedicato al checkpoint

Detto n il numero complessivo di proc, possono essere tollerati fino a n/2 guasti

(a patto che non si guastino contemporaneamente i due processi della coppia)

VANTAGGIO: processi gia’ pronti per la sostituzione

SVANTAGGIO: solo n/2 proc sono dedicati al

calcolo

(8)

Marco Lapegna – Calcolo Parallelo e Distribuito II

29

Esempio 2: ring neighbor - checkpoint

P0 P1 P2 P3

M0 M1 M2 M3

P4 P5 P6 P7

M4 M5 M6 M7

Tutti i processi sono dedicati al calcolo e organizzati

“ad anello”

Ogni processo effettua il checkpoint oltre che nella propria memoria, anche in quella del processo vicino

Marco Lapegna – Calcolo Parallelo e Distribuito II

30

Esempio 2: ring neighbor - ripristino

Se il processo P0 cade, i dati possono essere recuperati dalla memoria M1 e l’applicazione puo’

ripartire dall’ultimo checkpoint P1 si fa carico del lavoro di P0 (oppure si fa partire un nuovo processo)

P0 P1 P2 P3

M0 M1 M2 M3

P4 P5 P6 P7

M4 M5 M6 M7

Marco Lapegna – Calcolo Parallelo e Distribuito II

31

Esempio 2: ring neighbor

Tutti i processi sono dedicati al calcolo

Detto n il numero complessivo di proc, possono essere tollerati fino a n/2 guasti

(a patto che non si guastino contemporaneamente due proc vicini)

VANTAGGIO: non ci sono risorse inutilizzate SVANTAGGIO: sovraccarico di alcuni processi o necessita’ di nuovi processi in caso di

ripristino dei dati

Marco Lapegna – Calcolo Parallelo e Distribuito II

32

Esempio 3: pair neighbor - checkpoint

P0 P1 P2 P3

M0 M1 M2 M3

P4 P5 P6 P7

M4 M5 M6 M7

Tutti i processi sono dedicati al calcolo e organizzati “a coppie”

Ogni processo effettua il checkpoint oltre che nella

propria memoria, anche in quella del processore della

stessa coppia

(9)

Marco Lapegna – Calcolo Parallelo e Distribuito II

33

Esempio 3: pair neighbor - ripristino

P0 P1 P2 P3

M0 M1 M2 M3

P4 P5 P6 P7

M4 M5 M6 M7

Se il processo P0 cade, i dati possono essere recuperati dalla memoria M1 e l’applicazione puo’

ripartire dall’ultimo checkpoint P1 si fa carico del lavoro di P0 (oppure si fa partire un nuovo processo)

Marco Lapegna – Calcolo Parallelo e Distribuito II

34

Esempio 3: pair neighbor

Tutti i processi sono dedicati al calcolo

Detto n il numero complessivo di proc, possono essere tollerati fino a n/2 guasti

(a patto che non si guastino contemporaneamente due proc della stessa coppia)

VANTAGGIO: non ci sono risorse inutilizzate e probabilita’ inferiore rispetto al ring neighbor di un blocco dell’applicazione

(es. guasto dei processi P1 e P2)

SVANTAGGIO: sovraccarico di alcuni processi o necessita’ di nuovi processi

Neighbor based checkpoint

1. Ogni proc effettua il checkpoint nella propria memoria e in quella di un suo processo vicino 2. Se un nodo fallisce, i dati possono essere

recuperati da tale processo 3. Assenza di operazioni globali per il

checkpoint/recupero  basso overhead I tre schemi descritti appartengono alla classe dei neighbor based checkpoint

Problema

Gli schemi neighbor-based per il checkpoint conservano lo stato di tutti i processi

Se i dati sono tanti e i processi numerosi, tali schemi possono richiedere molti Tbytes di

memoria solo per il checkpoint

Necessita’ di schemi alternativi

(10)

Marco Lapegna – Calcolo Parallelo e Distribuito II

37

Idea

“compattare” i dati dei checkpoint di tutti i processi in un solo dato da conservare in un

solo processo per il checkpoint

Esempio: 4 processi di calcolo e 1 per il checkpoint Si vuole effettuare il checkpoint dei seguenti

dati nei 4 processi

P0 12

P1 15

P2 10

P3 13

Marco Lapegna – Calcolo Parallelo e Distribuito II

38

Esempio 1: codifica di base - checkpoint

P0 12

P1 15

P2 10

P3 13

P4 50

Proc di checkpoint

Nella memoria del processore di checkpoint viene conservata la somma dei

dati di cui si vuole il checkpoint

+

Marco Lapegna – Calcolo Parallelo e Distribuito II

39

Esempio 1: codifica di base - ripristino

P0 12

P1 15

P2 10

P3 13

P4 50

Proc di checkpoint

Come recuperare il dato di P0?

Equazione in una incognita

50 13 10 15 0

X + + + =

Se un processo cade

Marco Lapegna – Calcolo Parallelo e Distribuito II

40

Esempio 1: codifica di base - ripristino

P0 12

P1 15

P2 10

P3 13

P4 12

Proc di checkpoint

-

12 ) 13 10 15 ( 50 0

X = − + + =

Il calcolo puo’ continuare con i

processi P1, P2, P3 e P4

(11)

Marco Lapegna – Calcolo Parallelo e Distribuito II

41

Esempio 1: codifica di base

Presenza di 1 processore di checkpoint in cui compattare i dati di checkpoint di tutti i processi

VANTAGGIO: richiesta poca memoria per il checkpoint e processo gia’ disponibile per la sostituzione

SVANTAGGIO: Puo’ essere tollerato solo 1 guasto e errori di round-off nel ripristino

Marco Lapegna – Calcolo Parallelo e Distribuito II

42

Esempio 2: codifica a gruppi

La limitazione della codifica di base puo’ essere superata facilmente utilizzando m processi di checkpoint

Esempio: 4 processi di calcolo e 2 di checkpoint Si possono raggruppare i processi a gruppi di 2

P0 12

P1 15

P2 10

P3 13

Esempio 2: codifica a gruppi: checkpoint

P0 12

P1 15

P2 10

P3 13

P5 23

Proc di checkpoint per P2 e P3

P4 27

Proc di checkpoint per P0 e P1

+ +

Nella memoria dei processori di checkpoint vengono conservate le somme

dei dati di un gruppo di processi

Esempio 2: codifica a gruppi: ripristino

P0 12

P1 15

P2 10

P3 13

P5 13

Proc di checkpoint

P4 12

Proc di checkpoint

- -

Se 2 processi cadono i dati possono essere recuperati in maniera analoga alla codifica di base

Il calcolo continua con P1, P2, P4 e P5

12 15 27 0

X = − = X 3 = 2310 = 13

(12)

Marco Lapegna – Calcolo Parallelo e Distribuito II

45

Esempio 2: codifica a gruppi

Presenza di piu’ processori di checkpoint in cui conservare i dati di tutti i processi (1 per gruppo) VANTAGGIO:

• richiesta poca memoria per i checkpoint

• processi gia’ disponibili per la sostituzione

• possono essere tollerati fino a m guasti

• possibilita’ di codifiche in parallelo

SVANTAGGIO:

• puo essere tollerato 1 solo fallimento per ogni gruppo di processi

Marco Lapegna – Calcolo Parallelo e Distribuito II

46

problema

E’ possibile rimuovere questa ultima limitazione?

Rimuoviamo la condizione che ci sia 1 processo di checkpoint in ogni gruppo Esempio:

Si consideri il caso di n=4 processi di calcolo e m=2 processi per il checkpoint

Marco Lapegna – Calcolo Parallelo e Distribuito II

47

Esempio 3:

P0 12

P1 15

P2 10

P3 13

P5

50

Proc di checkpoint

P4

Proc di

50

checkpoint

I processi di checkpoint P4 e P5 sono al servizio di tutti i processi di calcolo

Marco Lapegna – Calcolo Parallelo e Distribuito II

48

Se 2 processi cadono

P0 12

P1 15

P2 10

P3 13

P5

50

Proc di checkpoint Proc di

50

checkpoint

P4

50 3 X 10 15 0 X

50 3 X 10 15 0 X

= + + +

= + + +

P4

P5

(13)

Marco Lapegna – Calcolo Parallelo e Distribuito II

49

Problema

 

= +

= +

25 3 X 0 X

25 3 X 0 X

Sistema di 2 equazioni (uguali) in 2 incognite X0 e X3

Sistema indeterminato

Marco Lapegna – Calcolo Parallelo e Distribuito II

50

Perche’?

Il problema e’ mal posto perche’ la matrice del sistema e’ singolare

Rendere indipendenti le colonne del sistema

Introdurre dei coefficienti ai dati nella fase di checkpoint

(matrice di checkpoint)

Esempio 4: codifica pesata - checkpoint

P0 12

P1 15

P2 10

P3 13

50 P5 P4 78

 

=

⋅ +

⋅ +

⋅ +

=

⋅ +

⋅ +

⋅ +

⇒ ⋅

 

 

= 

50 13 1 10 1 15 1 12 1

78 13 2 10 1 15 2 12 1 1 1 1 1

2 1 2 A 1

Matrice di checkpoint Dati codificati

Esempio 4: codifica pesata - ripristino

P0 12

P1 15

P2 10

P3 13

50 P5 P4 78

 

=

=

⋅ +

=

=

⋅ +

25 10 1 15 1 50 3 X 1 0 X 1

38 10 1 15 2 78 3 X 2 0 X 1

Sistema compatibile di 2 equazioni in 2 incognite 13

3 X 12

0

X = =

Se 2 proc

cadono

(14)

Marco Lapegna – Calcolo Parallelo e Distribuito II

53

Problema:

Se invece dei processi P0 e P3 cadono i processi P0 e P2 che succede?

 

=

=

⋅ +

=

=

⋅ +

25 10 1 15 1 50 2 X 1 0 X 1

22 13 2 15 2 78 2 X 1 0 X 1

Problema mal posto

Marco Lapegna – Calcolo Parallelo e Distribuito II

54

Quindi, per n=4 e m=2

La matrice di checkpoint deve essere tale che tutte le sottomatrici di ordine 2 devono essere non singolari

 

 

= 

1 1 1 1

2 1 2

A 1 

 

= 

1 1 1 1

4 3 2 A 1

NO !! SI !!

ESEMPIO

Marco Lapegna – Calcolo Parallelo e Distribuito II

55

Codifica pesata - in generale

Siano

• n processi di calcolo con dati D

1

,…, D

n

• m processi di checkpoint n >> m

P

1

………P

n

P

n+1

………P

n+m

proc di calcolo proc di checkpoint

Marco Lapegna – Calcolo Parallelo e Distribuito II

56

Codifica pesata - checkpoint

 

 

=

mn 1

m

n 1 11

a a

a a

A

L L

M M

L L

Matrice di checkpoint con m righe e n colonne

 

 

= +

+

= +

+

m n mn 1

1 m

1 n n 1 1

11

C D a D

a

C D a D

a

L L

I valori dei checkpoint C

1

,..,C

m

sono calcolati come

(15)

Marco Lapegna – Calcolo Parallelo e Distribuito II

57

Supponiamo che (per semplicita’)

Proc di calcolo Proc di checkpoint

• cadono (i primi) k processi di calcolo

• sopravvivono (i primi) h processi di checkpoint

k h

Nel precedente prodotto D

1

,...,D

k

e C

h+1

,...,C

n

diventano incognite

Marco Lapegna – Calcolo Parallelo e Distribuito II

58

Il sistema diventa

Se k > h il sistema ha piu’ incognite che equazioni (non e’ possibile ripristinare i dati)

 



= +

+

= +

+

+

= +

= n

1 k i

i hi h

k hk 1

1 h

n 1 k i

i i 1 1 k k 1 1

11

D a C

D a D

a

D a C D a D

a

L L

Codifica pesata - ripristino

 



= +

+

= +

+

+

= +

= n

1 k

i hi i

h k hk 1

1 h

n 1 k i 1i i 1

k k 1 1

11

D a C

D a D

a

D a C D a D

a

L L

Se h k il sistema ha piu’ equazioni che incognite (scegliendo le prime k equazioni si puo’

risolvere il sistema e ripristinare i dati)

≥≥≥≥

Sistema di ripristino

Come scegliere le equazioni

Per garantire compatibilita’ al sistema, la matrice dei coefficienti del sistema ottenuto

deve essere non singolare

Il minore fondamentale A

k

di ordine k della matrice di checkpoint A deve essere non singolare

A= A

k

(16)

Marco Lapegna – Calcolo Parallelo e Distribuito II

61

Osservazione

Nell’esempio abbiamo supposto che i primi k processi di calcolo cadono e i primi h processi di checkpoint sopravvivono

In generale bisogna supporre che qualsiasi k processi di calcolo cadono e qualsiasi h processi di checkpoint sopravvivono

Qualsiasi minore di ordine k deve essere non singolare

Marco Lapegna – Calcolo Parallelo e Distribuito II

62

Inoltre

Il ripristino dei dati,

con lo schema della codifica pesata, richiede la risoluzione di un sistema di

equazioni

Errore di round-off elevato nei dati ripristinati, se qualche minore di ordine

k della matrice di checkpoint A, ha indice di condizionamento elevato

Marco Lapegna – Calcolo Parallelo e Distribuito II

63

Riassumendo..

Siamo alla ricerca di una matrice di checkpoint A tale che:

• tutti i minori di ordine k

siano non singolari (per ogni k)

• i relativi sistemi di ripristino siano ben condizionati

Marco Lapegna – Calcolo Parallelo e Distribuito II

64

Matrici casuali gaussiane:

Esempio: m=4, n=5





















−−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−−−−

====

44 . 1 47 . 1 56 . 0 73 . 0 09 . 1

31 . 0 29 . 0 67 . 0 89 . 0 31 . 0

11 . 0 37 . 0 04 . 0 42 . 0 0

23 . 0 25 . 0 57 . 0 87 . 1 04 . 0 A

Una matrice di numeri reali casuali A di m righe e n colonne, si dice Gaussiana se gli elementi sono variabili

casuali indipendenti normalmente distribuite con media=0 e dev.st.=1

(numeri con valore assoluto piccolo sono piu’ probabili)

(17)

Marco Lapegna – Calcolo Parallelo e Distribuito II

65

Si dimostra che:

Data una matrice casuale Gaussiana A di m righe e n colonne, si ha:

1. la matrice A ha (in probabilita’) un basso indice di condizionamento (e quindi e’ non singolare) 2. ogni minore di A di ordine k e’ ancora una

matrice casuale Gaussiana (per ogni k)

Ogni minore di A di ordine k e’

una matrice non singolare ben condizionata

Marco Lapegna – Calcolo Parallelo e Distribuito II

66

Esempio 5: codifica pesata a gruppi

I due schemi di

• codifica a gruppi

• codifica pesata

possono essere combinati insieme

Unire i vantaggi di

• codifica a gruppi (parallelismo)

• codifica pesata (flessibilita’)

Riassumendo…

diskless checkpoint

neighbor based (conservai dati di checkpoint)

• mirroring

• neighbor ring

• neighbor pair

checksum based (codifica i dati di checkpoint)

• checksum di base

• checksum a gruppi

• checksum pesato

• checksum pesato a gruppi

Riassumendo…

diskless checkpoint

neighbor based (conservai dati di checkpoint)

• molta memoria

• assenza di errori di r.o.

• piu’ rigido

• richiede nuovi processi

checksum based (codifica i dati di checkpoint)

• poca memoria

• errori di r.o.

• piu’ flessibile

• processi pronti

Riferimenti

Documenti correlati

L’ispettore Numerik sta affrontando un caso complicato e misterioso: è alla ricerca di un abilissimo ladro che, da alcune settimane, compie numerosi furti in città.. Gli unici

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

[r]

Si assuma che ogni pezzo, indipendentemente dagli altri, abbia probabilit`a p ∈ (0, 1) di essere difettoso.. Se un processore `e funzionante supera sicuramente il test di controllo,

• 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.

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