FACTOID # 3: Andorrans live the longest, four years longer than in neighbouring France and Spain.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Dataflow

Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing. Wikipedia does not have an article with this exact name. ... Dataflow architecture is a computer architecture that directly contrasts the traditional von Neuman or control flow architecture. ... Memory (Random Access Memory) Look up computing in Wiktionary, the free dictionary. ... In computer science, message passing is a form of communication used in concurrent programming, parallel programming, object-oriented programming, and interprocess communication. ...

Contents

Software architecture

Dataflow is a software architecture based on the idea that changing the value of a variable should automatically force recalculation of the values of other variables. The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships between them. ...


Dataflow programming languages embody these principles, with Spreadsheets perhaps the most widespread embodiment of dataflow. For example, in a spreadsheet you can specify a cell formula which depends on other cells; then when any of those cells is updated the first cell's value is automatically recalculated. It's possible for one change to initiate a whole sequence of changes, if one cell depends on another cell which depends on yet another cell, and so on. In computer programming, a dataflow language is a visual programming language that implements dataflow principles and architecture, and models a program, conceptually if not physically, as a directed graph of the data flowing between operations. ... Screenshot of a spreadsheet made with OpenOffice. ...


The dataflow technique is not restricted to recalculating numeric values, as done in spreadsheets. For example, dataflow can be used to redraw a picture in response to mouse movements, or to make robot turn in response to a change in light level.


One benefit of dataflow is that it can reduce the amount of coupling-related code in a program. For example, without dataflow, if a variable X depends on a variable Y, then whenever Y is changed X must be explicitly recalculated. This means that Y is coupled to X. Since X is also coupled to Y (because X's value depends on the Y's value), the program ends up with a cyclic dependency between the two variables. Most good programmers will get rid of this cycle by using an observer pattern, but only at the cost of introducing a non-trivial amount of code. Dataflow improves this situation by making the recalculation of X automatic, thereby eliminating the coupling between from Y to X. Dataflow makes implicit a significant amount of code that otherwise would have had to be tediously explicit. In computer science, dependency or coupling is the degree to which each program module relies on each other module. ... // The observer pattern (sometimes known as publish/subscribe) is a design pattern used in computer programming to observe the state of an object in a program. ...


Dataflow is also sometimes referred to as reactive programming.


There have been a few programming languages created specifically to support dataflow. In particular, many (if not most) visual programming languages have been based on the idea of dataflow. A good example of a Java-based framework is Pervasive DataRush. Visual programming language (VPL) is any programming language that lets users specify programs by manipulating program elements graphically rather than by specifying them textually. ...


Diagrams

The term dataflow may also be used to refer to the flow of data within a system, and is the name normally given to the arrows in a data flow diagram that represent the flow of data between external entities, processes, and data stores. A data flow diagram (DFD) is a graphical representation of the flow of data through an information system. ...


Concurrency

A dataflow network is a network of concurrently executing processes or automata that can communicate by sending data over channels (see message passing.) In computer science, message passing is a form of communication used in concurrent programming, parallel programming, object-oriented programming, and interprocess communication. ...


Kahn process networks, named after one of the pioneers of dataflow networks, are a particularly important class of such networks. In a Kahn process network the processes are determinate. This implies that they satisfy the so-called Kahn's principle, which roughly speaking states that, each determinate process computes a continuous function from input streams to output streams, and that a network of determinate processes is itself determinate, thus computing a continuous function. This implies that the behaviour of such networks can be described by a set of recursive equations, which can be solved using fixpoint theory. Process Networks is a Model of Computation (MoC) that was originally developed for modeling distributed systems but has proven its convenience for modeling signal processing systems. ... Process Networks is a Model of Computation (MoC) that was originally developed for modeling distributed systems but has proven its convenience for modeling signal processing systems. ... In mathematics, a continuous function is a function for which, intuitively, small changes in the input result in small changes in the output. ...


The concept of dataflow networks is closely related to another model of concurrency known as the Actor model. In computer science, the Actor model is a mathematical model of concurrent computation that has its origins in a 1973 paper by Carl Hewitt, Peter Bishop, and Richard Steiger. ...


Hardware architecture

Hardware architectures for dataflow was a major topic in Computer architecture research in the 1970s and early 1980s. Jack Dennis of MIT pioneered the field of static dataflow architectures while the Manchester Dataflow Machine and MIT Tagged Token architecture were major projects in dynamic dataflow. A typical vision of a computer architecture as a series of abstraction layers: hardware, firmware, assembler, kernel, operating system and applications (see also Tanenbaum 79). ... Jack Bonnell Dennis is an electrical engineer and a computer scientist. ... Mapúa Institute of Technology (MIT, MapúaTech or simply Mapúa) is a private, non-sectarian, Filipino tertiary institute located in Intramuros, Manila. ...


A compiler analyzes a computer program for the data dependencies between operations. It does this in order to better optimize the instruction sequences. Normally, the compiled output has the results of these optimizations, but the dependency information itself is not recorded within the compiled binary code. This article is about the computing term. ...


A compiled program for a dataflow machine would keep this dependency information. A dataflow compiler would record these dependencies by creating unique tags for each dependency instead of using variable names. By giving each dependency a unique tag, it exposes any possibility of parallel execution of non-dependent instructions. Each instruction, along with its tagged operands would be stored in the compiled binary code.


The compiled program would be loaded into a Content-addressable memory of the dataflow computer. When all of the tagged operands of an instruction became available, that is previously calculated, the instruction was marked as available for execution by an execution unit. This was known as activating or firing the instruction. Content-addressable memory (CAM) is a special type of computer memory used in certain very high speed searching applications. ... In computer engineering, an execution unit is a part of a CPU that performs the operations and calculations called for by the program. ...


Once the instruction was completed by the execution unit, its output data would be broadcast (with its tag) to the CAM memory. Any other instructions that were dependent on this particular datum (identified by its tag value) would be updated. In this way, subsequent instructions would be activated.


Instructions would be activated in data order, that is when all of the required data operands were available. This order can be different from the sequential order envisioned by the human programmer, the programmed order.


The instructions along with their required data would be transported as packets to the execution units. These packets are often known as instruction tokens. Similarly, data results are transported back to the CAM as data tokens. The packetization of instructions and results allowed for parallel execution of activated instructions on a large scale. Connection networks would deliver the activated instruction tokens to the execution units and return data tokens to the instruction CAM memory. In contrast to the conventional von Neumann architecture, data tokens are not permanently stored in memory, rather they are transient messages that only exist when in transit to the instruction storage. Design of the Von Neumann architecture For the robotic architecture also named after Von Neumann, see Von Neumann machine The von Neumann architecture is a computer design model that uses a single storage structure to hold both instructions and data. ...


Earlier designs that only used instruction addresses as data dependency tags were called static dataflow machines. These machines could not allow instructions from multiple loop iterations (or multiple calls to the same routine) to be issued simultaneously as the simple tags could not differentiate between the different loop iterations (or each invocation of the routine). Later designs called dynamic dataflow machines used more complex tags to allow greater parallelism from these cases.


The research, however, never overcame the problems related to:

  • efficiently broadcasting data tokens in a massively parallel system
  • efficiently dispatching instruction tokens in a massively parallel system
  • building CAMs large enough to hold all of the dependencies of a real program

Instructions and their data dependencies proved to be too fine-grained to be effectively distributed in a large network. That is, the time for the instructions and tagged results to travel through a large connection network was longer than the time to actually do the computations.


Out-of-order execution is the conceptual descendant of dataflow computation and has become the dominant computing paradigm since the 1990s. It is a form of restricted dataflow. This paradigm introduced the idea of an execution window. The execution window follows the programmed sequential order of the program, however within the window, instructions are allowed to be completed in data dependency order. This is accomplished by the computer hardware dynamically tagging the data dependencies within the window. The logical complexity of dynamically keeping track of the data dependencies, restricts OoO CPUs to a small number of execution units (2-6) and the execution window sizes to the range of 32 to 200 instructions, much smaller than envisioned for full dataflow machines. In computer engineering, out-of-order execution, OoOE, is a paradigm used in most high-speed microprocessors in order to make use of cycles that would otherwise be wasted by a certain type of costly delay. ... In computer engineering, out-of-order execution, OoOE, is a paradigm used in most high-speed microprocessors in order to make use of cycles that would otherwise be wasted by a certain type of costly delay. ... CPU can stand for: in computing: Central processing unit in journalism: Commonwealth Press Union in law enforcement: Crime prevention unit in software: Critical patch update, a type of software patch distributed by Oracle Corporation in Macleans College is often known as Ash Lim. ...


See also

Look up dataflow in Wiktionary, the free dictionary.

Wikipedia does not have an article with this exact name. ... It has been suggested that French Wiktionary be merged into this article or section. ... A data flow diagram (DFD) is a graphical representation of the flow of data through an information system. ... In computer programming, a dataflow language is a visual programming language that implements dataflow principles and architecture, and models a program, conceptually if not physically, as a directed graph of the data flowing between operations. ... In computer programming, lazy evaluation is a technique that attempts to delay computation of expressions until the results of the computation are known to be needed. ... It has been suggested that this article or section be merged into Event Stream Processing. ... Pure Data with many patches open (netpd project) Pure Data (or Pd) is a graphical programming language developed by Miller Puckette in the 1990s for the creation of interactive computer music and multimedia works. ... In computer science, flow-based programming (FBP) is a programming paradigm that defines applications as networks of black box processes, which exchange data across predefined connections. ... Functional reactive programming is a programming paradigm for reactive programming in a functional programming setting. ...

External links


  Results from FactBites:
 
Dataflow - Wikipedia, the free encyclopedia (1218 words)
Dataflow is a software architecture based on the idea that changing the value of a variable should automatically force recalculation of the values of other variables.
Dataflow improves this situation by making the recalculation of X automatic, thereby eliminating the coupling between from Y to X. Dataflow makes implicit a significant amount of code that otherwise would have had to be tediously explicit.
The term dataflow may also be used to refer to the flow of data within a system, and is the name normally given to the arrows in a data flow diagram that represent the flow of data between external entities, processes, and data stores.
SGI TPL View (PDL::Dataflow.1) (952 words)
The difficulties with one-directional dataflow are related to sequences like $b = $a + 1; $b ++; where there are several possible outcomes and the semantics get a lit- tle murky.
The basic philosophy behind dataflow is that > $a = pdl 2,3,4; > $b = $a * 2; > print $b [2 3 4] > $a->set(0,5); > print $b; [10 3 4] should work.
Dataflow as such is a fairly limited addition on top of Perl.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.