Lazy Parallel Kronecker Algebra-Operations on Heterogeneous Multicores

  title={Lazy Parallel Kronecker Algebra-Operations on Heterogeneous Multicores},
  author={Wasuwee Sodsong and Robert Mittermayr and Yoojin Park and Bernd Burgstaller and Johann Blieberger},
Kronecker algebra is a matrix calculus which allows the generation of thread interleavings from the source-code of a program. Thread interleavings have been shown effective for proving the absence of deadlocks. Because the number of interleavings grows exponentially in the number of threads, deadlock analysis is still a challenging problem. 


Kronecker Algebra for Static Analysis of Barriers in Ada
It turns out that the existing Kronecker algebra implementation completely unmodified is able to be used for concurrent program graphs using such barrier synchronization primitives.
Shared Memory Concurrent System Verification using Kronecker Algebra
It is proved that CPGs in general can be represented by sparse adjacency matrices and the structure of the matrices can be used to prove properties of the underlying program for an arbitrary number of threads, including deadlock freedom.
Deadlock and WCET analysis of barrier-synchronized concurrent programs
It turns out that the existing Kronecker algebra implementation completely unmodified can be used for concurrent program graphs using such barrier synchronization primitives, and a static WCET technique is extended such that the authors' barrier synchronization primitive is supported.
Static Partial-Order Reduction of Concurrent Systems in Polynomial Time
We present an algorithm for attacking the state explosion problem in analyzing multithreaded programs. Our approach employs partial-order reduction and static virtual coarsening. It uses information
Timing Analysis of Concurrent Programs
A suitable graph model for timing analysis of multi-threaded software has been set up and it turns out that often only very small parts of the resulting graph are actually needed, whereas the rest is unreachable.
Kronecker Algebra-based Deadlock Analysis in the Linux Kernel
A static analysis for C-code to detect deadlocks in the Linux kernel due to erroneous use of spinlocks using Kronecker algebra is described, showing that spinlocks which can be shown to adhere to a given locking hierarchy are irrelevant for deadlock detection.
The Design of a Multicore Extension of the SPIN Model Checker
The extensions discussed here require only relatively small changes in the SPIN source code and are compatible with most existing verification modes such as partial order reduction, the verification of temporal logic formulas, bitstate hashing, and hash-compact compression.
Towards a GPGPU-parallel SPIN model checker
This work shows how the 2012 multicore CPU-parallel state-space exploration algorithm of the SPIN model checker can be re-engineered to take advantage of the unique parallel-processing capabilities of the GPGPU architecture, and demonstrates how to overcome the non-trivial design obstacles presented by this task.
Algorithmic improvements for fast concurrent Cuckoo hashing
The design, implementation, and evaluation of a high-throughput and memory-efficient concurrent hash table that supports multiple readers and writers is presented, and performance results demonstrate that the new hash table design, based around optimistic cuckoo hashing, outperforms other optimized concurrent hash tables by up to 2.5x for write-heavy workloads, even while using substantially less memory for small key-value items.
Efficient Computation and Representation of Large Reachability Sets for Composed Automata
The combination of the proposed techniques yields an approach suitable for extremely large state spaces, which are represented in a space-efficient way and generated and analyzed with low effort.