Recursive Variable-Length State Compression for Multi-Core Software Model Checking

07/23/2020
by   Freark I. van der Berg, et al.
0

High-performance multi-core software typically uses concurrent data structures. Tests for such data structures have significantly smaller state spaces than the entire software, making it feasible to model check them. However, dynamic memory allocations on the heap complicate the use of standard fixed-length state vectors. In this paper, we introduce dtree, a concurrent compression tree data structure that compactly stores variable-length states while allowing partial state reconstruction and incremental updates without concretising states. It supports describing a state as a tree, allowing direct modeling of the heap. We implemented dtree in DMC, our multi-core model checker. We show that its performance approaches that of state-of-the-art model checkers for fixed-length states. For models with variable-length states, dtree is up to 2.9 times faster.

READ FULL TEXT

page 7

page 8

research
09/03/2017

Faster Concurrent Range Queries with Contention Adapting Search Trees Using Immutable Data

The need for scalable concurrent ordered set data structures with linear...
research
08/17/2022

Performance Anomalies in Concurrent Data Structure Microbenchmarks

Recent decades have witnessed a surge in the development of concurrent d...
research
03/16/2020

Adapting Persistent Data Structures for Concurrency and Speculation

This work unifies insights from the systems and functional programming c...
research
12/19/2022

PathCAS: An Efficient Middle Ground for Concurrent Search Data Structures

To maximize the performance of concurrent data structures, researchers h...
research
12/15/2022

Forgetful Forests: high performance learning data structures for streaming data under concept drift

Database research can help machine learning performance in many ways. On...
research
06/21/2011

Accelerating Lossless Data Compression with GPUs

Huffman compression is a statistical, lossless, data compression algorit...
research
11/25/2017

A Language for Probabilistically Oblivious Computation

An oblivious computation is one that is free of direct and indirect info...

Please sign up or login with your details

Forgot password? Click here to reset