28
PARALLEL RECURSIVE STATE COMPRESSION FOR FREE ALFONS LAARMAN JOINT WORK WITH: MICHAEL WEBER JACO VAN DE POL SPIN 2011

Parallel Recursive State Compression for Free

  • Upload
    kamala

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Parallel Recursive State Compression for Free. Alfons Laarman Joint work with : Michael Weber Jaco Van de Pol 12/7/2011. SPIN 2011. Motivation Previous work Problem Description Background Tree Compression Contribution Concurrent Tree Compression - PowerPoint PPT Presentation

Citation preview

Page 1: Parallel Recursive State Compression for Free

PARALLEL RECURSIVE STATE COMPRESSION FOR FREE

ALFONS LAARMAN

JOINT WORK WITH:

MICHAEL WEBER

JACO VAN DE POL

12/7/2011

SPIN 2011

Page 2: Parallel Recursive State Compression for Free

• Motivation

• Previous work

• Problem Description

• Background

• Tree Compression

• Contribution

• Concurrent Tree Compression

• An Incremental Algorithm

• Analysis of Compression Ratios

• Experiments

• Conclusion / Future Work

12/7/2011Parallel Recursive State Compression for Free 2

OVERVIEW

Page 3: Parallel Recursive State Compression for Free

(Enumerative) reachability as a basis for many verification problems

S: open set (stack or queue)

DB: closed set

12/7/2011Parallel Recursive State Compression for Free 3

MOTIVATIONPREVIOUS WORK

Page 4: Parallel Recursive State Compression for Free

S4:

12/7/2011 4

PREVIOUS WORKMOTIVATION

Parallel Recursive State Compression for Free

DB

Worker 1 Worker 2

Worker 3Worker 4re

ques

t

Lock

less h

ash

table

Synchronous Random Polling

post()

S1:

S3:

S2:

[FMCAD 2010]

Page 5: Parallel Recursive State Compression for Free

12/7/2011 5

PROPERTIES OF THE LOCKLESS HASH TABLEMOTIVATION

Parallel Recursive State Compression for Free

• Monotonically growing (no remove() operation)

• find_or_put(vector) : boolean

• Without resizing

• Avoid scalability problem

• Stable indices: find_or_put(vector) : (index, boolean)

• Fixed-sized integer vectors (limitation of LTSmin)

Page 6: Parallel Recursive State Compression for Free

12/7/2011 6

MEMORY BECOMES THE PROBLEM (AGAIN)MOTIVATION

Parallel Recursive State Compression for Free

• The hash set has to store up to 10^9 state vectors of length up to 1 kbyte

• With 16 cores: 1GB/sec of new state vectors

• In asynchronous systems, transitions are typically local:

• States are very similar

Solution:

• Compress the DB

Cf. COLLAPSE in SPIN

• Exploit locality with incremental algorithms

++++++------+---------++-------+------------------+-+----++++++------+---------------------++--+++------------++-----------------++--------+--------++-----------+-----++--------------+--++-----------------+-+-------+--------+-++---------+-----+-++------------+--+-++---+-----------+-+-

Page 7: Parallel Recursive State Compression for Free

• Motivation

• Previous work

• Problem Description

• Background

• Tree Compression

• Contribution

• Concurrent Tree Compression

• An Incremental Algorithm

• Analysis of Compression Ratios

• Experiments

• Conclusion / Future Work

12/7/2011Parallel Recursive State Compression for Free 7

OVERVIEW

Page 8: Parallel Recursive State Compression for Free

12/7/2011 8

MEMORY-EFFICIENT STORAGEBACKGROUND

Parallel Recursive State Compression for Free

Page 9: Parallel Recursive State Compression for Free

12/7/2011 9

TREE COMPRESSIONBACKGROUND

Parallel Recursive State Compression for Free

Store a table of vectors as a fixed-shaped tree of tables with tuples

Page 10: Parallel Recursive State Compression for Free

12/7/2011 10

TREE COMPRESSIONBACKGROUND

Parallel Recursive State Compression for Free

Page 11: Parallel Recursive State Compression for Free

12/7/2011 11

TREE COMPRESSION ALGORITHMBACKGROUND

Parallel Recursive State Compression for Free

returns (index, bool)

Used before in distributed model checking – Blom et al.

Page 12: Parallel Recursive State Compression for Free

12/7/2011Parallel Recursive State Compression for Free 12

CONFLICTING REQUIREMENTSPROBLEM DESCRIPTION

Goal: scalable concurrent tree database

Unknown table sizes requires resizing breaks stable indices

Page 13: Parallel Recursive State Compression for Free

• Motivation

• Previous work

• Problem Description

• Background

• Tree Compression

• Contribution

• Concurrent Tree Compression

• An Incremental Algorithm

• Analysis of Compression Ratios

• Experiments

• Conclusion / Future Work

12/7/2011Parallel Recursive State Compression for Free 13

OVERVIEW

Page 14: Parallel Recursive State Compression for Free

12/7/2011Parallel Recursive State Compression for Free 14

INTRODUCE MAXIMAL SHARINGCONCURRENT TREE COMPRESSION

Idea: Merge all hash tables into a single non-resizing hash table.

This maintains an injection Tk : Natk Nat

T2(4,1) = 1

T6(3,5,5,4,1,3) = 7

T3(4,1,3) = 4

Page 15: Parallel Recursive State Compression for Free

12/7/2011Parallel Recursive State Compression for Free 15

INTRODUCE MAXIMAL SHARINGCONCURRENT TREE COMPRESSION

Idea: Merge all hash tables into a single non-resizing hash table.

Problem: T6 (….) = T2 (3,5)

Page 16: Parallel Recursive State Compression for Free

12/7/2011Parallel Recursive State Compression for Free 16

INTRODUCE MAXIMAL SHARINGCONCURRENT TREE COMPRESSION

Solution: add an isRoot tag to nodes

For correct boolean result

Page 17: Parallel Recursive State Compression for Free

12/7/2011 17

THE ALGORITHMCONCURRENT TREE COMPRESSION

Parallel Recursive State Compression for Free

Page 18: Parallel Recursive State Compression for Free

12/7/2011Parallel Recursive State Compression for Free 18

INCREMENTAL TREE INSERTIONCONCURRENT TREE COMPRESSION

Hash table

vs

Tree

1 (random) memory access of k integers (k-1) (random)

accesses of two integers

Next problem:

Page 19: Parallel Recursive State Compression for Free

12/7/2011 19

INCREMENTAL TREE INSERTIONCONCURRENT TREE COMPRESSION

Parallel Recursive State Compression for Free

Exploits locality (log2(k) accesses in many cases)

post( ) =

Page 20: Parallel Recursive State Compression for Free

• Motivation

• Previous work

• Problem Description

• Background

• Tree Compression

• Contribution

• Concurrent Tree Compression

• An Incremental Algorithm

• Analysis of Compression Ratios

• Experiments

• Conclusion / Future Work

12/7/2011Parallel Recursive State Compression for Free 20

OVERVIEW

Page 21: Parallel Recursive State Compression for Free

21

WORST AND BEST CASE INPUTSANALYSIS OF COMPRESSION RATIOS

Parallel Recursive State Compression for Free

Inputs Tuples in tree nodes Ratio

Worst case:

Best case:

k

n

Page 22: Parallel Recursive State Compression for Free

12/7/2011 22

MEMORY USAGEEXPERIMENTS

Parallel Recursive State Compression for Free

[BEEM database]

Page 23: Parallel Recursive State Compression for Free

12/7/2011 23

MEMORY USAGEEXPERIMENTS

Parallel Recursive State Compression for Free

• Always compression with tree

• In most cases, compression is

close to optimal (see median)

• Always higher ratios than

COLLAPSE

10 100 10000.01

0.10

1.00

10.00

SPIN COL-LAPSETree com-pressionoptimal 8/kmedian 9.6/k

state length (byte)

co

mp

res

se

d r

ati

o (

by

te)

Page 24: Parallel Recursive State Compression for Free

12/7/2011 24

RUNTIMES COMPARED TO HASH TABLEEXPERIMENTS

Parallel Recursive State Compression for Free

0.05 0.50 5.00 50.00 500.000.05

0.50

5.00

50.00

500.00Sequential runtime (sec)16 core runtime (sec)x = y

Hash table (sec)

Tre

e (

se

c)

• Performance close to HT

• Due to incremental algorithm

Page 25: Parallel Recursive State Compression for Free

12/7/2011 25

SCALABILITY EXPERIMENTS (AGGREGATE SPEEDUPS)EXPERIMENTS

Parallel Recursive State Compression for Free

Page 26: Parallel Recursive State Compression for Free

With paying careful attention to data layout, we designed a parallel on-

the-fly compression method, that features:

• Impressive compression ratios

• Good performance/scalability

• For the full BEEM benchmark database

12/7/2011Parallel Recursive State Compression for Free 26

CONCLUSION

Page 27: Parallel Recursive State Compression for Free

12/7/2011Parallel Recursive State Compression for Free 27

FUTURE WORK

Support dynamic-sized vectors

Overcome hardware limitations (2 billion vectors due to CAS)

use compact hash table (Cleary)

Static reordering of vector slots to improve compression ratios

Also Multi-Core LTL Model Checking (ATVA 2011 / PDMC 14:00)

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

Page 28: Parallel Recursive State Compression for Free

12/7/2011Parallel Recursive State Compression for Free 28

AN INTUITIONANALYSIS OF COMPRESSION RATIOS