Lazy Parallel Kronecker Algebra-Operations on Heterogeneous Multicores
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.
To make the computation of thread interleavings tractable, we propose a lazy, parallel evaluation method for Kronecker algebra. Our method incorporates the constraints induced by synchronization constructs. To reduce problem size, only interleavings legal under the locking behavior of a program are considered. We leverage the data-parallelism of Kronecker sum- and product-operations for multicores and GPUs. Proposed algebraic transformations further improve performance. For one synthetic and two real-world benchmarks, our GPU implementation is up to 5453\(\times \) faster than our multi-threaded version. Lazy evaluation significantly reduces memory consumption compared to both the sequential and the multicore versions of the SPIN model-checker.
KeywordsKronecker algebra Lazy evaluation Deadlock detection Heterogeneous multicores GPUs
This research was supported by the Austrian Science Fund (FWF) project I 1035N23, and by the Next-Generation Information Computing Development Program through the National Research Foundation of Korea (NRF), funded by the Ministry of Science, ICT & Future Planning under grant NRF2015M3C4A7065522.
- 1.Bartocci, E., DeFrancisco, R., Smolka, S.A.: Towards a GPGPU-parallel SPIN model checker. In: 2014 International SPIN Symposium on Model Checking of Software, pp. 87–96. ACM (2014)Google Scholar
- 3.Burgstaller, B., Blieberger, J.: Kronecker algebra for static analysis of Ada programs with protected objects. In: Ada-Europe International Conference on Reliable Software Technologies, vol. 8454, pp. 27–42 (2014)Google Scholar
- 8.Li, X., Andersen, D.G., Kaminsky, M., Freedman, M.J.: Algorithmic improvements for fast concurrent cuckoo hashing. In: Proceedings of the Ninth European Conference on Computer Systems, EuroSys 2014. ACM (2014)Google Scholar
- 10.Mittermayr, R., Blieberger, J.: Shared memory concurrent system verification using Kronecker algebra. Technical report 183/1-155, TU Vienna. http://arxiv.org/abs/1109.5522 (Sept 2011)
- 11.Mittermayr, R., Blieberger, J.: Timing analysis of concurrent programs. In: 12th International Workshop on Worst-Case Execution Time Analysis, pp. 59–68 (2012)Google Scholar
- 13.Mittermayr, R., Blieberger, J.: Deadlock and WCET analysis of barrier-synchronized concurrent programs. Computing pp. 1–22 (2017)Google Scholar
- 14.Mittermayr, R., Blieberger, J., Schöbel, A.: Kronecker algebra-based deadlock analysis for railway systems. PROMET-Traffic Transp. 24(5), 359–369 (2012)Google Scholar
- 15.Park, Y.: Kronecker algebra-based deadlock analysis in the Linux kernel. Technical report, Yonsei University. http://elc.yonsei.ac.kr/publications/KernelDeadlockAnalysis.pdf
- 16.Plateau, B.: On the stochastic structure of parallelism and synchronization models for distributed algorithms. In: ACM SIGMETRICS, vol. 13, pp. 147–154 (1985)Google Scholar