Dataflow process networks
- 1 May 1995
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in Proceedings of the IEEE
- Vol. 83 (5) , 773-801
- https://doi.org/10.1109/5.381846
Abstract
We review a model of computation used in industrial practice in signal processing software environments and experimentally and other contexts. We give this model the name "dataflow process networks," and study its formal properties as well as its utility as a basis for programming language design. Variants of this model are used in commercial visual programming systems such as SPW from the Alta Group of Cadence (formerly Comdisco Systems), COSSAP from Synopsys (formerly Cadis), the DSP Station from Mentor Graphics, and Hypersignal from Hyperception. They are also used in research software such as Khoros from the University of New Mexico and Ptolemy from the University of California at Berkeley, among many others. Dataflow process networks are shown to be a special case of Kahn process networks, a model of computation where a number of concurrent processes communicate through unidirectional FIFO channels, where writes to the channel are nonblocking, and reads are blocking. In dataflow process networks, each process consists of repeated "firings" of a dataflow "actor." An actor defines a (often functional) quantum of computation. By dividing processes into actor firings, the considerable overhead of context switching incurred in most implementations of Kahn process networks is avoided. We relate dataflow process networks to other dataflow models, including those used in dataflow machines, such as static dataflow and the tagged-token model. We also relate dataflow process networks to functional languages such as Haskell, and show that modern language concepts such as higher-order functions and polymorphism can be used effectively in dataflow process networks. A number of programming examples using a visual syntax are given.Keywords
This publication has 53 references indexed in Scilit:
- Synchronous Functional Programming with Lucid SynchronePublished by Wiley ,2008
- Tutorial notes on partial evaluationPublished by Association for Computing Machinery (ACM) ,1993
- Scheduling dynamic dataflow graphs with bounded memory using the token flow modelPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1993
- Clocks in dataflow languagesTheoretical Computer Science, 1992
- Architecture-driven synthesis techniques for VLSI implementation of DSP algorithmsProceedings of the IEEE, 1990
- Linda in contextCommunications of the ACM, 1989
- Data Flow Program GraphsComputer, 1982
- Data Flow SupercomputersComputer, 1980
- A Transformation System for Developing Recursive ProgramsJournal of the ACM, 1977
- Marked directed graphsJournal of Computer and System Sciences, 1971