A distributed graph algorithm for the detection of local cycles and knots
- 1 January 1998
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Parallel and Distributed Systems
- Vol. 9 (8), 748-757
- https://doi.org/10.1109/71.706047
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.Keywords
This publication has 20 references indexed in Scilit:
- Parallel simulation of communicating finite state machinesPublished by Association for Computing Machinery (ACM) ,1993
- The distributed simulation of clustered processesDistributed Computing, 1991
- Deadlock detection in distributed systemsComputer, 1989
- An efficient distributed knot detection algorithmIEEE Transactions on Software Engineering, 1989
- Deadlock detection in distributed databasesACM Computing Surveys, 1987
- Pseudosimulation: An algorithm for distributed simulation with limited memoryInternational Journal of Parallel Programming, 1986
- A distributed scheme for detecting communication deadlocksIEEE Transactions on Software Engineering, 1986
- Distributed deadlock detectionACM Transactions on Computer Systems, 1983
- Distributed deadlock detection algorithmACM Transactions on Database Systems, 1982
- On Deadlock Detection in Distributed SystemsIEEE Transactions on Software Engineering, 1980