Distributed Algorithms Contents Index

Dataflow: FAQ

What are the edges incident on a vertex in a dataflow graph? Does each vertex have two input edges and two output edges?
A vertex, other than a vertex representing a fictitious initialization step or a final step, has
  1. one input agent edge which is labeled with the state of the agent before the event, and
  2. one input message edge which is labeled with the pair (m, w) where m is the message received in the event and m is the sender of the message, and
  3. If the step sends messages to k agents then the step has k output message edges. The label of the output message edge to an agent x is the sequence of messages sent in the step to agent x.
An initialization vertex has no input edges; it only has output edges. The output edges of an initialization vertex are exactly the same as the output edges of the vertices that represent real (as opposed to fictional) steps.

A final vertex has no output edges; it only has input edges. The input edges of a final vertex are exactly the same as the input edges of the vertices that represent real (as opposed to fictional) steps.

Exactly how are initial states of channels represented? If there are two messages m1, m2 in a channel from u to v and the messages are received by v in steps 1 and 2 then how is this represented in a dataflow graph?
The initial states of channels from an agent u are represented by message edges from the vertex representing the fictitious initialization step of agent u.

In the example, there are two message edges from the initialization vertex of u. The first message edge is to the vertex representing step 1 of v, and this edge is labeled m1. The second message is to the vertex representing step 1 of v.

How many dataflow graphs are associated with a computation? How many computations are associated with a dataflow graph?
A computation has exactly one dataflow graph that shows the flow of data in the computation.

All topological sorts of dataflow graphs are computations. The number of computations that a dataflow graph represents is the number of topological sorts of the dataflow graph.

What is the number of topological sorts of a dataflow graph? That depends on the graph. You can construct a graph with 1 topological sort and a graph with n! topological sorts where n is the number of vertices.

Next
The next pages describes

Cuts in Dataflow Graphs which are used in developing detection algorithms such as termination detection and deadlock detection.

Examples

Frequenty Asked Questions

Review


K. Mani Chandy, Emeritus Simon Ramo Professor, California Institute of Technology