GPU-OSDDA: a bit-vector GPU-based deadlock detection algorithm for single-unit resource systems

This article presents a GPU-based single-unit deadlock detection methodology and its algorithm, GPU-OSDDA. Our GPU-based design utilizes parallel hardware of GPU to perform computations and thus is able to overcome the major limitation of prior hardware-based approaches by having the capability of handling thousands of processes and resources, whilst achieving real-world run-times. By utilizing a bit-vector technique for storing algorithm matrices and designing novel, efficient algorithmic methods, we not only reduce memory usage dramatically but also achieve two orders of magnitude speedup over CPU equivalents. Additionally, GPU-OSDDA acts as an interactive service to the CPU, because all of the aforementioned computations and matrix management techniques take place on the GPU, requiring minimal interaction with the CPU. GPU-OSDDA is implemented on three GPU cards: Tesla C2050, Tesla K20c, and Titan X. Our design shows overall speedups of 6-595X over CPU equivalents.

[1]  Jaehwan John Lee,et al.  A novel O(1) parallel deadlock detection algorithm and architecture for multi-unit resource systems , 2007, 2007 25th International Conference on Computer Design.

[2]  Henry S. Warren,et al.  Hacker's Delight , 2002 .

[3]  Mamoru Maekawa,et al.  Operating Systems: Advanced Concepts , 1987 .

[4]  Jaehwan John Lee,et al.  A Novel Parallel Deadlock Detection Algorithm and Hardware for Multiprocessor System-on-a-Chip , 2007, IEEE Computer Architecture Letters.

[5]  Kern Koh,et al.  A 0(1) Time Deadlock Detection Scheme in a Single Unit and Single Request Multiprocessor System , 1991, TENCON '91. Region 10 International Conference on EC3-Energy, Computer, Communication and Control Systems.

[6]  Ju Gyun Kim An algorithmic approach on deadlock detection for enhanced parallelism in multiprocessing systems , 1997, Proceedings of IEEE International Symposium on Parallel Algorithms Architecture Synthesis.

[7]  Jaehwan John Lee,et al.  A True O(1) Parallel Deadlock Detection Algorithm for Single-Unit Resource Systems and Its Hardware Implementation , 2010, IEEE Transactions on Parallel and Distributed Systems.

[8]  Richard C. Holt,et al.  Some deadlock properties of computer systems , 1971, SOSP '71.

[9]  Jaehwan John Lee,et al.  A parallel multi-unit resource deadlock detection algorithm with O(log2/min(m, n))) overall run-time complexity , 2011, J. Parallel Distributed Comput..

[10]  T. F. Leibfried A deadlock detection and recovery algorithm using the formalism of a directed graph matrix , 1989, OPSR.

[11]  Yudong Tan,et al.  A novel parallel deadlock detection algorithm and architecture , 2001, Ninth International Symposium on Hardware/Software Codesign. CODES 2001 (IEEE Cat. No.01TH8571).

[12]  Jaehwan John Lee,et al.  A Novel O(1) Deadlock Detection Methodology for Multiunit Resource Systems and Its Hardware Implementation for System-on-Chip , 2008, IEEE Transactions on Parallel and Distributed Systems.

[13]  Robert Hochberg,et al.  Matrix Multiplication with CUDA – A basic introduction to the CUDA programming model , 2012 .

[14]  Arie Shoshani Detection, prevention and recovery from deadlocks in multiprocess multiple resource systems , 1969 .