In this paper we present a new dataflow execution model called semi-static dataflow. This model incorporates aspects of conventional static and dynamic dataflow architectures. Programs are partitioned into a collection of dataflow graphs. The execution of each of these graphs is the responsibility of a low-level process called a context. The static dataflow execution model is used to evaluate each of these graphs. Separate instruction and data spaces are used to allow program reentrancy. Function invocation, iteration, and conditional execution are accomplished by dynamically creating new contexts. The process of creating new contexts and moving data tokens between contexts is called dynamic dataflow graph splicing and is the motivation for calling the whole system semi-static. We present a number of programming paradigms for function invocation, sequential iteration and parallel iteration that are based on dynamic dataflow graph splicing. We have simulated the execution of a semi-static dataflow multiprocessor. In this paper some of the simulation results obtained for several benchmark programs are presented.
[1]
Robert M. Keller,et al.
Data Flow Program Graphs
,
1982,
Computer.
[2]
Ian Watson,et al.
A prototype data flow computer with token labelling
,
1899
.
[3]
Kenneth W. Todd.
Function sharing in a static data flow machine
,
1982,
ICPP.
[4]
Vason P. Srini,et al.
An Architectural Comparison of Dataflow Systems
,
1986,
Computer.
[5]
Jack B. Dennis,et al.
Data Flow Supercomputers
,
1980,
Computer.
[6]
Arvind,et al.
The U-Interpreter
,
1982,
Computer.
[7]
Dianne P. O'Leary,et al.
Data-flow algorithms for parallel matrix computation
,
1985,
CACM.
[8]
John Sanguinetti,et al.
Performance of a Message-Based Multiprocessor
,
1985,
Computer.
[9]
J. D. Lipson.
Elements of algebra and algebraic computing
,
1981
.
[10]
Bruno R. Preiss,et al.
Data Flow on a Queue Machine
,
1985,
ISCA.
[11]
Inmos Limited,et al.
Occam Programming Manual
,
1984
.