Multi-Core Model Checking Alfons Laarman November 14, 2013 ... - - PowerPoint PPT Presentation

multi core model checking
SMART_READER_LITE
LIVE PREVIEW

Multi-Core Model Checking Alfons Laarman November 14, 2013 ... - - PowerPoint PPT Presentation

UNIVERSITY OF TWENTE. Formal Methods & Tools. Multi-Core Model Checking Alfons Laarman November 14, 2013 ... Introduction Reachability LTL Timed Automata LTSmin Conclusions ... State Space Explosion An exponential problem


slide-1
SLIDE 1

Multi-Core Model Checking UNIVERSITY OF TWENTE.

Formal Methods & Tools. Alfons Laarman November 14, 2013

slide-2
SLIDE 2

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

State Space Explosion

(LaQuSo project)

An exponential problem

◮ system data ◮ system

components

◮ property size

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 2 / 27

slide-3
SLIDE 3

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

State Space Explosion

(LaQuSo project)

An exponential problem

◮ system data ◮ system

components

◮ property size

Approach

◮ multi-core model checking

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 2 / 27

slide-4
SLIDE 4

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

State Space Explosion

(LaQuSo project)

An exponential problem

◮ system data ◮ system

components

◮ property size

Approach

◮ multi-core model checking ◮ Confluence / partial-order reduction ◮ Symbolic techniques (BDD-based and SAT-based) ◮ On-the-fly techniques ◮ Compression techniques

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 2 / 27

slide-5
SLIDE 5

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Multi-Core Model Checking

Research questions

◮ Can model checking scale (linearly, ideally) on modern

multi-cores? Speedup: SP = Tseq/TP Ideal: SP = P Linear: SP = P/c

10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

dfsfifo

  • garp

giop2.nomig i−protocol2 leader5

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 3 / 27

slide-6
SLIDE 6

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Multi-Core Model Checking

Research questions

◮ Can model checking scale (linearly, ideally) on modern

multi-cores?

◮ Formalisms: plain, timed, stochastic, etc ◮ Properties: Reachability, LTL, CTL, etc

Speedup: SP = Tseq/TP Ideal: SP = P Linear: SP = P/c

10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

dfsfifo

  • garp

giop2.nomig i−protocol2 leader5

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 3 / 27

slide-7
SLIDE 7

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Multi-Core Model Checking

Research questions

◮ Can model checking scale (linearly, ideally) on modern

multi-cores?

◮ Formalisms: plain, timed, stochastic, etc ◮ Properties: Reachability, LTL, CTL, etc

◮ Are our parallel solutions compatible with other techniques?

Speedup: SP = Tseq/TP Ideal: SP = P Linear: SP = P/c

10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

dfsfifo

  • garp

giop2.nomig i−protocol2 leader5

+

◮ Partial-order reduction (POR) ◮ Symbolic exploration ◮ On-the-fly techniques ◮ Compression techniques

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 3 / 27

slide-8
SLIDE 8

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Challenges

Difficulties of parallelism

◮ Correctness of data structures and algorithms

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 4 / 27

slide-9
SLIDE 9

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Challenges

Difficulties of parallelism

◮ Correctness of data structures and algorithms ◮ Steep memory hierarchies

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 4 / 27

slide-10
SLIDE 10

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Challenges

Difficulties of parallelism

◮ Correctness of data structures and algorithms ◮ Steep memory hierarchies ◮ Cache coherence protocol

#define B (102410241024) int main (void) { int result = 0; for (int i = 0; i < B; i++) result++; return result; } UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 4 / 27

slide-11
SLIDE 11

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Challenges

Difficulties of parallelism

◮ Correctness of data structures and algorithms ◮ Steep memory hierarchies ◮ Cache coherence protocol

#define B (102410241024) int main (void) { int result = 0; for (int i = 0; i < B; i++) result++; return result; } #define P 16 static void count (void arg) { int counter = (int ) arg; for (int i = 0; i < B / P; i++) ( counter)++; } int main (void) { pthread t thread[P]; int counters[P] = 0; for (int i = 0; i < P; i++) pthread create (&thread[i], NULL, count, &counters[i]); int result = 0; for (int i = 0; i < P; i++) { pthread join (thread[i], NULL); result += counters[i]; } return result; } UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 4 / 27

slide-12
SLIDE 12

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Challenges

Difficulties of parallelism

◮ Correctness of data structures and algorithms ◮ Steep memory hierarchies ◮ Cache coherence protocol

#define B (102410241024) int main (void) { int result = 0; for (int i = 0; i < B; i++) result++; return result; } #define P 16 static void count (void arg) { int counter = (int ) arg; for (int i = 0; i < B / P; i++) ( counter)++; } int main (void) { pthread t thread[P]; int counters[P] = 0; for (int i = 0; i < P; i++) pthread create (&thread[i], NULL, count, &counters[i]); int result = 0; for (int i = 0; i < P; i++) { pthread join (thread[i], NULL); result += counters[i]; } return result; } UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 4 / 27

T = 27 T16 = 32

slide-13
SLIDE 13

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Challenges

Difficulties of parallelism

◮ Correctness of data structures and algorithms ◮ Steep memory hierarchies ◮ Cache coherence protocol (false sharing)

#define B (102410241024) int main (void) { int result = 0; for (int i = 0; i < B; i++) result++; return result; } #define P 16 static void count (void arg) { int counter = (int ) arg; for (int i = 0; i < B / P; i++) ( counter)++; } int main (void) { pthread t thread[P]; int attribute ((aligned(64))) counters[P] = 0; for (int i = 0; i < P; i++) pthread create (&thread[i], NULL, count, &counters[i]); int result = 0; for (int i = 0; i < P; i++) { pthread join (thread[i], NULL); result += counters[i]; } return result; } UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 4 / 27

T = 27 T16 = 32 T16 = 1.8

slide-14
SLIDE 14

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

(Explicit-state) reachability

Problem: find all reachable states from s0 ∈ S using a next-state function: post(S) → 2S A state s ∈ S is a (fixed) K-sized vector: v1,...,vK

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 5 / 27

slide-15
SLIDE 15

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Static partitioning or shared hash table

Worker 1 Worker 2 Worker 3 Worker 4

Queue Queue Queue Queue

store store store store

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 6 / 27

slide-16
SLIDE 16

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Static partitioning or shared hash table

Worker 1 Worker 2 Worker 3 Worker 4

Queue Queue Queue Queue

store store store store

Static partitioning X On-the-fly (BFS) ± Scalability (communication

  • n queues)

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 6 / 27

slide-17
SLIDE 17

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Static partitioning or shared hash table

Worker 1 Worker 2 Worker 3 Worker 4

Queue Queue Queue Queue

store store store store

Static partitioning X On-the-fly (BFS) ± Scalability (communication

  • n queues)

Load balancer Store Worker 1 Worker 2 Worker 4 Worker 3

Queue Queue Queue Queue

Shared hash table ✓ On-the-fly: (pseudo) DFS & BFS ? Scalability

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 6 / 27

slide-18
SLIDE 18

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Lockless Hash Table: Design

Laarman, van de Pol, Weber [fmcad10]

Main bottlenecks

◮ State store: concurrent access ◮ Graph traversal: Random memory access (bandwidth)

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 7 / 27

slide-19
SLIDE 19

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Lockless Hash Table: Design

Laarman, van de Pol, Weber [fmcad10]

Main bottlenecks

◮ State store: concurrent access ◮ Graph traversal: Random memory access (bandwidth)

Design

◮ Hash memoization ◮ Walking the Line ◮ In-situ locking

|state| data bucket |cache line|

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 7 / 27

slide-20
SLIDE 20

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments from 2010 (BEEM database)

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 8 / 27

SPIN 5.2.4 (NASA/JPL) DiVinE 2.2 (Brno,CZ) LTSmin (shared hash table)

slide-21
SLIDE 21

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments from 2010 (BEEM database)

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 8 / 27

SPIN 5.2.4 (NASA/JPL) DiVinE 2.2 (Brno,CZ) LTSmin (shared hash table)

Impact

◮ spin model checker . . . . . . . . . . . . . . . [Holzmann’12] ◮ GPU model checking . . . . . . [Sulewski et al ’11,12] ◮ Parallel BDDs. . . . . . .van Dijk, Laarman, van de Pol

[avocs12][pdmc12]

slide-22
SLIDE 22

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Reachability

◮ Scalability comes from limiting bandwidth usage ◮ Correctness established with model checker

Explicit state + Compression + POR + On-the-fly Reachability ✓

? ?

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 9 / 27

slide-23
SLIDE 23

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Reachability

◮ Scalability comes from limiting bandwidth usage ◮ Correctness established with model checker

Explicit state + Compression + POR + On-the-fly Reachability ✓

?

✓ ✓

◮ Partial-order reduction can be computed (state) locally

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 9 / 27

slide-24
SLIDE 24

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Reachability

◮ Scalability comes from limiting bandwidth usage ◮ Correctness established with model checker

Explicit state + Compression + POR + On-the-fly Reachability ✓ X ✓ ✓

◮ Partial-order reduction can be computed (state) locally ◮ No compression, but states are often very similar due to

locality 3,5,5,4,1,3 3,5,9,3,1,3

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 9 / 27

slide-25
SLIDE 25

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Recursive indexing

[holzmann 97][blom et al. 08]

5 1 2 1 2 1 2 1 2 1 1 1 2 2 2 1 1 1 1 1 1 6 8 5 6 6 8 5 5 8 4 3 3 4 3 3 4 3 3 4 3 3 5 4 5 5 4 5 5 4 5 5 4 4 4 4 4 4 4 4 4 4 1 4 4 4 5 5 5 6 6 6 3 3 3 3 3 3 5 6 1 1 2 3 3 5 6 8

HK (K − 1) × H2

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 10 / 27

slide-26
SLIDE 26

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Recursive indexing

[holzmann 97][blom et al. 08]

5 1 2 1 2 1 2 1 2 1 1 1 2 2 2 1 1 1 1 1 1 6 8 5 6 6 8 5 5 8 4 3 3 4 3 3 4 3 3 4 3 3 5 4 5 5 4 5 5 4 5 5 4 4 4 4 4 4 4 4 4 4 1 4 4 4 5 5 5 6 6 6 3 3 3 3 3 3 5 6 1 1 2 3 3 5 6 8

HK (K − 1) × H2

✓ Combinatorial = ⇒ balanced tree (N + 2 √ N + 4 4

  • (N)··· ≈ N)

Compresses states of lenght K to almost 2!

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 10 / 27

N √ N √ N

slide-27
SLIDE 27

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Recursive indexing

[holzmann 97][blom et al. 08]

5 1 2 1 2 1 2 1 2 1 1 1 2 2 2 1 1 1 1 1 1 6 8 5 6 6 8 5 5 8 4 3 3 4 3 3 4 3 3 4 3 3 5 4 5 5 4 5 5 4 5 5 4 4 4 4 4 4 4 4 4 4 1 4 4 4 5 5 5 6 6 6 3 3 3 3 3 3 5 6 1 1 2 3 3 5 6 8

HK (K − 1) × H2

✓ Combinatorial = ⇒ balanced tree (N + 2 √ N + 4 4

  • (N)··· ≈ N)

Compresses states of lenght K to almost 2! X Hard to parallelize (flatliners)

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 10 / 27

N √ N √ N

slide-28
SLIDE 28

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Parallel Tree Compression

Laarman, van de Pol, Weber [spin11]

Solution

◮ Temporary binary tree structure on stack

3,5,5,4,1,3

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 11 / 27

slide-29
SLIDE 29

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Parallel Tree Compression

Laarman, van de Pol, Weber [spin11]

Solution

◮ Temporary binary tree structure on stack

3,5,5,4,1,3 3 5 4 1 3,5,5 4,1,3 3,5 4,1

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 11 / 27

slide-30
SLIDE 30

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Parallel Tree Compression

Laarman, van de Pol, Weber [spin11]

Solution

◮ Temporary binary tree structure on stack ◮ Reuse lockless hash table (merge tables)

4 1 3 5 3,5,5,4,1,3 5 3 3 5 4 1 3,5,5 4,1,3 3,5 4,1

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 11 / 27

slide-31
SLIDE 31

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Parallel Tree Compression

Laarman, van de Pol, Weber [spin11]

Solution

◮ Temporary binary tree structure on stack ◮ Reuse lockless hash table (merge tables)

4 1 6 5 1 3 3 5 3,5,5,4,1,3 6 5 1 3 3 5 4 1 3,5,5 4,1,3 3,5 4,1

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 11 / 27

slide-32
SLIDE 32

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Parallel Tree Compression

Laarman, van de Pol, Weber [spin11]

Solution

◮ Temporary binary tree structure on stack ◮ Reuse lockless hash table (merge tables)

4 1 6 5 1 3 3 5 2 5 3,5,5,4,1,3 2 5 6 5 1 3 3 5 4 1 3,5,5 4,1,3 3,5 4,1

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 11 / 27

slide-33
SLIDE 33

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Parallel Tree Compression

Laarman, van de Pol, Weber [spin11]

Solution

◮ Temporary binary tree structure on stack ◮ Reuse lockless hash table (merge tables) ◮ Incremental updates: (K − 1) → log2(K − 1) lookups

4 1 6 5 1 3 3 5 2 5 3,5,5,4,1,3 3,5,9,4,1,3 2 5 6 5 1 3 3 5 4 1 ? 5 6 9

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 11 / 27

slide-34
SLIDE 34

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments from 2011 [BEEM database]

Laarman, van de Pol, Weber [spin11]

!"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"##$%&#'($$ )*&+$,*-.#$%&#'($ %&'(&)*+,$-()*.&$/0&12$ 34$15-&$-()*.&$/0&12$ 6$7$8$

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 12 / 27

slide-35
SLIDE 35

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments from 2011 [BEEM database]

Laarman, van de Pol, Weber [spin11]

!"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"##$%&#'($$ )*&+$,*-.#$%&#'($ %&'(&)*+,$-()*.&$/0&12$ 34$15-&$-()*.&$/0&12$ 6$7$8$

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 12 / 27

(2 integers)

slide-36
SLIDE 36

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments from 2011 [BEEM database]

Laarman, van de Pol, Weber [spin11]

!"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"##$%&#'($$ )*&+$,*-.#$%&#'($ %&'(&)*+,$-()*.&$/0&12$ 34$15-&$-()*.&$/0&12$ 6$7$8$

3,5,5,4,1,3 3,5,9,4,1,3 3,5,9,3,2,3

Information theoretical lower bound? ◮ View states as stream of variables: v1

1,...v1 K ,v2 1,...v2 K ,... with |vi j | = 232

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 12 / 27

(2 integers)

slide-37
SLIDE 37

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments from 2011 [BEEM database]

Laarman, van de Pol, Weber [spin11]

!"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"##$%&#'($$ )*&+$,*-.#$%&#'($ %&'(&)*+,$-()*.&$/0&12$ 34$15-&$-()*.&$/0&12$ 6$7$8$

3,5,5,4,1,3 3,5,9,4,1,3 3,5,9,3,2,3

1 K K−1 K

Information theoretical lower bound? ◮ View states as stream of variables: v1

1,...v1 K ,v2 1,...v2 K ,... with |vi j | = 232

◮ p(vi

j = vi−1 j

) = K−1

K

and p(vi

j vi−1 j

) = 1

K

(under-estimation)

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 12 / 27

(2 integers)

slide-38
SLIDE 38

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments from 2011 [BEEM database]

Laarman, van de Pol, Weber [spin11]

!"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"##$%&#'($$ )*&+$,*-.#$%&#'($ %&'(&)*+,$-()*.&$/0&12$ 34$15-&$-()*.&$/0&12$ 6$7$8$

3,5,5,4,1,3 3,5,9,4,1,3 3,5,9,3,2,3

1 K K−1 K

Information theoretical lower bound? ◮ View states as stream of variables: v1

1,...v1 K ,v2 1,...v2 K ,... with |vi j | = 232

◮ p(vi

j = vi−1 j

) = K−1

K

and p(vi

j vi−1 j

) = 1

K

(under-estimation) ◮ Entropy per state: K × H(si

j ) ≈ log2(232) + log2(K) bits ≈ 1 + ǫ integer

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 12 / 27

(2 integers)

slide-39
SLIDE 39

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments from 2011 [BEEM database]

Laarman, van de Pol, Weber [spin11]

!"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"##$%&#'($$ )*&+$,*-.#$%&#'($ %&'(&)*+,$-()*.&$/0&12$ 34$15-&$-()*.&$/0&12$ 6$7$8$

3,5,5,4,1,3 3,5,9,4,1,3 3,5,9,3,2,3

1 K K−1 K

Information theoretical lower bound? ◮ View states as stream of variables: v1

1,...v1 K ,v2 1,...v2 K ,... with |vi j | = 232

◮ p(vi

j = vi−1 j

) = K−1

K

and p(vi

j vi−1 j

) = 1

K

(under-estimation) ◮ Entropy per state: K × H(si

j ) ≈ log2(232) + log2(K) bits ≈ 1 + ǫ integer

◮ Halve the root table with Cleary compact hash table [memics11]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 12 / 27

(2 integers)

slide-40
SLIDE 40

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Reachability

◮ Scalability from merging tables & incremental updates ◮ Correctness proved by hand

◮ The recursive tree function is an injection [spin11]

Explicit state + Compression + POR + On-the-fly Reachability ✓ ✓ ✓ ✓

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 13 / 27

slide-41
SLIDE 41

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Reachability

◮ Scalability from merging tables & incremental updates ◮ Correctness proved by hand

◮ The recursive tree function is an injection [spin11]

Explicit state + Compression + POR + On-the-fly Reachability ✓ ✓ ✓ ✓ LTL

? ? ? ?

Still only safety...

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 13 / 27

slide-42
SLIDE 42

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

LTL The ω-language of the B¨ uchi automaton represents all counter examples [Vardi et Wolper 86]

1 2 3 4 5 6

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 14 / 27

slide-43
SLIDE 43

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

LTL The ω-language of the B¨ uchi automaton represents all counter examples [Vardi et Wolper 86]

1 2 3 4 5 6

“It is as yet an open problem how a liveness verification algorithm could be generalized to the use of more than two processing cores while retaining a low search complexity.” [Holzmann ’07] “One of the most important open problems of parallel LTL model checking is to design an on-the-fly scalable parallel algorithm with linear time complexity.” [Brim, Barnat et Roˇ ckai ’11]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 14 / 27

slide-44
SLIDE 44

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Nested Depth-First Search for LTL

[Courcoubetis’93]

procedure DFSblue(s) s.cyan := true for all s’inpost(s) do if ¬t.blue∧¬t.cyan then DFSblue(s’) if accepting(s) then DFSred(s) s.blue := true s.cyan := false procedure DFSred(s) s.red := true for all s’∈post(s) do if t.cyan then ExitCycle if ¬t.red then DFSred(s’)

Nested DFS (NDFS)

◮ Linear time

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 15 / 27

slide-45
SLIDE 45

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Nested Depth-First Search for LTL

[Courcoubetis’93]

procedure DFSblue(s) s.cyan := true for all s’inpost(s) do if ¬t.blue∧¬t.cyan then DFSblue(s’) if accepting(s) then DFSred(s) s.blue := true s.cyan := false procedure DFSred(s) s.red := true for all s’∈post(s) do if t.cyan then ExitCycle if ¬t.red then DFSred(s’)

Nested DFS (NDFS)

◮ Linear time ◮ DFS itself is likely not

parallelizable

◮ DFS order is a P-complete

problem

◮ We assume: P NC UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 15 / 27

slide-46
SLIDE 46

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Multi-core Nested Depth-First Search (Principle)

[atva11], [pdmc11], [atva12]

code for worker p:

procedure DFSblue(s,p) s.cyan[p] := true for all s’inshuffle(post(s)) do if ¬s’.blue∧¬t.cyan[p] then DFSblue(s’,p) if accepting(s) then DFSred(s,p) s.blue := true s.cyan[p] := false procedure DFSred(s,p) s.red[p] := true for all s’∈post(s) do if t.cyan[p] then ExitCycle if ¬t.red[p] then DFSred(s’,p)

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 16 / 27

slide-47
SLIDE 47

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Multi-core Nested Depth-First Search (Principle)

[atva11], [pdmc11], [atva12]

code for worker p:

procedure DFSblue(s,p) s.cyan[p] := true for all s’inshuffle(post(s)) do if ¬s’.blue∧¬t.cyan[p] then DFSblue(s’,p) if accepting(s) then DFSred(s,p) s.blue := true s.cyan[p] := false procedure DFSred(s,p) s.red[p] := true for all s’∈post(s) do if t.cyan[p] then ExitCycle if ¬t.red[p] then DFSred(s’,p) P1 P2

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 16 / 27

slide-48
SLIDE 48

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Multi-core Nested Depth-First Search (Principle)

[atva11], [pdmc11], [atva12]

code for worker p:

procedure DFSblue(s,p) s.cyan[p] := true for all s’inshuffle(post(s)) do if ¬s’.blue∧¬t.cyan[p] then DFSblue(s’,p) if accepting(s) then DFSred(s,p) s.blue := true s.cyan[p] := false procedure DFSred(s,p) s.red[p] := true for all s’∈post(s) do if t.cyan[p] then ExitCycle if ¬t.red[p] then DFSred(s’,p) P1 P2

◮ In reality more synchronization! ◮ Laarman, Wijs et al. [atva11] Laarman et van de Pol [pdmc11] Evangelista, Laarman et al. [atva12]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 16 / 27

slide-49
SLIDE 49

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Multi-core Nested Depth-First Search (Principle)

[atva11], [pdmc11], [atva12]

code for worker p:

procedure DFSblue(s,p) s.cyan[p] := true for all s’inshuffle(post(s)) do if ¬s’.blue∧¬t.cyan[p] then DFSblue(s’,p) if accepting(s) then DFSred(s,p) s.blue := true s.cyan[p] := false procedure DFSred(s,p) s.red[p] := true for all s’∈post(s) do if t.cyan[p] then ExitCycle if ¬t.red[p] then DFSred(s’,p) P1 P2

◮ In reality more synchronization! ◮ Laarman, Wijs et al. [atva11] Laarman et van de Pol [pdmc11] Evangelista, Laarman et al. [atva12] ◮ Lemma 4: Blue states have

blue or cyan successors: Blue ⊆

p (Blue ∪ Cyanp).

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 16 / 27

slide-50
SLIDE 50

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

LTL and Partial-Order Reduction

◮ Scalability due to hash/tree table (linear-time) ◮ Correctness proved by hand [atva11][pdmc11][atva12]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 17 / 27

slide-51
SLIDE 51

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

LTL and Partial-Order Reduction

◮ Scalability due to hash/tree table (linear-time) ◮ Correctness proved by hand [atva11][pdmc11][atva12]

For partial-order reduction, we need to solve ignoring

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 17 / 27

slide-52
SLIDE 52

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

LTL and Partial-Order Reduction

◮ Scalability due to hash/tree table (linear-time) ◮ Correctness proved by hand [atva11][pdmc11][atva12]

For partial-order reduction, we need to solve ignoring

◮ For livelocks (⊃ LTL), any unfair cycle is a counter example! ◮ Parallel DFSFIFO Laarman et Farag ´

  • [nfm13]

P

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 17 / 27

slide-53
SLIDE 53

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments: LTL with Partial-Order Reduction

10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

cndfs

  • garp

giop2.nomig i−protocol2 leader5 10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

dfsfifo

  • garp

giop2.nomig i−protocol2 leader5

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 18 / 27

slide-54
SLIDE 54

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments: LTL with Partial-Order Reduction

10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

cndfs

  • garp

giop2.nomig i−protocol2 leader5 10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

dfsfifo

  • garp

giop2.nomig i−protocol2 leader5

Partial-order reductions: LTSmin spin dfsfifo ndfs leader 0.49% 1.15% garp 2.18% 12.73% giop 1.86% 2.42% i-prot 31.83% 41.37%

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 18 / 27

slide-55
SLIDE 55

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Experiments: LTL with Partial-Order Reduction

10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

cndfs

  • garp

giop2.nomig i−protocol2 leader5 10 20 30 40 50

  • 10

20 30 40 50

Threads Speedup

dfsfifo

  • garp

giop2.nomig i−protocol2 leader5

Partial-order reductions: LTSmin spin dfsfifo ndfs leader 0.49% 1.15% garp 2.18% 12.73% giop 1.86% 2.42% i-prot 31.83% 41.37%

  • Max. model size explored in 30 min.

LTSmin DiVinE cores dfsfifo

  • wcty

1 12 9 48 15 11 dfsfifo vs owcty + POR [Brim et al ’10]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 18 / 27

slide-56
SLIDE 56

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Formalism Property Explicit state + Compression + POR + On-the-fly Plain Reachability ✓ ✓ ✓ ✓ LTL ✓ ✓ X ✓ . . . . . Livelocks ✓ ✓ ✓ ✓

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 19 / 27

slide-57
SLIDE 57

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Formalism Property Explicit state + Compression + POR + On-the-fly Plain Reachability ✓ ✓ ✓ ✓ LTL ✓ ✓ X ✓ . . . . . Livelocks ✓ ✓ ✓ ✓ Timed Reachability

? ? ? ?

LTL

? ? ? ?

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 19 / 27

slide-58
SLIDE 58

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Timed Automata

States are semi-symbolic: s = d,σ (finite continuous-time abstraction)

Z1 := y − x ≤ 0 ∧ y ≤ 2

y x 2 2

Z2 := Z3 := y − x = 0 ∧ y ≤ 2

y x 2 2

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 20 / 27

slide-59
SLIDE 59

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Timed Automata

States are semi-symbolic: s = d,σ (finite continuous-time abstraction)

Z1 := y − x ≤ 0 ∧ y ≤ 2

y x 2 2

Z2 := Z3 := y − x = 0 ∧ y ≤ 2

y x 2 2 This introduces a new subsumption relation: s ⊑ s′, iff d = d′ ∧ σ ⊑ σ′

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 20 / 27

slide-60
SLIDE 60

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Timed Automata

States are semi-symbolic: s = d,σ (finite continuous-time abstraction)

Z1 := y − x ≤ 0 ∧ y ≤ 2

y x 2 2

Z2 := Z3 := y − x = 0 ∧ y ≤ 2

y x 2 2 This introduces a new subsumption relation: s ⊑ s′, iff d = d′ ∧ σ ⊑ σ′ Subsumption is a simulation relation which allows another, dynamic abstraction

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 20 / 27

slide-61
SLIDE 61

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Timed Automata

Dalsgaard, Laarman, Olesen, Larsen, van de Pol [formats12] ✓ For reachability, we implemented a lockless multi-map [format12]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 21 / 27

slide-62
SLIDE 62

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Timed Automata

Dalsgaard, Laarman, Olesen, Larsen, van de Pol [formats12] ✓ For reachability, we implemented a lockless multi-map [format12]

s0 s1 s2 s3 ⊒ UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 21 / 27

slide-63
SLIDE 63

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Timed Automata

Dalsgaard, Laarman, Olesen, Larsen, van de Pol [formats12] ✓ For reachability, we implemented a lockless multi-map [format12]

s0 s1 s2 s3 ⊒

X Subsumption does not preserve B¨ uchi emptiness! [Tripakis’09]

s0 s1 s2 s3 ⊒

Timed abstraction

s0 s2 s3 s1

s3 ⊑ s1

s0 s1 s2

subsumption

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 21 / 27

slide-64
SLIDE 64

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Analysis of accepting cycles/spirals with subsumption

Laarman, Olesen, Dalsgaard, Larsen, van de Pol [cav13]

Lemma: If s has an accepting cycle then any s′ ⊒ s has it as well

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 22 / 27

slide-65
SLIDE 65

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Analysis of accepting cycles/spirals with subsumption

Laarman, Olesen, Dalsgaard, Larsen, van de Pol [cav13]

Lemma: If s has an accepting cycle then any s′ ⊒ s has it as well

s’ s t

Preservation of accepting cycles Proof Sketch s′ s t t ⊑ →∗ →+

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 22 / 27

slide-66
SLIDE 66

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Analysis of accepting cycles/spirals with subsumption

Laarman, Olesen, Dalsgaard, Larsen, van de Pol [cav13]

Lemma: If s has an accepting cycle then any s′ ⊒ s has it as well

s’ t’ t’’ s t

Preservation of accepting cycles Proof Sketch s′ s t t ⊑ →∗ →+ t′ t′′ →∗ →+ ⊑ ⊑

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 22 / 27

slide-67
SLIDE 67

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Analysis of accepting cycles/spirals with subsumption

Laarman, Olesen, Dalsgaard, Larsen, van de Pol [cav13]

Lemma: If s has an accepting cycle then any s′ ⊒ s has it as well

s’ t’ t’’ s t t’’’

Preservation of accepting cycles Proof Sketch s′ s t t ⊑ →∗ →+ t′ t′′ →∗ →+ ⊑ ⊑ ······ ······ t′′′ t →+ →+ →+ →+ ⊑

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 22 / 27

slide-68
SLIDE 68

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Analysis of accepting cycles/spirals with subsumption

Laarman, Olesen, Dalsgaard, Larsen, van de Pol [cav13]

Lemma: If s has an accepting cycle then any s′ ⊒ s has it as well

s’ t’ t’’ s t t’’’

Preservation of accepting cycles Proof Sketch s′ s t t ⊑ →∗ →+ t′ t′′ →∗ →+ ⊑ ⊑ ···x ··· ······ t′′′ t →+ →+ →+ →+ ⊑ x t →+ →+ ⊑

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 22 / 27

slide-69
SLIDE 69

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Analysis of accepting cycles/spirals with subsumption

Laarman, Olesen, Dalsgaard, Larsen, van de Pol [cav13]

Lemma: If s has an accepting cycle then any s′ ⊒ s has it as well

s’ t’ t’’ s t t’’’

Preservation of accepting cycles Proof Sketch s′ s t t ⊑ →∗ →+ t′ t′′ →∗ →+ ⊑ ⊑ ···x ··· ······ t′′′ t →+ →+ →+ →+ ⊑ x t →+ →+ ⊑ Lemma: If t′ has an accepting spiral then t′ has an accepting cycle

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 22 / 27

slide-70
SLIDE 70

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Results with Parallel Timed Reachabilty / LTL

Laarman, Olesen, Dalsgaard, Larsen, van de Pol [cav13][formats2012]

◮ Add full LTL to timed automata ◮ Runtimes 60x faster than UPPAAL on 48 cores ◮ Up to 70x reductions due to subsumption ◮ Tree compression for large discrete states

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 23 / 27

slide-71
SLIDE 71

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

LTSmin

LTSmin Blom, van de Pol, Weber [cav09]

http://fmt.cs.utwente.nl/tools/ltsmin/ (open source)

Pins2pins mCRL2 Promela DVE UPPAAL Symbolic Specification

PINS PINS

Distributed Multi−core Languages Tools Reachability reduction Partial−order Variable reordering Transition grouping caching Transition Wrappers

Other work

◮ Guard-based POR . . . . .Pater, Laarman, van de Pol [spin13] ◮ promela formalism . . . . van der Berg et Laarman [pdmc12] ◮ LTSmin tool . . . . . . . . . . Laarman, Weber, van de Pol [nfm11]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 24 / 27

slide-72
SLIDE 72

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Contributions

Formalism P r

  • p

e r t y E x p l i c i t s t a t e + C

  • m

p r e s s i

  • n

+ P O R + O n

  • t

h e

  • fl

y publications Plain Reachability ✓ ✓ ✓ ✓ [fmcad10][spin11][memics11] LTL ✓ ✓

1/2 ✓

[atva11][pdmc11][atva12] . . . . Livelocks ✓ ✓ ✓ ✓ [spin13][nfm13] Timed Reachability ✓ ✓ – ✓ [formats12] LTL ✓ ✓ – ✓ [cav13]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 25 / 27

slide-73
SLIDE 73

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Contributions

Formalism P r

  • p

e r t y E x p l i c i t s t a t e + C

  • m

p r e s s i

  • n

+ P O R + O n

  • t

h e

  • fl

y S y m b

  • l

i c publications Plain Reachability ✓ ✓ ✓ ✓ ✓ [fmcad10][spin11][memics11] LTL ✓ ✓

1/2 ✓ ?

[atva11][pdmc11][atva12] . . . . Livelocks ✓ ✓ ✓ ✓

?

[spin13][nfm13] Timed Reachability ✓ ✓ – ✓

?

[formats12] LTL ✓ ✓ – ✓

?

[cav13]

Other work ◮ Multi-core BDDs . . . . . . . . . . . . . . . . . . . . . . . . .van Dijk, Laarman, van de Pol [pdmc12]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 25 / 27

slide-74
SLIDE 74

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Contributions

Formalism P r

  • p

e r t y E x p l i c i t s t a t e + C

  • m

p r e s s i

  • n

+ P O R + O n

  • t

h e

  • fl

y S y m b

  • l

i c publications Plain Reachability ✓ ✓ ✓ ✓ ✓ [fmcad10][spin11][memics11] LTL ✓ ✓

1/2 ✓ ?

[atva11][pdmc11][atva12] . . . . Livelocks ✓ ✓ ✓ ✓

?

[spin13][nfm13] Timed Reachability ✓ ✓ – ✓

?

[formats12] LTL ✓ ✓ – ✓

?

[cav13]

Other work ◮ Multi-core BDDs . . . . . . . . . . . . . . . . . . . . . . . . .van Dijk, Laarman, van de Pol [pdmc12] ◮ One-Way-Catch-Them Young (LTL). . . . . . . . . . . . . . . . . . . . . .[Barnat,Brim,Roˇ ckai’01] ◮ Topological sort proviso (POR) . . . . . . . . . . . . . . . . . . . . . . . . . . [Barnat,Brim,Roˇ ckai’10] ◮ CTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [Saad et al’12]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 25 / 27

slide-75
SLIDE 75

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Future work

Formalism Property Explicit state + Compression + POR + On-the-fly Plain Reachability ✓ ✓ ✓ ✓ LTL ✓ ✓

1/2 ✓

Timed Reachability ✓ ✓ – ✓ LTL ✓ ✓ – ✓

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 26 / 27

slide-76
SLIDE 76

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Future work

Formalism Property Explicit state + Compression + POR + On-the-fly Plain Reachability ✓ ✓ ✓ ✓ LTL ✓ ✓

1/2 ✓

CTL

? ? ? ?

Timed Reachability ✓ ✓ – ✓ LTL ✓ ✓ – ✓ CTL

? ? ? ?

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 26 / 27

slide-77
SLIDE 77

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Future work

Formalism Property Explicit state + Compression + POR + On-the-fly Symbolic Distributed Plain Reachability ✓ ✓ ✓ ✓ ✓

?

LTL ✓ ✓

1/2 ✓ ? ?

CTL

? ? ? ? ? ?

Timed Reachability ✓ ✓ – ✓

? ?

LTL ✓ ✓ – ✓

? ?

CTL

? ? ? ? ? ?

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 26 / 27

slide-78
SLIDE 78

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Future work

Formalism Property Explicit state + Compression + POR + On-the-fly Symbolic Distributed Plain Reachability ✓ ✓ ✓ ✓ ✓

?

LTL ✓ ✓

1/2 ✓ ? ?

CTL

? ? ? ? ? ?

Timed Reachability ✓ ✓ – ✓

? ?

LTL ✓ ✓ – ✓

? ?

CTL

? ? ? ? ? ?

Stoch. Reachability

? ? ? ? ? ?

LTL

? ? ? ? ? ?

CTL

? ? ? ? ? ?

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 26 / 27

slide-79
SLIDE 79

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ...

Future work

Formalism Property Explicit state + Compression + POR + On-the-fly Symbolic Distributed Plain Reachability ✓ ✓ ✓ ✓ ✓

?

LTL ✓ ✓ ✓ ✓

? ?

CTL

? ? ? ? ? ?

Timed Reachability ✓ ✓ – ✓

? ?

LTL ✓ ✓ – ✓

? ?

CTL

? ? ? ? ? ?

Stoch. Reachability

? ? ? ? ? ?

LTL

? ? ? ? ? ?

CTL

? ? ? ? ? ?

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 26 / 27

Other questions

◮ Can our parallel DFS-based solutions be generalized?

◮ (Bottom-)SCC detection ◮ Emptiness of {Tree,Rabin,Streett} automata, etc. ◮ What search-order property is preserved?

slide-80
SLIDE 80

... Introduction Reachability LTL Timed Automata LTSmin Conclusions ... UNIVERSITY OF TWENTE. Multi-Core Model Checking November 14, 2013 27 / 27

... Introduction Reachability LTL Timed Automata Conclusions ...

Static partitioning or shared hash table

[fmcad10]

Worker 1 Worker 2 Worker 3 Worker 4 Queue Queue Queue Queue store store store store

Static partitioning X On-the-fly (BFS) ± Scalability (communication

  • n queues)
Load balancer Store Worker 1 Worker 2 Worker 4 Worker 3 Queue Queue Queue Queue

Shared hash table 3 On-the-fly: (pseudo) DFS & BFS ? Scalability

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 5, 2013 7 / 26 ... Introduction Reachability LTL Timed Automata Conclusions ...

Recursive indexing

[holzmann 97][blom et al. 08]

5 1 2 1 2 1 2 1 2 1 1 1 2 2 2 1 1 1 1 1 1 6 8 5 6 6 8 5 5 8 4 3 3 4 3 3 4 3 3 4 3 3 5 4 5 5 4 5 5 4 5 5 4 4 4 4 4 4 4 4 4 4 1 4 4 4 5 5 5 6 6 6 3 3 3 3 3 3 5 6 1 1 2 3 3 5 6 8

HK (K − 1) × H2

3 Combinatorial = ) balanced tree (N + 2 p N + 4 4 p (N)··· ≈ N) Compresses states of lenght K to almost 2! X Hard to parallelize (flatliners)

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 5, 2013 11 / 26 ... Introduction Reachability LTL Timed Automata Conclusions ...

Experiments from 2011 [BEEM database]

[spin11]

!"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"!#$ !"#!$ #"!!$ #!"!!$ #!!"!!$ !"##$%&#'($$ )*&+$,*-.#$%&#'($ %&'(&)*+,$-()*.&$/0&12$ 34$15-&$-()*.&$/0&12$ 6$7$8$

h3,5,5,4,1,3i h3,5,9,4,1,3i h3,5,9,3,2,3i

K−1 K

Information theoretical optimum? I View states as K-periodic stream of 232-valued variables I Information entropy per state: log2(232) + log2(K) bits ≈ 1 + integer I Halve root table with compact hash table [memics11]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 5, 2013 13 / 26 ... Introduction Reachability LTL Timed Automata Conclusions ...

Contributions

Formalism Property Explicit state + Compression + POR + On-the-fly Symbolic publications Plain Reachability 3 3

1/2 3 3

[fmcad10][spin11][memics11] LTL 3 3

1/2 3 ?

[atva11][pdmc11][atva12] . . . . Livelocks 3 3 3 3

?

[spin13][nfm13] Timed Reachability 3 3 – 3

?

[formats12] LTL 3 3 – 3

?

[cav13]

Related work I Multi-core BDDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [pdmc13(1)] I One-Way-Catch-Them Young (LTL). . . . . . . . . . . . . . . . . . . . . .[Barnat,Brim,Roˇ ckai’01] I Topological sort proviso (POR) . . . . . . . . . . . . . . . . . . . . . . . . . . [Barnat,Brim,Roˇ ckai’10] I CTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [Saad et al 12]

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 5, 2013 24 / 26 ... Introduction Reachability LTL Timed Automata Conclusions ...

Multi-core Nested Depth-First Search (Principle)

[atva11][pdmc11][atva12] code for worker p:

procedure DFSblue(s,p) s.cyan[p] := true for all s’inshuffle(post(s)) do if ¬s’.blue∧¬t.cyan[p] then DFSblue(s’,p) if accepting(s) then DFSred(s,p) s.blue := true s.cyan[p] := false procedure DFSred(s,p) s.red[p] := true for all s’∈post(s) do if t.cyan[p] then ExitCycle if ¬t.red[p] then DFSred(s’,p) Multi-core NDFS

I States in shared tree/table I Independent forward search I Share blue color I repair DFS order (not shown)

P1 P2

UNIVERSITY OF TWENTE. Multi-Core Model Checking November 5, 2013 17 / 26