• Aucun résultat trouvé

Optimized Coordinated Checkpoint/Rollback Protocol using a Dataflow Graph Model

N/A
N/A
Protected

Academic year: 2021

Partager "Optimized Coordinated Checkpoint/Rollback Protocol using a Dataflow Graph Model"

Copied!
52
0
0

Texte intégral

(1)

Optimized Coordinated Checkpoint/Rollback Protocol using a Dataflow Graph Model

Xavier Besseron and Thierry Gautier

{xavier.besseron | thierry.gautier}@imag.fr

Laboratoire d’Informatique de Grenoble MOAIS Project

APRETAF Workshop, January 2009

(2)

Outline

1 Context

2 Fault-tolerance

3 Data Flow Graph model in Kaapi

4 Coordinated Checkpointing in Kaapi

5 Simulations

6 Perspectives

(3)

Outline

1 Context

2 Fault-tolerance

3 Data Flow Graph model in Kaapi

4 Coordinated Checkpointing in Kaapi

5 Simulations

6 Perspectives

(4)

Grid computing

What are grids?

Clusters are computers connected by a LAN Grids are clusters connected by a WAN Heterogeneous (processors, networks, ...) Dynamic (failures, reservations, ...)

Aladdin – Grid’5000

French experimental grid platform More than 4800 cores

9 sites in France 1 site in Brazil 1 site in Luxembourg

(5)

Fault-tolerance

0 0.2 0.4 0.6 0.8 1

0 1000 2000 3000 4000 5000

Failure probability

Number of processors 1−day execution time 5−days execution time 10−days execution time

Why fault-tolerance?

Fault probability is high on a grid

Split a large computation in shorter separated computations Dynamic reconfiguration

(6)

Outline

1 Context

2 Fault-tolerance

3 Data Flow Graph model in Kaapi

4 Coordinated Checkpointing in Kaapi

5 Simulations

6 Perspectives

(7)

Fault-tolerance survey [Elnozahy02]

Duplication-based protocols [Avizienis76][Wiesmann99]

Application execution is duplicated, spatially or temporally.

Log-based protocols [Alvisi98]

Assume that the state of the system evolves according to non-deterministic events

Non-deterministic events are logged in order to rollback from a previous saved checkpoint

Checkpoint/rollback protocols

Periodically save the local process state of the applications.

Uncoordinated checkpointing [Randell75]

Coordinated checkpointing [Chandy85]

Communication-induced checkpointing [Baldoni97]

(8)

Checkpoint/rollback protocols

Why checkpoint/rollback protocol?

Duplication protocols require too much resources [Wiesmann99]

and a computation interruption can be tolerated

Logging protocols require too much resources (memory and bandwidth) with large communication applications [Elnozahy04]

Why coordinated checkpointing?

Coordinated checkpointing advantages:

No domino effect [Elnozahy02]

Low overhead towards application communications [Bouteiller03][Zheng04]

Coordination overhead can be amortized using a suitable checkpoint period [Elnozahy04]

(9)

Application state

Global state

The global state of an application is composed of:

the local state of all its processes;

the state of all its communication channels.

Coherent global state

Acoherent global stateis a state than can happen during a correct execution of the application.

m0

m1 P1

P2 P0

m2

m1

m2 P1

P2 P0

m0

Coherent global state Incoherent global state

(10)

Classical coordinated checkpoint/rollback protocol

Two steps:

Checkpoint step, during failure-free execution

Coordinate all processes to checkpoint a coherent global state:

Coordinate all the processes

Flush communication channels between all processes Save the processes state

Rollback step, to recover after a failure Global restart:

Replace failed processes by new ones

All processes restart from their last checkpoint Restart time is, in worst case, the checkpoint period

(11)

Challenging problems

How to improve performances of coordinated checkpoint/protocols?

Reduce the synchronization cost [Koo87]

Speed-up restart [Bouteiller03][Zheng04]

Reduce lost computation time in case of fault

(12)

Outline

1 Context

2 Fault-tolerance

3 Data Flow Graph model in Kaapi

4 Coordinated Checkpointing in Kaapi

5 Simulations

6 Perspectives

(13)

Applications: simulation of physical phenomena

Characteristics

Iterative decomposition domain applications Large amount of data

Parallelization: static-scheduling

Iterative applications ⇒ only schedule the loop “kernel”

Large data ⇒ preserve locality

P0

P7 P6

P5

P2

P4

P3 P1

(14)

Applications: simulation of physical phenomena

Characteristics

Iterative decomposition domain applications Large amount of data

Parallelization: static-scheduling

Iterative applications ⇒ only schedule the loop “kernel”

Large data ⇒ preserve locality

I t e r a t i o n s

D o m a i n

P 0 P 1 P 2 P 3 P 4

(15)

Data Flow Graph

How it works?

Partition the one-iteration graph Generate

communication tasks Distribute each sub-graph on all the processes

Repeat the sub-graphs to iterate

C o m p u t a t i o n t a s k

D a t a D e p e n d e n c y

P0 P1 P2

Send task Receive task

C o m m u n i c a t i o n

(16)

Keypoint: abstract representation

TheData Flow Graph Properties

A task is the computational unit

A process is composed of a (dynamic) sequence of tasks At any time, Kaapi allows to discover not yet executed tasks and their dependencies

This abstract representation shows the future of the execution The data flow graph representation is causally connected to the application execution.

Usage: analyze and transform the application state and behavior Schedule tasks (at any time)

Checkpoint application state

(17)

Outline

1 Context

2 Fault-tolerance

3 Data Flow Graph model in Kaapi

4 Coordinated Checkpointing in Kaapi

5 Simulations

6 Perspectives

(18)

Checkpoint step

Classical protocol checkpoint

Coordinate all processes to checkpoint a coherent global state:

Coordinate all the processes

Flush communication channels between all processes Save the processes state

CCK: differences with the classical protocol

Optimize the checkpoint step using the abstract representation of the execution (data flow graph):

Partial flush: only between processes which communicates Increment checkpoint: save only modified data

(19)

Recovery: classical protocol vs CCK

Classical protocol restart Global restart:

Replace failed processes by new ones

All processes restart from their last checkpoint Restart time is, in worst case, the checkpoint period

CCK protocol restart Partial restart:

Detect lost communications for the failed processes

Find thestrictly required computation setto make the global state coherent

Schedule statically this task set

(20)

After a checkpoint

Non-failed process Non-failed process

Non-executed task

D a t a

2

3

4

5

6

C o m m u n i c a t i o n D e p e n d e n c y

1

Send task Receive task Non-failed process

(21)

A process failed

Non-failed process Non-failed process

Non-executed task

D a t a

2

3

4

5

6

C o m m u n i c a t i o n D e p e n d e n c y

1

Send task Receive task Failed process

Executed task

(22)

Incoherent application state

Non-failed process Non-failed process

Non-executed task

D a t a

2

3

4

5

6

C o m m u n i c a t i o n D e p e n d e n c y

1

Send task Receive task Failed process

Executed task Task to re-execute

(23)

Lost communications

Non-failed process Non-failed process

Non-executed task

D a t a

2

3

4

5

6

C o m m u n i c a t i o n D e p e n d e n c y

1

Send task Receive task Failed process

Executed task Task to re-execute Clost

(24)

Communications to replay

Non-failed process Non-failed process

Non-executed task

D a t a

2

3

4

5

6

C o m m u n i c a t i o n D e p e n d e n c y

1

Send task Receive task Failed process

Executed task Task to re-execute Call

Call

(25)

Tasks to re-execute

Non-failed process Non-failed process

Non-executed task

D a t a

2

3

4

5

6

C o m m u n i c a t i o n D e p e n d e n c y

1

Send task Receive task Failed process

Executed task Task to re-execute Tto_re-execute

(26)

Recovery: classical protocol vs CCK

Classical protocol restart

Failure

Next checkpoint

Past of the execution

Execution Last

checkpoint

Processes

CCK protocol restart

Failure

Next checkpoint

Past of the execution

Execution Last

checkpoint

Processes

(27)

Recovery: classical protocol vs CCK

Classical protocol restart

Wrecovery std

Failure

Next checkpoint

Past of the execution

Execution Last

checkpoint

Processes

CCK protocol restart

Wrecovery cck

Failure

Next checkpoint

Past of the execution

Execution Last

checkpoint

Processes

(28)

Recovery: classical protocol vs CCK

Classical protocol restart

End of recovery

Wrecovery std Past of the

execution

Execution Last

checkpoint

Processes

CCK protocol restart

End of recovery

Wrecovery cck Past of the

execution

Execution Last

checkpoint

Processes

(29)

Recovery: classical protocol vs CCK

Classical protocol restart

End of recovery

Wrecovery std Past of the

execution

Execution Last

checkpoint

Processes

CCK protocol restart

End of recovery

Wrecovery cck Past of the

execution

Execution Last

checkpoint

Processes

(30)

Recovery: Cost analysis

Classical protocol restart

Required work to recover: Wrecoverystd =O(N · τ ) Restart time on N processes: Trestartstd =O(τ )

CCK protocol restart

Required work to recover: Wrecoverycck =O(Nfailed· τ + εapplication,τ)

Restart time on N processes: Trestartcck =O(Nfailed· τ + εapplication,τ

N )

We have to add the CCK-recovery overhead:

O(N · K ) messages + O(|G|) in time + data distribution cost

K is an application dependent constant that represent the neighbor number

(31)

Outline

1 Context

2 Fault-tolerance

3 Data Flow Graph model in Kaapi

4 Coordinated Checkpointing in Kaapi

5 Simulations

6 Perspectives

(32)

Simulations: case study

Application

Jacobi method on a 3D-domain 2, 0483domain (64 GB)

Split in 643subdomains (32 KB each) Subdomain update computed in 10 ms

Scenario

One process failed

Simulation of the restart in worst case

⇒ % of tasks to re-execute (Wrecoverycck /Wrecoverystd )

⇒ Involved processes

(33)

CCK restart: checkpoint period influence

1,024 processors, ie 256 subdomains (64 MB) per process one iteration last about 2.5 seconds

0 20 40 60 80 100

0 100 200 300 400 500 600

% with respect to the classical protocol

Checkpoint period (in s)

tasks to re−execute involved processes

For a 60-seconds period, the estimated restart time is:

60 seconds with the classical protocol 3.6 seconds with CCK (if totally parallelized)

(34)

CCK restart: process number influence

0 1000 2000 3000 4000 5000 6000 7000 8000 9000

0 1000 2000 3000 4000 5000 6000 7000 8000 9000

Number of involved processes

Process number

period = 5 s period = 10 s period = 25 s period = 50 s period = 100 s classical protocol

0 20 40 60 80 100

0 1000 2000 3000 4000 5000 6000 7000 8000 9000

% with respect to the classical protocol Process number

period = 5 s period = 10 s period = 25 s period = 50 s period = 100 s classical protocol

(35)

Local re-ordering

Default execution order

(36)

Local re-ordering

Default execution order

(37)

Local re-ordering

Default execution order

(38)

Local re-ordering

Default execution order

(39)

Local re-ordering

With local re-ordering

(40)

Local re-ordering

With local re-ordering

(41)

Local re-ordering

With local re-ordering

(42)

Local re-ordering

With local re-ordering

(43)

Local re-ordering

With local re-ordering

(44)

Local re-ordering

With local re-ordering

(45)

Local re-ordering

With local re-ordering

(46)

CCK restart: local re-ordering influence

0 10 20 30 40 50 60

0 10 20 30 40 50

Number of tasks to re−execute

Fault date (in seconds)

checkpoint checkpoint checkpoint checkpoint checkpoint CCK without local re−ordering

CCK with local re−ordering classical protocol

(47)

Outline

1 Context

2 Fault-tolerance

3 Data Flow Graph model in Kaapi

4 Coordinated Checkpointing in Kaapi

5 Simulations

6 Perspectives

(48)

Perspectives

Performance guarantees for failure-free executions The goal is to optimize the protocol parameters :

Interval delay between checkpoint events Checkpoint server number and mapping

Dynamic reconfiguration

Adding or removing nodes requires to re-schedule statically Checkpoint to get a coherent global state

Schedule statically for the new node number Resume the execution

(49)

Thanks for your attention

Questions?

(50)

Kaapi parallel programming model

The application is described as adata flow graph.

API

Global address space

Independent of the number of processors

Data (Shared<...>): declares an object in the global memory Tasks (Fork<...>): creates a new task that may be executed in concurrence with other tasks

Access mode: given by the task: Read, Write, Exclusive, Concurrent write

Shared<Matrix> A;

Shared<double> B;

Fork<Task>() (A,B);

(51)

Optimized CCK restart

Non-failed process Non-failed process

Non-executed task

D a t a

2

3

4

5

6

C o m m u n i c a t i o n D e p e n d e n c y

1

Send task Receive task Failed process

Executed task Task to re-execute

D a t a i n m e m o r y Tto_re-execute (optimised)

(52)

First experiments: 3D-domain decomposition

Preliminary results, Kaapi vs MPICH:

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

16 32 64 64+32 64+64

Mean time for an iteration (s)

Number of nodes

1 cluster 2 clusters

Kaapi MPICH

Références

Documents relatifs

Une autre étude, menée chez des patients traités cette fois-ci par nivolumab, a montré que les patients qui développaient un IRAE quel que soit le stade avaient un taux de

In this short note, we provide some comments on the recent paper “Improving the computing efficiency of HPC systems using a combination of proactive and preventive checkpointing”

This data flow graph is called the abstract repre- sentation of the application because this representation is casually connected to the (execution of the) applica- tion: any

Context DFG Coordinated Checkpoint Global rollback Partial rollback Perspectives Optimized coordination.

Analysing the execu- tion abstract representation as a data flow graph allow us to identify, among the last checkpoint of non-failed processes, the strictly required computation

6: Comparison of the restart time between global restart and partial restart, for different checkpoint periods and different computation grains (lower is better) The restart time

We derive the optimal two-level solutions based on both online scheduling and offline scheduling and prove that the optimal solution must adopt the equal-size checkpoint intervals

Their power consumption is the sum of a static part (the cost for a processor to be turned on, and the leakage power) and a dynamic part, which is a strictly convex function of