FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://en.wikipedia.org/wiki/Binary_Modular_Dataflow_Machine

Binary Modular Dataflow Machine

"},"logo caption":{"wt":""},"logo alt":{"wt":""},"logo upright":{"wt":""},"logo size":{"wt":""},"collapsible":{"wt":"<!-- Any text here will collapse the screenshot. -->"},"screenshot":{"wt":"<!-- File name without 'File:' -->"},"screenshot upright":{"wt":""},"screenshot size":{"wt":""},"screenshot alt":{"wt":""},"caption":{"wt":""},"other_names":{"wt":""},"author":{"wt":""},"developer":{"wt":""},"released":{"wt":"<!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->"},"ver layout":{"wt":"<!-- simple (default) or stacked -->"},"discontinued":{"wt":"<!-- Set to yes, if software is discontinued, otherwise omit. -->"},"latest release version":{"wt":"v.5.9.9_R25_b2506"},"latest release date":{"wt":"{{Start date and age|2025|06|13}}"},"latest preview version":{"wt":""},"latest preview date":{"wt":"<!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->"},"repo":{"wt":"<!-- {{URL|example.org}} -->"},"qid":{"wt":""},"programming language":{"wt":""},"middleware":{"wt":""},"engine":{"wt":"<!-- or |engines= -->"},"operating system":{"wt":""},"platform":{"wt":""},"included with":{"wt":""},"replaces":{"wt":""},"replaced_by":{"wt":""},"service_name":{"wt":""},"size":{"wt":""},"standard":{"wt":""},"language":{"wt":""},"language count":{"wt":"<!-- Number only -->"},"language footnote":{"wt":""},"genre":{"wt":""},"license":{"wt":"Proprietary / Free for non-commercial use"},"website":{"wt":"{{URL|http://www.bmdfm.com/}}"}},"i":0}}]}'>
Binary Modular Dataflow Machine
(setqa(foo0i))#a=foo0(i); (setqb(foo1(+i1)))#b=foo1(i+1); (setqb(++b))#b++; (outf"a = %d\n"a)#printf("a = %d\n",a); (outf"b = %d\n"b)#printf("b = %d\n",b);

The two first statements are independent, so a dataflow engine of BMDFM can run them on different processors or processor's cores. The two last statements can also run in parallel but only after "a" and "b" are computed. The dataflow engine recognizes dependencies automatically because of its ability to build a dataflow graph dynamically at runtime. Additionally, the dataflow engine correctly orders the output stream to output the results sequentially. Thus even after the out-of-order processing the results will appear in a natural way.

Suppose that above code fragment now is nested in a loop:

"urn:nbn:de:bvb:91-diss20060316-1748151609". URN NBN Resolver for Germany and Switzerland. March 22, 2006.

External links

edit