Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/567003.567010guidebooksArticle/Chapter ViewAbstractPublication PagesBookacm-pubtype
chapter

Dataflow process networks

Published: 01 June 2001 Publication History

Abstract

We review a model of computation used in industrial practice in signal processing software environments and experimentally in 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 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.

References

[1]
S. Abramsky, "Reasoning about concurrent systems." in Distributed Computing, F. B. Chambers, D. A. Duce, and G. P. Jones, Eds. London: Academic. 1984.]]
[2]
W. B. Ackerman, "Data flow languages," Computer, vol. 15, no. 2, Feb. 1982.]]
[3]
K. R. Apt and G.D. Plotkin, "Countable nondeterminisrn and random assignment," J. ACM, vol. 33, no. 4, pp. 724-767, 1986.]]
[4]
Arvind, L. Bic, and T. Ungerer, "Evolution of data-Row computers," in Advanced Topics in Data-Flow Computing, J.-L. Gaudiot and L. Bic, Eds. Englewood Cliffs, NJ: Prentice-Hall, 1991.]]
[5]
Arvind and J. D. Brock, "Resource managers in functional programming," J. Parallel and Distrib. Computing, vol. 1, no. 5-21, 1984.]]
[6]
Arvind and K. P. Gostelow, "Some relationships between asynchronous interpreters of a dataflow language." in Formal Description of Programming Languages. IFIP Working Group 2.2, 1977.]]
[7]
___,"The U-interpreter," Computer, vol. 15, no. 2, Feb. 1982.]]
[8]
Arvind, R. S. Nikhil, and K. K. Pingali. "I-structures: Data structures for parallel computing," ACM Trans. Programming Lang. and Syst., vol. Il, no. 4, pp. 598-633, Oct. 1989.]]
[9]
E. A. Ashcroft and R. Jagannathan, "Operator nets," in Proc. IF/P TC-10 Working Conf on Fifth-Generation Computer Architectures, North-Holland: The Netherlands, 1985.]]
[10]
A. Benveniste and G. Berry. "The synchronous approach to reactive and real-time systems." Proc. IEEE, vol. 79, pp. 1270-1282, Sept. 1991.]]
[11]
A. Benveniste and P. Le Guernic, "Hybrid dynamical systems theory and the SIGNAL language," IEEE Trans. Autom. Conir., vol. 35, pp. 525-546, May 1990.]]
[12]
A. Benveniste, P. Caspi, P. Le Guemic, and N. Halbwachs, "Dam-flow synchronous languages," in J. W. de Bakker W.-P. de Roever, and G. Rozenberg, Eds., A Decade of Concurrency-Reflections and Perspectives, Lecture Notes in Computer Science no. 803. Berlin: Springer-Verlag, 1994.]]
[13]
C. Berry, "Bottom-up computation of recursive programs," Revue Fran gaise d'Automatique, Infonnatique et Recherche Opirationnelle, vol. 10, no. 3, pp. 47-82, Mar. 1976.]]
[14]
S. Bhaxtachaiyya and E. A. Lee, "Memory management for synchronous dataflow programs," to appear in IEEE Trans. Signal Process., May 1995.]]
[15]
___, "Looped schedules for dataflow descriptions of multirate signal processing algorithms," to appear in Formal Methods in System Design (updated from UCB/ERL Tech. Rep. May 21, 1993).]]
[16]
G. Bilsen, M. Engels. R. Lauwereins, and J. A. Peperstraete, "Static scheduling of multirate and cyclo-static DSP applications," in Proc. 1994 Workshop on VLSI Signal Process., IEEE Press, 1994.]]
[17]
A. Bloss and P. Hudak, "Path semantics," in Proc. 3rd Workshop on the Mathematical Foundations of Programming Language Semantics, Lecture Notes in Computer Science. Berlin: Springer-Verlag, no. 298, pp. 479-489, 1987.]]
[18]
F. Boussinot, "Reseaux de processus avec melange equitable: Une approche du temps reel," Ph.D. dissertation, Universit P. et M. Curie, and Universit Paris, France, June 1981.]]
[19]
___, "Reseaux de processus reactifs," Rapport de Recherche no. 12/91, INRIA, SophiaAntipolis, France, Nov. 1991 (in French).]]
[20]
J. D. Brock and W. B. Ackerman, "Scenarios, a model of non determinate computation." in Proc. Conf on Formal Definition of Programming Concepts, LNCS 107. Berlin: Spnnger-Verlag, 1981, pp. 252-259.]]
[21]
J. T. Buck, Scheduling Dynamic Dataflow Graphs with Bounded Memory Using the Token Flow Model, Tech. Rep. UCB/ERL. 93/69, Ph.D. Dissertation, Dept. EECS, Univ. Calif., Berkeley. CA. 1993.]]
[22]
J. Buck and E. A. Lee, 'The token flow model," presented at Data Flow Workshop, Hamilton Island, Australia, May. 1992. Also in Advanced Topics in Dataflow Computing and Multizhreading. L. Bic, 0. Gao, and J.-L. Gaudiot, Eds. New York: IEEE Computer Soc. Press, 1994.]]
[23]
J. Buck, S. Ha, E. A. Lee, and D. C. Messerschmitt, "Multirate signal processing in Ptolemy," in Proc. In:. Conf on Acoust., Speech, and Signal Processing, Toronto, Canada, Apr. 1991.]]
[24]
___, "Ptolemy: A framework for simulating and prototyping heterogeneous systems," Int. J. Computer Simulation, Apr. 1994.]]
[25]
W. H. Burge, "Stream processing functions," IBM J. R & D, vol. 19, no. 1, Jan. 1975.]]
[26]
R. M. Burstall and J. Darlington, "A transformation system for developing recursive programs." J. ACM, vol. 24, no. 1, 1977.]]
[27]
N. Carriero and D. Gelernter, "Linda in context," Comm. ACM, vol. 32. no. 4, pp. 444-458. Apr. 1989.]]
[28]
P. Caspi, "Clocks in dataflow languages." Theoretical Computer Sc., vol. 94, no. I, Mar. 1992.]]
[29]
___, "Lucid synchrone." in Proc. OPOPAC, HERMES, Pans, 1993, pp. 79-93.]]
[30]
M. J. Chen, "Developing a multidimensional synchronous dataflow, domain in Ptolemy," MS Rep., ERL Tech. Rep. UCB/ERL no. 94/16, Univ. Calif., Berkeley. CA, May 1994.]]
[31]
A. Church, The Calculi of Lambda-Conversion. Princeton, NJ: Princeton Univ. Press, 1941.]]
[32]
F. Commoner and A. W. Halt, "Marked directed graphs," J. Computer and Syst. Sci., vol. 5. pp. 511-523, 1971.]]
[33]
C. Consel and O. Danvy, "Tutorial notes on partial evaluation," 20th ACM Symp. on Principles of Programming Languages, Jan. 1993, pp. 493-501.]]
[34]
A. L. Davis, "Data driven nets: A maximally concurrent, procedural, parallel process representation for distributed control systems," Tech. Rep. Dept. Computer Sci., Univ. Utah, Salt Lake City, Utah, July 1978.]]
[35]
A. L. Davis and R. M. Keller, "Data flow program graphs," Computer, vol. 15, no. 2, Feb. 1982.]]
[36]
H. De Man, F. Catthoor, G. Goossens, J. Vanhoof, J. Van Meerbergen, S. Note, and J. Huisken, "Architecture-driven synthesis techniques for mapping digital signal processing algorithms into silicon." Proc. IEEE, vol. 78. pp. 319-335, Feb. 1990.]]
[37]
J. B. Dennis, "First version data flow procedure language," Tech. Rep. MAC TM6I. May 1975, MIT Lab. Computer Sci.]]
[38]
___, "Data flow supercomputers," IEEE Compu., vol.COM-13, Nov. 1980.]]
[39]
___, "Stream data types for signal processing," unpublished memo, Sept 1992.]]
[40]
D. Desmet and D. Genin, "ASSYNT: Efficient assembly code generation for DSP's starting from a data flowgraph," Trans. ICASSP '93, Minneapolis. MN, Apr. 1993.]]
[41]
E. W. Dijkstra, A Discipline of Programming. Englewood Cliffs, NJ: Prentice Hall, 1976.]]
[42]
J. Franco, D. P. Friedman, and S. D. Johnson, "Multi-way streams in scheme," Comput. Lang. vol. 15, no. 2, pp. 109-125, 1990.]]
[43]
D. K. Gifford and J. M. Lucassen, "Integrating functional and imperative programming," in Proc. 1986 ACM Conf on Lisp and Functional Programming, 1986, pp. 28-38.]]
[44]
S. Ha, "Compile-time scheduling of dataflow program graphs with dynamic constructs," Ph.D. dissertation, EECS Dept., Univ. Calif., Berkeley, CA, Apr. 1992.]]
[45]
N. Halbwachs, P. Caspi. P. Raymond, and D. Pilaud, "The synchronous data flow programming language LUSTRE," Proc. IEEE, vol. 79, pp. 1305-1319, Sept. 1991.]]
[46]
N. Halbwachs, Synchronous Programming of Reactive Systems. Dordrecht: Kluwer, 1993.]]
[47]
P. G. Harrison, "A higher-order approach to parallel algorithms," The Computer I, vol. 35, no. 6, 1992.]]
[48]
J. Hicks, D. Chiou. B. S. Ang, and Arvind, "Performance studies of id on the monsoon dataflow system," J. Parallel and Distributed Computing, vol. 18, no. 3, pp. 273-300, July, 1993]]
[49]
P. Hilfinger, "A high-level language and silicon compiler for digital signal processing." in Proc. Custom Integ. Circuits Con} Los Alamitos, CA: IEEE Computer Soc., 1985, pp. 213-216.]]
[50]
D. D. Hills, "Visual languages and computing survey: Data flow visual programming languages," J. Visual Lang. and Computing, vol. 3, pp. 69-101.]]
[51]
C. A. R. Hoare, "Communicating sequential processes," Cornman. ACM, vol. 21, no. 8. Aug. 1978.]]
[52]
P. Hudak, "Introduction to Haskell and functional programming," ACM Compu. Surveys, Sept. 1989.]]
[53]
J. Hughes, "Compile-time analysis of functional programs," in Research Topics in Functional Programming, Turner, Ed. Reading, MA: Addison-Wesley, 1990.]]
[54]
T. Ida and J. Tanaka, "Functional programming with streams," in Information Processing 83 Amsterdam: Elsevier, 1993.]]
[55]
R. Jagannathan, "Parallel execution of GLU programs," pittented at 2nd Int. Workshop on Dataflow Computing. Hamilton Island, Queensland, Australia, May 1992.]]
[56]
R. Jagannathan and E. A. Ashcroft. "Eazyflow: A hybrid model for parallel processing," in Proc. Int. Conf on Parallel Process., IEEE, Aug. 1984, pp. 514-523.]]
[57]
G. Kahn, "The semantics of a simple language for parallel programming," in Proc. IFIP Cong. '74, Amsterdam: NorthHolland, 1974.]]
[58]
G. Kahn and D. B. MacQueen, "Coroutines and networks of parallel processes," Information Processing '77, B. Gilchrist, Ed. Amsterdam: North-Holland, 1977.]]
[59]
D. J. Kaplan et al., "Processing graph method specification version 1.0," unpublished memo, Naval Res. Lab., Washington. DC, Dec. 1987.]]
[60]
R. M. Karp and R. E. Miller, "Properties of a model for parallel computations: Determinacy, termination, queueing," SIAM I., vol. 14. pp. 1390-1411, Nov. 1966.]]
[61]
P. J. Landin, "A correspondence between Algol 60 and Church's lambda notation," Commun. ACM, vol. 8, 1965.]]
[62]
R. Lauwereins, P. Wauters, M. Adi, and J. A. Peperstraete, "Geometric parallelism and cyclo-static dataflow in GRAPE11," in Proc. 5th Int. Workshop on Rapid System Prototyping, Grenoble, France. June 1994.]]
[63]
E. A. Lee, "Consistency in dataflow graphs," IEEE Trans. Parallel and Distib. Syst., vol. 2, Apr. 1991.]]
[64]
__, "Representing and exploiting data parallelism using multidimensional dataflow diagrams," in Proc. ICASSP '93, Minneapolis. MN, Apr. 1993.]]
[65]
E. A. Lee and D. G. Messerschmitt, "Static scheduling of synchronous data flow programs for digital signal processing," IEEE Trans. Computers, Jan. 1987.]]
[66]
___, "Synchronous data flow," Proc. IEEE. Sept. 1987.]]
[67]
P. Le Guernic, T. Gauthier, M. Le Borgne, and C. Is Marie, "Programming real-time applications with SIGNAL." Proc. IEEE, vol. 79, Sept. 1991.]]
[68]
O. Maffeis and P. Le Guernic, "From signal to fine-grain parallel implementations," in Int'l. Conf. Parallel Architectures and Compilation Techn., IFIP A-50. North-Holland, Aug. 1994, pp. 237-246.]]
[69]
D. McAllester, P. Panagaden, and V. Shanbhogue. "Nonexpressibility of fairness and signaling." to appear in JCSS, 1993.]]
[70]
J. McCarthy. "Recursive functions of symbolic expressions and the computation by machine. Part V' Conmt ACM. vol. 3, no. 4, Apr. 1960.]]
[71]
___, "A basis for a mathematical theory of computation." in Computer Programming and Formal Systems. Amsterdam: North-Holland, 1978, pp. 33-70.]]
[72]
J. McGraw, "Sisal: Streams and iteration in a single assignment language," Language Ref. Manual, Lawrence Livermore Nat Lab., Livermore, CA.]]
[73]
R. Miler, Communication and Concurrency. Englewood Cliffs, NJ: Prentice-Hall, 1989.]]
[74]
M. A. Najork and E. Golin, "Enhancing show-and-tell with a polymorphic type system and higher-order functions," in Proc. IEEE Workshop on Visual Languages, Skokie, IL. Oct. 1990, pp. 215-220.]]
[75]
T. J. Olson. N. G. Klop, M, R. Hyett, and S. M. Carnell, "MAVIS: A visual environment for active computer vision," in Proc. IEEE Workshop on Visual Languages, Seattle, WA, Sept. 1992, IEEE Comput. Soc., 1992, p. 170-l76.]]
[76]
J. S. Onanian, "A signal processing language for coarse grain dataflow multiprocessors," Tech Rep. MIT/LCSITR-449, Cainbridge, MA, June 1989.]]
[77]
P. Panagaden and V. Shanbhogue. "The expressive power of indeterminate dataflow primitives," Inf. and Computation, vol. 98, no. 1, May 1992.]]
[78]
J. L. Pino, T. M. Parks, and E. A. Lee, "Mapping multiple independent synchronous dalaflow graphs onto heterogeneous multiprocessors," in Proc. IEEE Asilomar Conf on Signals, Syst, and Computers, Nov. 1994.]]
[79]
J. L. Pino, S. Ha, E. A. Lee, and J. T. Buck, "Software synthesis for DSP using Ptolemy." J. VLSI Signal Process., vol. 9, no. I. pp. 7-21, Jan. 1995.]]
[80]
D. G. Powell, E. A. Lee, and W. C. Newman, "Direct synthesis of optimized DSP assembly code from signal flow block diagrams." in Proc. ICASSP. San Francisco. Mar. 1992.]]
[81]
H. Printz, "Automatic mapping of large signal processing systems to a parallel machine," Ph.D. dissertation, Memo. CMU-CS-91-101, School of Computer Sci., Carnegie Mellon Univ., May 1991.]]
[82]
J. Rabaey, C. Chu, P. Hoang, and M. Potkonjalc, "Fast prototyping of datapath-intensive architectures," IEEE Design and Test of Computers, pp. 40-51, June 1991.]]
[83]
J. Rasure and C. S. Williams, "An integrated visual language and software development environment," J. Visual Lang. and Computing, vol. 2, pp. 217-246. 1991.]]
[84]
H. J. Reekie, 'Toward effective programming for parallel digital signal processing," Res. Rep. 92.1, Univ. of Technology, Sydney, NSW, Australia. May 1992.]]
[85]
___, "Integrating block-diagram and textual programming for parallel DSP," in Proc. 3d Int. Symp. on Signal Processing and Us Applications, QLD, Australia, Aug. 1992.]]
[86]
H. J. Reekie and J. Potter, "Transforming process networks." presented at the Massey Functional Programming Workshop. Massey Univ., Parmerston North, New Zealand. Aug. 1992.]]
[87]
___,"Generating efficient loop code for programmable DSPs," in Proc. ICASSP '94, Adelaide, Australia, Apr. 1994.]]
[88]
K. S. Shanmugan. G. J. Minden, E. Komp, T. C. Manning, and E. R. Wiswell, "Block-oriented system simulator (BOSS)," Telecommun, Lab., Univ. Kansas, Internal Memo, 1987.]]
[89]
G. C. Sih and E. A. Lee, "A compile-time scheduling heuristic for interconnection-constrained heterogeneous processor architectures," IEEE Trans. Parallel and Distrib. Syst., vol. 4, Feb. 1993.]]
[90]
____,"Declustering: A new multiprocessor scheduling technique," IEEE Trans. Parallel and Distrib. Syst., June 1993.]]
[91]
D. B. Skillcorn, "Stream languages and data-flow," in Advanced Topics in Data-Flow Computing. J.-L Gaudiot and L Bic, Eds. Englewood Cliffs, NJ: PrenticeHall, 1991.]]
[92]
V. Srini."An architectural comparison of dataflow systems." Computer, vol. 19, no, 3, Mar. 1986.]]
[93]
P. A. Suhlet, J, Biswas, K. M. Korner, and S. C. Browne, "TDFL: A task-level dataflow language," J. Parallel and Distrib. Syst., vol. 9, no. 2, June 1990.]]
[94]
J. Vuillemin, "Proof techniques for recursive programs," Ph.D. dissertation, Comps. Sci. Dept., Stanford Univ., 1973.]]
[95]
W. W. Wadge and B. A. Ashcroft, Lucid, the Dataflow Programming Language. London: Academic, 1985.]]
[96]
A. L. Wendelbom and H, Garsden, "Exploring the stream data type in SISAL and other languages," in Advanced Topics in Datafiow Computing and Multithreading. L. Bic, G. Gao, and J,L. Gaudiot. Eds. New York: IEEE Compu. Soc., 1994.]]

Cited By

View all
  • (2018)RIPLACM Transactions on Reconfigurable Technology and Systems10.1145/318048111:1(1-24)Online publication date: 14-Mar-2018
  • (2017)A Survey of Parametric Dataflow Models of ComputationACM Transactions on Design Automation of Electronic Systems10.1145/299953922:2(1-25)Online publication date: 20-Jan-2017
  • (2015)Communication Optimizations for Multithreaded Code Generation from Simulink ModelsACM Transactions on Embedded Computing Systems10.1145/264481114:3(1-26)Online publication date: 21-May-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide books
Readings in hardware/software co-design
June 2001
800 pages
ISBN:1558607021

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 01 June 2001

Qualifiers

  • Chapter

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2018)RIPLACM Transactions on Reconfigurable Technology and Systems10.1145/318048111:1(1-24)Online publication date: 14-Mar-2018
  • (2017)A Survey of Parametric Dataflow Models of ComputationACM Transactions on Design Automation of Electronic Systems10.1145/299953922:2(1-25)Online publication date: 20-Jan-2017
  • (2015)Communication Optimizations for Multithreaded Code Generation from Simulink ModelsACM Transactions on Embedded Computing Systems10.1145/264481114:3(1-26)Online publication date: 21-May-2015
  • (2011)A monad for deterministic parallelismACM SIGPLAN Notices10.1145/2096148.203468546:12(71-82)Online publication date: 22-Sep-2011
  • (2011)An experimental workflow development platform for historical document digitisation and analysisProceedings of the 2011 Workshop on Historical Document Imaging and Processing10.1145/2037342.2037370(161-168)Online publication date: 16-Sep-2011
  • (2011)A monad for deterministic parallelismProceedings of the 4th ACM symposium on Haskell10.1145/2034675.2034685(71-82)Online publication date: 22-Sep-2011
  • (2011)An approach for describing concurrency and communication of heterogeneous systemsProceedings of the Third Workshop on Behavioural Modelling10.1145/1993956.1993964(56-63)Online publication date: 6-Jun-2011

View Options

View options

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media