This Article 
 Bibliographic References 
 Add to: 
A Distributed Graph Algorithm for the Detection of Local Cycles and Knots
August 1998 (vol. 9 no. 8)
pp. 748-757

Abstract—In this paper, a distributed cycle/knot detection algorithm for general graphs is presented. The algorithm distinguishes between cycles and knots and is the first algorithm to our knowledge which does so. It is especially relevant to an application such as parallel simulation in which 1) cycles and knots can arise frequently, 2) the size of the graph is very large, and 3) it is necessary to know if a given node is in a cycle or a knot. It requires less communication than previous algorithms—2m vs. (at least) (4m) for the Chandy and Misra algorithm, where m is the number of links in the graph. It requires O (nlog (n)) bits of memory, where n is the number of nodes. The algorithm differs from the classical diffusing computation methods through its use of incomplete search messages to speed up the computation. We introduce a marking scheme in order to identify strongly connected subcomponents of the graph which cannot reach the initiator of the algorithm. This allows us to distinguish between the case in which the initiator is in a cycle (only) or is in a knot.

[1] A. Boukerche and C. Tropper, "Performance Analysis of Distributed Simulation with Clustered Processes," Proc. SCS Multiconf. Advances in Parallel and Distributed Simulation, pp. 112-120,Anaheim, Calif. Jan. 1991.
[2] A. Boukerche, C. Tropper, "An Efficient Distributed Cycle/Knot Detection Algorithm," Canadian Conf. Electrical and Computer Eng., IEEE '93, vol. 2, pp. 619-622,Vancouver, British Columbia, 1993.
[3] G. Bracha and S. Toueg, "A Distributed Algorithm for Generalized Deadlock Detection," Distributed Computing, 1987.
[4] K.M. Chandy and J. Misra, "A Distributed Graph Algorithm: Knot Detection," ACM Trans. Program Language Systems, vol. 4, pp. 678-686, Oct. 1982.
[5] K.M. Chandy, J. Misra, and L. Hass, "Distributed Deadlock," ACM Trans. Computer Systems, vol. 1, no. 2, pp. 144-156, May 1983.
[6] I. Cidon, "An Efficient Distributed Knot Detection Algorithm," IEEE Trans. Software Eng., vol. 15, no. 5, pp. 644-649, May 1989.
[7] C. Cote and C. Tropper, "On Distributed and Pseudosimulation," Proc. SCS Multiconf. Parallel and Distributed Simulation, vol. 24, no. 3, pp. 97-106, Jan. 1992.
[8] E.W. Dijkstra and C.S. Scholten, "Termintion Detection in Diffusing Computation," Information Processing Letters, vol. 11, no. 1, pp. 1-4, Aug. 1980.
[9] A.K. Elmagarmid, "A Survey of Distributed Deadlock Detection Algorithms," ACM SIGMOD Record, vol. 15, no. 3, pp. 37-45, Sept. 1986.
[10] D. Gligor and S.H. Shattack, "On Deadlock Detection in Distributed Systems," IEEE Trans. Software Eng., vol. 6, no 5, pp. 435-440, Sept. 1980.
[11] B. Groselj and C. Tropper, "Pseudosimulation: An Algorithm for Distributed Simulation," Int'l J. Parallel Programming, vol. 15, no. 5, 1987.
[12] B. Groselj and C. Tropper, "The Distributed Simulation of Clustered Processes," Distributed Computing, vol. 4, pp. 111-121, 1991.
[13] T. Herman and K.M. Chandy, "A Distributed Procedure to Detect AND/OR Deadlocks," Technical Report LCS-8301, Univ. of Texas, Austin, Feb. 1983.
[14] E. Knapp, "Deadlock Detection in Distributed databases Systems," ACM Computing Surveys, pp. 303-328, Dec. 1987.
[15] A.D. Kshemkalyani and M. Singhal, "Efficient Detection and Resolution of Generalized Distributed Deadlocks," IEEE Trans. Software Eng., vol. 20, no. 1, pp. 43-54, Jan. 1994.
[16] A.D. Kshemkalyani and M. Singhal, "Distributed Detection of Generalized Deadlocks," Proc. 17th Int'l Conf. Distributed Computing Systems, pp. 533-560, May 1997.
[17] L.Z. Liu and C. Tropper, "Local Deadlock Detection in Distributed Simulation," Proc. 1990 Distributed Simulation Conf., vol. 22, no. 1, pp. 64-69, 1990.
[18] J. Misra, "Distributed Discrete-Event Simulation," ACM Computing Surveys, vol. 18, no. 1, pp. 39-65, Mar. 1986.
[19] D.P. Mitchell and M.J. Merritt, "A Distributed Algorithm for Deadlock Detection and Resolution," Proc. ACM Symp. Principle of Distributed Computing, pp. 282-284, Aug. 1984.
[20] N. Natarajan, "A Distributed Scheme for Detecting Communication Deadlocks," IEEE Trans. Software Eng., vol. 12, no. 4, pp. 531-537, Apr. 1986.
[21] R. Obermark, "Distributed Deadlock Detection Algorithm," ACM Trans. Database Systems, vol. 7, no. 2, pp. 187-208, June 1982.
[22] M. Singhal, “Deadlock Detection in Distributed Systems,” Computer, pp. 37-47, Nov. 1989.
[23] C. Tropper and A. Boukerche, "Parallel Simulation of Communicating Finite State Machines," Proc. SCS Multiconf. Parallel and Distributed Simulation, pp. 143-150,San Diego, Calif., May 1993.

Index Terms:
Cycle, diffusing computation, distributed deadlock detection, knot, distributed simulation.
Azzedine Boukerche, Carl Tropper, "A Distributed Graph Algorithm for the Detection of Local Cycles and Knots," IEEE Transactions on Parallel and Distributed Systems, vol. 9, no. 8, pp. 748-757, Aug. 1998, doi:10.1109/71.706047
Usage of this product signifies your acceptance of the Terms of Use.