page 1  (17 pages) 2

Data Flow Graphs And Their Linearization

D

Edith A. Lawson

r. Lawrence Coon

D

Carol Torsone

epartment of Computer Science

ySchool of Computer Science and Information Technolog

Rochester Institute of Technology

Rochester, New York 14623

USA

t

D

Abstrac

ataflow provides a mechanism to identify the parallelism inherent in a program
r
p
thereby providing a visualization that suggests a natural partitioning of the code fo
lacement on the nodes of a transputer. The intent of this report is to investigate the
representation of algorithms as data flow graphs and the linearization of these graphs.

N1. INTRODUCTIO

Data flow is a functional approach to programming that is based on the concept of data flowing from one a
m
entity to another. Rather than marching to the count of a program counter and manipulating the contents of emory cell, data flows between operators much like a truck that is carrying merchandise between two points: it

c
loads its cargo at point a; then travels across a highway linking it to its destination (point b) where it unloads its ontents. If another point c also wants the same merchandise, another truck is loaded with copies of the items and that truck travels across a different route to deliver its load.

This view of data flowing between points allows us to represent programs by graphs. The nodes represent

d
instructions (or operators) and the arcs represent the links over which data flows. Thus the arcs depict the data ependencies and highlight the parallel processing possible within an algorithm. Since instructions can execute s
a
as soon as their operands arrive, nodes that are not linked to one another can execute simultaneously as long a ll their inputs are available. The data dependencies determine the sequencing in a program, not a program counter.

Not only does this eliminate the need for the program counter, but also the concept of an updatable -
d
memory cell. Instructions do not reference memory, but rather process the data coming in on their arcs and pro uce results that are placed on their output arcs. If more than one operator needs the output of another, then y
a
that value is duplicated and each destination gets its own copy. There is never a wait for constant values, the re immediately available, whenever needed, to their destination nodes.

d
d

There are two basic types of data flow architecture that have been developed; data driven and deman riven. In the data-driven model inputs are evaluated without regard to their need. In other words, a node is

o
executed when it has received all of its inputs without checking the destination node(s) to see if they need the utput. The demand driven model is a form of lazy evaluation; arguments are not evaluated until they are needed. We will concentrate our discussion in this paper on the data driven model.

page 1