Issue No. 08 - August (1998 vol. 9)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.706047
<p><b>Abstract</b>—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 <it>given</it> node is in a cycle or a knot. It requires less communication than previous algorithms—2<it>m</it> vs. (at least) (4<it>m</it>) for the Chandy and Misra algorithm, where <it>m</it> is the number of links in the graph. It requires <it>O</it> (<it>nlog</it> (<it>n</it>)) bits of memory, where <it>n</it> 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.</p>
Cycle, diffusing computation, distributed deadlock detection, knot, distributed simulation.
C. Tropper and A. Boukerche, "A Distributed Graph Algorithm for the Detection of Local Cycles and Knots," in IEEE Transactions on Parallel & Distributed Systems, vol. 9, no. , pp. 748-757, 1998.