Lazy Parallel Kronecker Algebra-Operations on Heterogeneous Multicores

@inproceedings{Sodsong2017LazyPK,
  title={Lazy Parallel Kronecker Algebra-Operations on Heterogeneous Multicores},
  author={Wasuwee Sodsong and Robert Mittermayr and Yoojin Park and Bernd Burgstaller and Johann Blieberger},
  booktitle={Euro-Par},
  year={2017}
}
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. 

References

SHOWING 1-10 OF 15 REFERENCES
Kronecker Algebra for Static Analysis of Barriers in Ada
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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.
...
...