MC-MC POR LTL MC-POR Conclusions Multi-Core Partial-Order Reduction for LTL Model Checking Alfons Laarman alfons@laarman.com joint work with Anton Wijs (Eindhoven University of Technology) Formal Methods in Systems Engineering Vienna University of Technology May 5, 2015 Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 1/12
MC-MC POR LTL MC-POR Conclusions Goals Combine: Parallel model checking (exponential gains) Partial-Order Reduction (POR) (exponential gains) Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 2/12
MC-MC POR LTL MC-POR Conclusions Goals Combine: Parallel model checking (exponential gains) Partial-Order Reduction (POR) (exponential gains) P 1 � P 2 P i Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 2/12
MC-MC POR LTL MC-POR Conclusions Scalable Multi-Core Model Checking Research questions Can model checking scale on modern multi-cores? Retain compatibility with di ff erent optimizations? Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 3/12
MC-MC POR LTL MC-POR Conclusions Scalable Multi-Core Model Checking Research questions Can model checking scale on modern multi-cores? Retain compatibility with di ff erent optimizations? On-the-fly 1 Partial-order reduction 2 State compression 3 OR Symbolic with BDDs 4 [van Dijk, L, van de Pol, 2013] Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 3/12
MC-MC POR LTL MC-POR Conclusions Scalable Multi-Core Model Checking Research questions Can model checking scale on modern multi-cores? Retain compatibility with di ff erent optimizations? n o e i y t s Formalism a s fl t e - c s y e r i p h t l t r o i m t R e c - b n p i o O On-the-fly m 1 l o p C O P y r x P E + + + S Partial-order reduction 2 State compression 3 Plain Reachability ✓ ✓ ✓ ✓ ✓ OR Symbolic with BDDs 4 Liveness ? ✓ ✓ ✓ ✓ [van Dijk, L, van de Pol, 2013] Timed Reachability ✓ ✓ ✓ ✓ ✓ Liveness ✓ ✓ ✓ ? ✓ Shared hash table approach (as opposed to distributed algorithms) 1 Lockless data structures 2 Parallel algorithms (Multi-Core Nested-DFS) 3 Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 3/12
MC-MC POR LTL MC-POR Conclusions Partial-Order Reduction for LTL State-space graph: G = ( S , T , s 0 , AP ) On-the-fly exploration: en : S → S Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 4/12
MC-MC POR LTL MC-POR Conclusions Partial-Order Reduction for LTL State-space graph: G = ( S , T , s 0 , AP ) On-the-fly exploration: en : S → S Reduce successor function: por ( s ) ⊆ en ( s ) . deadlock − → Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 4/12
MC-MC POR LTL MC-POR Conclusions Partial-Order Reduction for LTL State-space graph: G = ( S , T , s 0 , AP ) On-the-fly exploration: en : S → S Reduce successor function: por ( s ) ⊆ en ( s ) . deadlock − → ↓ +ignoring Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 4/12
MC-MC POR LTL MC-POR Conclusions Partial-Order Reduction for LTL State-space graph: G = ( S , T , s 0 , AP ) On-the-fly exploration: en : S → S Reduce successor function: por ( s ) ⊆ en ( s ) . deadlock − → ↓ +ignoring Smaller reduced set por () leads to smaller state space. Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 4/12
MC-MC POR LTL MC-POR Conclusions DFS Stack Proviso procedure DFS(s) for all s’ in por(s) do if s’ is not on stack and not visited then DFS(s’) if successor of s is on the stack then explore s fully ( por(s) := en(s) ) mark s visited Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 5/12
MC-MC POR LTL MC-POR Conclusions DFS Stack Proviso procedure DFS(s) for all s’ in por(s) do if s’ is not on stack and not visited then DFS(s’) if successor of s is on the stack then explore s fully ( por(s) := en(s) ) mark s visited → Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 5/12
MC-MC POR LTL MC-POR Conclusions DFS Stack Proviso procedure DFS(s) for all s’ in por(s) do if s’ is not on stack and not visited then DFS(s’) if successor of s is on the stack then explore s fully ( por(s) := en(s) ) mark s visited → Why not anything else? (Minimal) feedback vertex set (FVS) → NP-complete Stack proviso is the best we can do on-the-fly and in linear time Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 5/12
MC-MC POR LTL MC-POR Conclusions DFS Stack Proviso procedure DFS(s) for all s’ in por(s) do if s’ is not on stack and not visited then DFS(s’) if successor of s is on the stack then explore s fully ( por(s) := en(s) ) mark s visited → Why not anything else? (Minimal) feedback vertex set (FVS) → NP-complete Stack proviso is the best we can do on-the-fly and in linear time DFS is P-complete ⇒ inherently sequential (assuming P � NC) Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 5/12
MC-MC POR LTL MC-POR Conclusions Related Work (Parallel LTL + POR) y n t o i l i i t b c a u l d a e c R S Algorithm/Proviso NDFS/Stack ++ TwoPhase [Gopalakrishnan et al.] +- ?? Topological sort [Barnat et al.] +- + Sticky transitions [Peled et al] - + Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 6/12
MC-MC POR LTL MC-POR Conclusions Related Work (Parallel LTL + POR) y n t o i l i i t b c a u l d a e c R S Algorithm/Proviso NDFS/Stack ++ TwoPhase [Gopalakrishnan et al.] +- ?? Topological sort [Barnat et al.] +- + Sticky transitions [Peled et al] - + MC-NDFS/ n / a n / a ++ Challenge: do as good as DFS stack proviso in the parallel setting Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 6/12
MC-MC POR LTL MC-POR Conclusions Nested Depth-First Search for LTL [Courcoubetis’93] B¨ uchi graph: G = ( S , F , T , s 0 , AP ) On-the-fly exploration: en : S → S [Vardi et al, 1996] Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 7/12
MC-MC POR LTL MC-POR Conclusions Nested Depth-First Search for LTL [Courcoubetis’93] B¨ uchi graph: G = ( S , F , T , s 0 , AP ) On-the-fly exploration: en : S → S [Vardi et al, 1996] Accepting cycle detection in B¨ uchi automaton (6 ∈ F ): 2 1 6 3 4 5 Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 7/12
MC-MC POR LTL MC-POR Conclusions Nested Depth-First Search for LTL [Courcoubetis’93] B¨ uchi graph: G = ( S , F , T , s 0 , AP ) On-the-fly exploration: en : S → S [Vardi et al, 1996] Accepting cycle detection in B¨ uchi automaton (6 ∈ F ): 2 1 6 3 4 5 accepting-cycles( G ) ⊆ cycles( G ) Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 7/12
MC-MC POR LTL MC-POR Conclusions Nested Depth-First Search for LTL [Courcoubetis’93] B¨ uchi graph: G = ( S , F , T , s 0 , AP ) On-the-fly exploration: en : S → S [Vardi et al, 1996] procedure DFSblue(s) s.cyan := true Accepting cycle detection in B¨ uchi for all s’ in en(s) do automaton (6 ∈ F ): if ¬ s’.blue ∧¬ s’.cyan then 2 1 6 DFSblue(s’) if s ∈ F then DFSred(s) 3 4 5 s.blue := true s.cyan := false accepting-cycles( G ) ⊆ cycles( G ) procedure DFSred(s) s.red := true Nested DFS (NDFS) for all s’ ∈ en(s) do Linear time if s’.cyan then ExitCycle if ¬ s’.red then DFSred(s’) Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 7/12
MC-MC POR LTL MC-POR Conclusions Nested Depth-First Search for LTL [Courcoubetis’93] B¨ uchi graph: G = ( S , F , T , s 0 , AP ) On-the-fly exploration: en : S → S [Vardi et al, 1996] procedure DFSblue(s) s.cyan := true Accepting cycle detection in B¨ uchi for all s’ in en(s) do automaton (6 ∈ F ): if ¬ s’.blue ∧¬ s’.cyan then 2 1 6 DFSblue(s’) if s ∈ F then DFSred(s) 3 4 5 s.blue := true s.cyan := false accepting-cycles( G ) ⊆ cycles( G ) procedure DFSred(s) s.red := true Nested DFS (NDFS) for all s’ ∈ en(s) do Linear time if s’.cyan then ExitCycle if ¬ s’.red then DFSred(s’) DFS itself is likely not parallelizable DFS order is P-complete Alfons Laarman (Vienna University of Technology) Multi-Core Partial-Order Reduction for LTL Model Checking 7/12
Recommend
More recommend