Skip to main content

Data Flow Graphs

  • Reference work entry
Encyclopedia of Parallel Computing

Synonyms

Program graphs

Definition

A data flow graph is a graph model for computer programs that expresses possibilities for concurrent execution of program parts. In a data flow graph, nodes, called actors, represent operations (functions) and predicates to be applied to data objects, and arcs represent channels for data objects to move from a producing actor to a consuming actor. In this way, control and data aspects of a program are represented in one integrated model. When data objects are available at input ports of an actor and certain conditions are satisfied, the actor is said to be enabled. Because the set of enabled actors may be chosen to fire simultaneously, or sequentially in any order, data flow models expose much of the parallelism available in the computation represented, and this parallelism may be exploited in an implementation of the model.

Discussion

Introduction

Although many versions of data flow graphs (DFGs) have been studied in the literature, they share some...

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Bibliography

  1. Adams DA (1970) A model for parallel computations. In: Hobbs LC (ed) Parallel processor systems, technologies and applications, Spartan Books, New York, pp 311–333

    Google Scholar 

  2. Agerwala T, Arvind A (eds) (1982) IEEE Computer 15, 2. Special issue devoted to data flow

    Google Scholar 

  3. Arvind A, Gostelow KP, Plouffe W (1978) An asynchronous programming language and computing machine. Technical report 114a, Department of Information and Computer Science, University of California, Irvine

    Google Scholar 

  4. Ashcroft EA, Wadge WW (1977) Lucid, a nonprocedural language with iteration. Commun ACM 20(7):519–526

    MATH  Google Scholar 

  5. Beck M, Johnson R, Pingali K (1981) From control flow to dataflow. ACM Trans Progr Lang Syst 12:118–129

    Google Scholar 

  6. Davis AL, Keller RM (1982) Dataflow program graphs. IEEE Comput 15(2):42–49

    Google Scholar 

  7. Dennis JB (1974) First version of a dataflow procedure language. In: Lecture notes in computer science LCNS 19: programming symposium, Springer, Berlin, pp 362–376

    Google Scholar 

  8. Dennis JB (1980) Data flow supercomputers. IEEE Comput 13(11):48–56

    Google Scholar 

  9. Dennis JB (1989) The paradigm compiler: mapping a functional language for the Connection Machine. In: Simon H (ed) Scientific applications of the connection machine, World Scientific, Singapore, pp 301–315

    Google Scholar 

  10. Karp RM, Miller RE (1966) Properties of a model for parallel computations: determinacy, termination, queuing. SIAM J Appl Math 14(6):1390–1411

    MATH  MathSciNet  Google Scholar 

  11. Lee EA, Messerschmitt DG (1987) Synchronous data flow. Proc IEEE 75(9):1235–1245

    Google Scholar 

  12. McGraw JR (1982) The VAL language: description and analysis. ACM T Progr Lang Syst 4(1):44–82

    MATH  Google Scholar 

  13. McGraw JR, Skedzielewski SS, Allan R, Oldehoeft R, Glauert J, Kirkham C, Noyce B, Thomas R (1985) SISAL: streams and iteration in a single assignment language: reference manual version 1.2. Technical report M-146, Rev. 1. Lawrence Livermore National Laboratory, Livermore, CA

    Google Scholar 

  14. Nikhil R, Arvind A (2001) Implicit parallel programming in Ph. Morgan Kaufman, San Francisco, CA

    Google Scholar 

  15. Pingali K, Arvind A (1986, 1987) Efficient demand-driven evaluation. ACM T Progr Lang Syst 7(2):311–333 (Part 1), and 8(1): 109–139 (Part 2)

    Google Scholar 

  16. Rodriguez JE (1969) A graph model for parallel computations. MIT technical report ESL-R-398, and MAC-TR-64, Cambridge, MA

    Google Scholar 

  17. Sharp JA (1985) Data flow computing. Ellis Horwood, Chichester

    Google Scholar 

  18. Skedzielewski S, Glauert J (1985) IF1 – an intermediate form for applicative languages. Technical report M-170, Lawrence Livermore National Laboratory, Livermore, CA

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Dennis, J. (2011). Data Flow Graphs. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_294

Download citation

Publish with us

Policies and ethics