Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase...

26
Parallel LTL Model Checking CS 586

Transcript of Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase...

Page 1: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Parallel LTL Model Checking

CS 586

Page 2: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

The Capacity Problem

Capacity = memory states*stateSize

Increase capacity by- Increasing memory- Decreasing states- Decreasing state size

Page 3: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Double DFS in Parallel

Memory available in one machine

Memory needed to store visited states

Page 4: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

DDFS Search order

A B

C

If the dfs2 from A visits C first, then the dfs2 from B will not visit C and will not detect a cycle.Solutions?

Page 5: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Solution Ideas

Use a different algorithm.

Schedule the dfs2 searches

Use different bits to mark dfs2 visits

______ ?

Page 6: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

One Idea

Forget about proving correctness.

Each search process is random.

Coordinate efforts to find cycles.

Coordination scheme should be..Decentralized

Fault-tolerant

Better than no coordination at all

Page 7: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Forager Allocation Problem

Given: several foraging sites with varying qualitythe current needs of the hivea pool of foragers

Allocate the foragers to: maximize the collection of needed resources

Without central control.

Page 8: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Scouts locate patches

Page 9: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Scouts multicast their findings

Scout performs a waggle dance whichis observed by unemployed foragers.Duration and intensity of the dance describe the quality of the patch.

Page 10: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Workers visit patches.

A worker will observe a dance and leave for a patch.Returns, unloads and dances.May visit patch again.

Page 11: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Adaptation

Apis Mellifera

Bee foragerSearch flight patternFlower patchPollenWaggle dance

BEE(bee-based error explorer)

Search agent

Random walk

Accept state

Property Violation

Multicast

Page 12: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Decentralized Cooperative Search

A B

C

Launch n random searches.When one finds an accept state, advertize its location.Listen to and possibly ignore advertizements.

Page 13: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

BEE Search

controller BEE BEE BEE BEEdistributeproblem

Page 14: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

BEE Search

controller

multicast anaccept state

Page 15: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

BEE Search

controller

moremulticasts

report an error

Page 16: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

BEE Search

controller

searchcontinues…

Page 17: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

BEE Search

controller

search terminated

Page 18: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Experimental Environment

Classroom laboratory workstations

Lowest priority level

8 MB of RAM per machine

Compare with isolated parallel random walks to measure advantage of coordination.

Page 19: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Speedup-SS7

0

10

20

30

40

50

60

70

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64

BEE

ISO

Linear

Page 20: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Speedup-11peterson

0

10

20

30

40

50

60

70

2 64

BEE

ISO

Linear

Page 21: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

0

0.5

1

1.5

2

2.5

3

3.5

0 16 32 48 64 80 96 112 128

Workstations

Advantage of cooperation

ss7

11p

ss8

Page 22: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Too Much CommunicationSS 7 11 Peterson

Page 23: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

0

1

2

3

4

5

6

7

8

9

10

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

msgs recvd

acc states found

dfs2 replaced

Page 24: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

0

10

20

30

40

50

60

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45

msgs recvd

acc states found

DFS2's replaced

0

1

2

3

4

5

6

7

8

9

10

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47

msgs recvd

acc states found

dfs2 replaced

Page 25: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

ACCEPT STATEFORAGING

time to receivecycle advertisement

recruit to cycle foraging

abandon acceptstate foraging

WATER COLLECTING

water in hive

recruiting to water collecting(waggle dance)

abandoning of water

collecting

water seekingby receiver bees

time to findan unloader

evaporativecooling

Negative Feedback

Page 26: Parallel LTL Model Checking CS 586. The Capacity Problem Capacity = memory states*stateSize Increase capacity by - Increasing memory - Decreasing states.

Negative Feedback