Mulitdimensional Streams Rooted in Dataflow

A programming model rooted in dataflow principles and supporting multidimensional streams is developed and compared with streams in Lucid, Lustre, Signal, Silage, Sisal, and Id. The model is based on production and consumption of tokens and requires neither the “clock” synchronization of Lustre and Signal nor the Lisp-like list model of Sisal and Id. Multidimensional streams are similar to those in Lucid, but augmented with a producer/consumer model derived from our earlier work on one-dimensional dataflow models. Analytical properties of programs are easily derived, and compile-time predictability is maximized so that run-time overhead costs can be minimized. The scheme is illustrated by building scalable fine-grain programs for some simple examples and showing how data and function parallelism can be automatically exploited given these descriptions. 1.0 Motivation Skillcorn [24] argues that streams and functions on them are a natural way to model reactive and distributed systems. Reactive systems, such as servers, operating systems, and signal processing systems, operate continuously and produce and consume unbounded message sequences. For operating on such sequences, languages such as Id [1], Lucid [2][24], Sisal [19], Lustre [10], and Signal [4] support streams. In Sisal and Id, streams are lists fashioned after lists in Lisp. In The author gratefully acknowledges the support of The National Science Foundation, AT&T Bell Labs, Philips, and Hitachi. in Proceedings of the IFIP Working Conference on Architectures and Compilation Techniques for Fine and Medium Grain Parallelism (January 20-22, 1993, Orlando, Florida) North-Holland, New York, 1993.

[1]  Edward A. Lee,et al.  Declustering: A New Multiprocessor Scheduling Technique , 1993, IEEE Trans. Parallel Distributed Syst..

[2]  Edward A. Lee,et al.  Gabriel: a design environment for DSP , 1989, IEEE Micro.

[3]  Edward A. Lee,et al.  Scheduling synchronous dataflow graphs for efficient looping , 1993, J. VLSI Signal Process..

[4]  Edward A. Lee,et al.  Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems , 2001, Int. J. Comput. Simul..

[5]  Edward A. Lee,et al.  Multirate signal processing in Ptolemy , 1991, [Proceedings] ICASSP 91: 1991 International Conference on Acoustics, Speech, and Signal Processing.

[6]  John Glauert,et al.  SISAL: streams and iteration in a single assignment language. Language reference manual, Version 1. 2. Revision 1 , 1985 .

[7]  Heinrich Meyr,et al.  High level software synthesis for signal processing systems , 1992, [1992] Proceedings of the International Conference on Application Specific Array Processors.

[8]  James C. Browne,et al.  TDFL: A Task-Level Dataflow Language , 1990, J. Parallel Distributed Comput..

[9]  Nicolas Halbwachs,et al.  LUSTRE: a declarative language for real-time programming , 1987, POPL '87.

[10]  Edward A. Ashcroft,et al.  Proving Assertions about Parallel Programs , 1975, J. Comput. Syst. Sci..

[11]  H. T. Kung,et al.  Automatic Mapping Of Large Signal Processing Systems To A Parallel Machine , 1991, Optics & Photonics.

[12]  Robert M. Keller,et al.  Data Flow Program Graphs , 1982, Computer.

[13]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.

[14]  Arvind,et al.  Resource managers in functional programming , 1984, J. Parallel Distributed Comput..

[15]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[16]  E A Ashcroft,et al.  Operator nets , 1986 .

[17]  Albert Benveniste,et al.  Hybrid dynamical systems theory and the language "SIGNAL" , 1988 .

[18]  Edward A. Lee Consistency in Dataflow Graphs , 1991, IEEE Trans. Parallel Distributed Syst..

[19]  Edward A. Lee,et al.  A Compile-Time Scheduling Heuristic for Interconnection-Constrained Heterogeneous Processor Architectures , 1993, IEEE Trans. Parallel Distributed Syst..