SlideShare a Scribd company logo
K. Kie, S. Hallé
Kun Xie and Sylvain Hallé
Université du Québec à Chicoutimi
CANADA
Offline Monitoring of LTL
with Bit Vectors
CRSNG
NSERC
ACM Symposium on Applied Computing, March 24th, 2021
K. Kie, S. Hallé
What is runtime monitoring?
K. Kie, S. Hallé
What is runtime monitoring?
System
K. Kie, S. Hallé
What is runtime monitoring?
System
K. Kie, S. Hallé
What is runtime monitoring?
System
Instrumentation
K. Kie, S. Hallé
What is runtime monitoring?
System
Instrumentation
K. Kie, S. Hallé
What is runtime monitoring?
System
Instrumentation
Trace
K. Kie, S. Hallé
What is runtime monitoring?
System
Instrumentation
Trace
Events
K. Kie, S. Hallé
What is runtime monitoring?
System
Instrumentation
Trace
Events
K. Kie, S. Hallé
What is runtime monitoring?
System
Instrumentation
Trace
Events
Monitoring
K. Kie, S. Hallé
What is runtime monitoring?
Runtime monitoring is the process of observing an
actual run of a system and checking constraints on
its execution
Monitor
Verifies that
sequence of
events follows
specification
System
Event
Event
. . .
}
The execution of
the system
produces events
Specification
Gives conditions on
events and
sequences of events
allowed to happen
K. Kie, S. Hallé
p
p
now
p
p
now
q
G p
F p
X p
p U q
now
now
Semantics of LTL operators
"Globally"
"Eventually"
"Next"
"Until"
K. Kie, S. Hallé
Semantics of LTL operators
A call to next must be followed by a call
to hasNext
No CartCreate request can occur
before a LoginResponse message
A received order must eventually
be shipped
Three successive login attempts should
trigger an alarm
G (next → X hasNext)
¬ CartCreate U hasNext
G (receive → F ship)
G ¬(fail ∧ (X (fail ∧ X fail)))
K. Kie, S. Hallé
M
Classical LTL monitoring
K. Kie, S. Hallé
M
Classical LTL monitoring
K. Kie, S. Hallé
M
Classical LTL monitoring
A
e
K. Kie, S. Hallé
M
Classical LTL monitoring
A
e
S
s
X
K. Kie, S. Hallé
M
Classical LTL monitoring
A
e
S
s
X
s
’
s
’
K. Kie, S. Hallé
M
Classical LTL monitoring
A
e
S
s
X
s
’
s
’
K. Kie, S. Hallé
M
Classical LTL monitoring
A
e
S
s
X
s
’
s
’
2
1
3
4
5
The trace must be read linearly
K. Kie, S. Hallé
Each event is encoded by a set of Boolean
variables; each variable can be either true or false
in each event.
Event sequences as bit vectors
We create one bit vector vx for each Boolean
variable x, with the property that vx[i] = 1 if and
only if x is true in event i.
101001...
va =
001100...
vb =
.
.
.
K. Kie, S. Hallé
Bit vectors for LTL formulas are built by combining
and manipulating bit vectors of simpler formulas.
Bit vector manipulations
101001...
va =
001100...
vb =
va∨b = va ⊕ vb
⊕
=
101101...
va∨b = Boolean
operators
are direct!
Example:
K. Kie, S. Hallé
For a formula φ, vφ[i] = 1 if and only if the
sequence starting at position i satisfies φ.
Intuition
How to deal with temporal operators?
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
φ
F φ
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
φ
F φ
1 0
1
START
END
START
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
φ
F φ
1 0
1
START
END
START
0
END
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
φ
F φ
1 0
1
START
END
START
0
END
φ
G φ
START
END
START
END
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
φ
F φ
1 0
1
START
END
START
0
END
φ
G φ
START
END
START
END
0 1
0 1
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
φ
F φ
1 0
1
START
END
START
0
END
φ
G φ
START
END
START
END
0 1
0 1
φ
φ U ψ
ψ
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
φ
F φ
1 0
1
START
END
START
0
END
φ
G φ
START
END
START
END
0 1
0 1
φ
φ U ψ
ψ
1
1
K. Kie, S. Hallé
Bitmap manipulations for LTL operators
φ
X φ
START
END
START
END
0
φ
F φ
1 0
1
START
END
START
0
END
φ
G φ
START
END
START
END
0 1
0 1
φ
φ U ψ
ψ
1
1
1
K. Kie, S. Hallé
Experimental evaluation
Goal: compare processing speed and memory
consumption between LTL bitmap evaluation and a
baseline
Sample of 50+ LTL formulas
Between 2 and 20 operators
Nesting depth between 2 and 11
Evaluated on traces of 1M events
Reference:
Event stream processing library
Front-end accepting LTL formulas (Polyglot)
Hallé & Khoury, RV 2018
10.1007/978-3-030-03769-7_27
K. Kie, S. Hallé
LTL in BeepBeep
f
→
=?
a
1
2
f
∧
=?
b
1
2
¬
X
f
=?
c
1
U
f
=?
d
1
a → (¬ (b ∧ X c) U d)
S. Hallé. (2018). Event Stream Processing with BeepBeep 3, chapter 5.
ISBN 978-2-7605-5102-2
K. Kie, S. Hallé
1.6x106
1.8x106
2x106
2.2x106
2.4x106
2.6x106
2.8x106
3x106
3.2x106
3.4x106
3.6x106
0 5 10 15 20 25
Throughput
(Hz)
Formula size
0
500000
1x106
1.5x106
2x106
2.5x106
3x106
0 5 10 15 20 25
Throughput
(Hz)
Formula size
Raw bit vectors BeepBeep 3
Throughput comparison
K. Kie, S. Hallé
1.6x106
1.8x106
2x106
2.2x106
2.4x106
2.6x106
2.8x106
3x106
3.2x106
3.4x106
3.6x106
0 5 10 15 20 25
Throughput
(Hz)
Formula size
0
500000
1x106
1.5x106
2x106
2.5x106
3x106
0 5 10 15 20 25
Throughput
(Hz)
Formula size
Raw bit vectors BeepBeep 3
Throughput comparison
K. Kie, S. Hallé
0 5 10 15 20 25
Throughput
(Hz)
Formula size
0
500000
1x106
1.5x106
2x106
2.5x106
3x106
0 5 10 15 20 25
Throughput
(Hz)
Formula size
Raw bit vectors BeepBeep 3
500000
1x106
1.5x106
2x106
2.5x106
3x106
Throughput comparison
K. Kie, S. Hallé
Formula S01 Formula S02
Memory consumption
0
200000
400000
600000
800000
1x106
1.2x106
1.4x106
1.6x106
1.8x106
200000 300000 400000 500000 600000 700000 800000 900000 1x106
Memory
(B)
Trace length
EWAH64
Roaring
Concise
Raw
BeepBeep
EWAH32
WAH
0
2x106
4x106
6x106
8x106
1x107
1.2x107
1.4x107
1.6x107
1.8x107
2x107
2.2x107
200000 300000 400000 500000 600000 700000 800000 900000 1x106
Memory
(B)
Trace length
EWAH64
Roaring
Concise
Raw
BeepBeep
EWAH32
WAH
K. Kie, S. Hallé
Formula S01 Formula S02
Memory consumption
0
200000
400000
600000
800000
1x106
1.2x106
1.4x106
1.6x106
1.8x106
200000 300000 400000 500000 600000 700000 800000 900000 1x106
Memory
(B)
Trace length
EWAH64
Roaring
Concise
Raw
BeepBeep
EWAH32
WAH
0
2x106
4x106
6x106
8x106
1x107
1.2x107
1.4x107
1.6x107
1.8x107
2x107
2.2x107
200000 300000 400000 500000 600000 700000 800000 900000 1x106
Memory
(B)
Trace length
EWAH64
Roaring
Concise
Raw
BeepBeep
EWAH32
WAH
(¬(X (X ((G f) ∧ (X ((!a) ∨ d)))))) → ((X i) ∧ (X (i → e)))
K. Kie, S. Hallé
Formula S01 Formula S02
Memory consumption
0
200000
400000
600000
800000
1x106
1.2x106
1.4x106
1.6x106
1.8x106
200000 300000 400000 500000 600000 700000 800000 900000 1x106
Memory
(B)
Trace length
EWAH64
Roaring
Concise
Raw
BeepBeep
EWAH32
WAH
0
2x106
4x106
6x106
8x106
1x107
1.2x107
1.4x107
1.6x107
1.8x107
2x107
2.2x107
200000 300000 400000 500000 600000 700000 800000 900000 1x106
Memory
(B)
Trace length
EWAH64
Roaring
Concise
Raw
BeepBeep
EWAH32
WAH
(¬(X (X ((G f) ∧ (X ((!a) ∨ d)))))) → ((X i) ∧ (X (i → e)))
((X (g → b)) ∧ ((¬g) → ((¬(X (X (G (F (b ∧ c)))))) → f)))
∨ (F ((G (F (X g))) → ((¬(c ∨ g)) → (e ∨ (G (¬a))))))
K. Kie, S. Hallé
Upsides:
Take-home points
Bit vector manipulations can be done on
multiple bits at a time (32 or 64): parallelism
"for free"
Leverages quasi-random access to vector
elements
Implementation incurs a speed-up over linear
BeepBeep of up to 10x
Future work:
Only works offline
How to deal with more expressive logics (e.g.
LTL-FO+)?

More Related Content

PDF
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
PDF
PPTX
Theory of Automata and formal languages unit 2
PDF
Value Function Geometry and Gradient TD
PDF
Chapter05
PDF
Chapter02b
PDF
Chapter03b
PPTX
Otter 2016-11-28-01-ss
Test Sequence Generation with Cayley Graphs (Talk @ A-MOST 2021)
Theory of Automata and formal languages unit 2
Value Function Geometry and Gradient TD
Chapter05
Chapter02b
Chapter03b
Otter 2016-11-28-01-ss

Similar to Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021) (20)

PDF
A MuDDy Experience - ML Bindings to a BDD Library
PDF
A MuDDy Experience - ML Bindings to a BDD Library
PDF
A Stream-Based Approach to Intrusion Detection
PPT
lecture12_densela_1_jwd16.ppt
PDF
Event Stream Processing with BeepBeep 3
PDF
Doppl development iteration #5
PDF
PDF
A x86-optimized rank&select dictionary for bit sequences
PDF
A formalization of complex event stream processing
PDF
Sage tutorial
PDF
Digital electronics(EC8392) unit- 1-Sesha Vidhya S/ ASP/ECE/RMKCET
PDF
Distinguishing the signal from noise in an SVD of simulation data
PPTX
Data types and Operators
PPT
lections tha detail aboot andom nummerss
DOC
NET_Solved ans
PDF
Computer network (8)
PPTX
Integer security analysis using smt solver
PPT
computer system architecture for control system.ppt
PDF
digital fundamental by Thomas L.floydl.pdf
A MuDDy Experience - ML Bindings to a BDD Library
A MuDDy Experience - ML Bindings to a BDD Library
A Stream-Based Approach to Intrusion Detection
lecture12_densela_1_jwd16.ppt
Event Stream Processing with BeepBeep 3
Doppl development iteration #5
A x86-optimized rank&select dictionary for bit sequences
A formalization of complex event stream processing
Sage tutorial
Digital electronics(EC8392) unit- 1-Sesha Vidhya S/ ASP/ECE/RMKCET
Distinguishing the signal from noise in an SVD of simulation data
Data types and Operators
lections tha detail aboot andom nummerss
NET_Solved ans
Computer network (8)
Integer security analysis using smt solver
computer system architecture for control system.ppt
digital fundamental by Thomas L.floydl.pdf
Ad

More from Sylvain Hallé (20)

PDF
A Tree-Based Definition of Business Process Conformance (Talk @ EDOC 2024)
PDF
Monitoring Business Process Compliance Across Multiple Executions with Stream...
PDF
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
PDF
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
PDF
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
PDF
A Generic Explainability Framework for Function Circuits
PDF
Detecting Responsive Web Design Bugs with Declarative Specifications
PDF
Streamlining the Inclusion of Computer Experiments in Research Papers
PDF
Writing Domain-Specific Languages for BeepBeep
PDF
Real-Time Data Mining for Event Streams
PDF
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
PDF
Mining event streams with BeepBeep 3
PDF
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
PDF
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
PDF
Event Stream Processing with Multiple Threads
PDF
A Few Things We Heard About RV Tools (Position Paper)
PDF
Solving Equations on Words with Morphisms and Antimorphisms
PDF
Runtime monitoring de propriétés temporelles par (streaming) XML
PDF
La quantification du premier ordre en logique temporelle
PDF
When RV Meets CEP (RV 2016 Tutorial)
A Tree-Based Definition of Business Process Conformance (Talk @ EDOC 2024)
Monitoring Business Process Compliance Across Multiple Executions with Stream...
Smart Contracts-Enabled Simulation for Hyperconnected Logistics
Test Suite Generation for Boolean Conditions with Equivalence Class Partitioning
Synthia: a Generic and Flexible Data Structure Generator (Long Version)
A Generic Explainability Framework for Function Circuits
Detecting Responsive Web Design Bugs with Declarative Specifications
Streamlining the Inclusion of Computer Experiments in Research Papers
Writing Domain-Specific Languages for BeepBeep
Real-Time Data Mining for Event Streams
Technologies intelligentes d'aide au développement d'applications web (WAQ 2018)
Mining event streams with BeepBeep 3
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
Event Stream Processing with Multiple Threads
A Few Things We Heard About RV Tools (Position Paper)
Solving Equations on Words with Morphisms and Antimorphisms
Runtime monitoring de propriétés temporelles par (streaming) XML
La quantification du premier ordre en logique temporelle
When RV Meets CEP (RV 2016 Tutorial)
Ad

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Cloud computing and distributed systems.
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Machine learning based COVID-19 study performance prediction
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Electronic commerce courselecture one. Pdf
Approach and Philosophy of On baking technology
Dropbox Q2 2025 Financial Results & Investor Presentation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Digital-Transformation-Roadmap-for-Companies.pptx
Cloud computing and distributed systems.
Reach Out and Touch Someone: Haptics and Empathic Computing
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Machine learning based COVID-19 study performance prediction
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Programs and apps: productivity, graphics, security and other tools
20250228 LYD VKU AI Blended-Learning.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Chapter 3 Spatial Domain Image Processing.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Spectral efficient network and resource selection model in 5G networks
Electronic commerce courselecture one. Pdf

Efficient Offline Monitoring of LTL with Bit Vectors (Talk at SAC 2021)

  • 1. K. Kie, S. Hallé Kun Xie and Sylvain Hallé Université du Québec à Chicoutimi CANADA Offline Monitoring of LTL with Bit Vectors CRSNG NSERC ACM Symposium on Applied Computing, March 24th, 2021
  • 2. K. Kie, S. Hallé What is runtime monitoring?
  • 3. K. Kie, S. Hallé What is runtime monitoring? System
  • 4. K. Kie, S. Hallé What is runtime monitoring? System
  • 5. K. Kie, S. Hallé What is runtime monitoring? System Instrumentation
  • 6. K. Kie, S. Hallé What is runtime monitoring? System Instrumentation
  • 7. K. Kie, S. Hallé What is runtime monitoring? System Instrumentation Trace
  • 8. K. Kie, S. Hallé What is runtime monitoring? System Instrumentation Trace Events
  • 9. K. Kie, S. Hallé What is runtime monitoring? System Instrumentation Trace Events
  • 10. K. Kie, S. Hallé What is runtime monitoring? System Instrumentation Trace Events Monitoring
  • 11. K. Kie, S. Hallé What is runtime monitoring? Runtime monitoring is the process of observing an actual run of a system and checking constraints on its execution Monitor Verifies that sequence of events follows specification System Event Event . . . } The execution of the system produces events Specification Gives conditions on events and sequences of events allowed to happen
  • 12. K. Kie, S. Hallé p p now p p now q G p F p X p p U q now now Semantics of LTL operators "Globally" "Eventually" "Next" "Until"
  • 13. K. Kie, S. Hallé Semantics of LTL operators A call to next must be followed by a call to hasNext No CartCreate request can occur before a LoginResponse message A received order must eventually be shipped Three successive login attempts should trigger an alarm G (next → X hasNext) ¬ CartCreate U hasNext G (receive → F ship) G ¬(fail ∧ (X (fail ∧ X fail)))
  • 14. K. Kie, S. Hallé M Classical LTL monitoring
  • 15. K. Kie, S. Hallé M Classical LTL monitoring
  • 16. K. Kie, S. Hallé M Classical LTL monitoring A e
  • 17. K. Kie, S. Hallé M Classical LTL monitoring A e S s X
  • 18. K. Kie, S. Hallé M Classical LTL monitoring A e S s X s ’ s ’
  • 19. K. Kie, S. Hallé M Classical LTL monitoring A e S s X s ’ s ’
  • 20. K. Kie, S. Hallé M Classical LTL monitoring A e S s X s ’ s ’ 2 1 3 4 5 The trace must be read linearly
  • 21. K. Kie, S. Hallé Each event is encoded by a set of Boolean variables; each variable can be either true or false in each event. Event sequences as bit vectors We create one bit vector vx for each Boolean variable x, with the property that vx[i] = 1 if and only if x is true in event i. 101001... va = 001100... vb = . . .
  • 22. K. Kie, S. Hallé Bit vectors for LTL formulas are built by combining and manipulating bit vectors of simpler formulas. Bit vector manipulations 101001... va = 001100... vb = va∨b = va ⊕ vb ⊕ = 101101... va∨b = Boolean operators are direct! Example:
  • 23. K. Kie, S. Hallé For a formula φ, vφ[i] = 1 if and only if the sequence starting at position i satisfies φ. Intuition How to deal with temporal operators?
  • 24. K. Kie, S. Hallé Bitmap manipulations for LTL operators
  • 25. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ
  • 26. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END
  • 27. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START
  • 28. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0
  • 29. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0 φ F φ
  • 30. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0 φ F φ 1 0 1 START END START
  • 31. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0 φ F φ 1 0 1 START END START 0 END
  • 32. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0 φ F φ 1 0 1 START END START 0 END φ G φ START END START END
  • 33. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0 φ F φ 1 0 1 START END START 0 END φ G φ START END START END 0 1 0 1
  • 34. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0 φ F φ 1 0 1 START END START 0 END φ G φ START END START END 0 1 0 1 φ φ U ψ ψ
  • 35. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0 φ F φ 1 0 1 START END START 0 END φ G φ START END START END 0 1 0 1 φ φ U ψ ψ 1 1
  • 36. K. Kie, S. Hallé Bitmap manipulations for LTL operators φ X φ START END START END 0 φ F φ 1 0 1 START END START 0 END φ G φ START END START END 0 1 0 1 φ φ U ψ ψ 1 1 1
  • 37. K. Kie, S. Hallé Experimental evaluation Goal: compare processing speed and memory consumption between LTL bitmap evaluation and a baseline Sample of 50+ LTL formulas Between 2 and 20 operators Nesting depth between 2 and 11 Evaluated on traces of 1M events Reference: Event stream processing library Front-end accepting LTL formulas (Polyglot) Hallé & Khoury, RV 2018 10.1007/978-3-030-03769-7_27
  • 38. K. Kie, S. Hallé LTL in BeepBeep f → =? a 1 2 f ∧ =? b 1 2 ¬ X f =? c 1 U f =? d 1 a → (¬ (b ∧ X c) U d) S. Hallé. (2018). Event Stream Processing with BeepBeep 3, chapter 5. ISBN 978-2-7605-5102-2
  • 39. K. Kie, S. Hallé 1.6x106 1.8x106 2x106 2.2x106 2.4x106 2.6x106 2.8x106 3x106 3.2x106 3.4x106 3.6x106 0 5 10 15 20 25 Throughput (Hz) Formula size 0 500000 1x106 1.5x106 2x106 2.5x106 3x106 0 5 10 15 20 25 Throughput (Hz) Formula size Raw bit vectors BeepBeep 3 Throughput comparison
  • 40. K. Kie, S. Hallé 1.6x106 1.8x106 2x106 2.2x106 2.4x106 2.6x106 2.8x106 3x106 3.2x106 3.4x106 3.6x106 0 5 10 15 20 25 Throughput (Hz) Formula size 0 500000 1x106 1.5x106 2x106 2.5x106 3x106 0 5 10 15 20 25 Throughput (Hz) Formula size Raw bit vectors BeepBeep 3 Throughput comparison
  • 41. K. Kie, S. Hallé 0 5 10 15 20 25 Throughput (Hz) Formula size 0 500000 1x106 1.5x106 2x106 2.5x106 3x106 0 5 10 15 20 25 Throughput (Hz) Formula size Raw bit vectors BeepBeep 3 500000 1x106 1.5x106 2x106 2.5x106 3x106 Throughput comparison
  • 42. K. Kie, S. Hallé Formula S01 Formula S02 Memory consumption 0 200000 400000 600000 800000 1x106 1.2x106 1.4x106 1.6x106 1.8x106 200000 300000 400000 500000 600000 700000 800000 900000 1x106 Memory (B) Trace length EWAH64 Roaring Concise Raw BeepBeep EWAH32 WAH 0 2x106 4x106 6x106 8x106 1x107 1.2x107 1.4x107 1.6x107 1.8x107 2x107 2.2x107 200000 300000 400000 500000 600000 700000 800000 900000 1x106 Memory (B) Trace length EWAH64 Roaring Concise Raw BeepBeep EWAH32 WAH
  • 43. K. Kie, S. Hallé Formula S01 Formula S02 Memory consumption 0 200000 400000 600000 800000 1x106 1.2x106 1.4x106 1.6x106 1.8x106 200000 300000 400000 500000 600000 700000 800000 900000 1x106 Memory (B) Trace length EWAH64 Roaring Concise Raw BeepBeep EWAH32 WAH 0 2x106 4x106 6x106 8x106 1x107 1.2x107 1.4x107 1.6x107 1.8x107 2x107 2.2x107 200000 300000 400000 500000 600000 700000 800000 900000 1x106 Memory (B) Trace length EWAH64 Roaring Concise Raw BeepBeep EWAH32 WAH (¬(X (X ((G f) ∧ (X ((!a) ∨ d)))))) → ((X i) ∧ (X (i → e)))
  • 44. K. Kie, S. Hallé Formula S01 Formula S02 Memory consumption 0 200000 400000 600000 800000 1x106 1.2x106 1.4x106 1.6x106 1.8x106 200000 300000 400000 500000 600000 700000 800000 900000 1x106 Memory (B) Trace length EWAH64 Roaring Concise Raw BeepBeep EWAH32 WAH 0 2x106 4x106 6x106 8x106 1x107 1.2x107 1.4x107 1.6x107 1.8x107 2x107 2.2x107 200000 300000 400000 500000 600000 700000 800000 900000 1x106 Memory (B) Trace length EWAH64 Roaring Concise Raw BeepBeep EWAH32 WAH (¬(X (X ((G f) ∧ (X ((!a) ∨ d)))))) → ((X i) ∧ (X (i → e))) ((X (g → b)) ∧ ((¬g) → ((¬(X (X (G (F (b ∧ c)))))) → f))) ∨ (F ((G (F (X g))) → ((¬(c ∨ g)) → (e ∨ (G (¬a))))))
  • 45. K. Kie, S. Hallé Upsides: Take-home points Bit vector manipulations can be done on multiple bits at a time (32 or 64): parallelism "for free" Leverages quasi-random access to vector elements Implementation incurs a speed-up over linear BeepBeep of up to 10x Future work: Only works offline How to deal with more expressive logics (e.g. LTL-FO+)?