▁data flow ▁engine ▁of ▁B M DF M ▁can ▁run ▁them ▁on ▁different ▁process ors ▁or ▁processor ' s ▁cores . ▁The ▁two ▁last ▁statements ▁can ▁also ▁run ▁in ▁parallel ▁but ▁only ▁after ▁" a " ▁and ▁" b " ▁are ▁computed . ▁The ▁data flow ▁engine ▁recogn izes ▁dependencies ▁automatically ▁because ▁of ▁its ▁ability ▁to ▁build ▁a ▁data flow ▁graph ▁dynamically ▁at ▁runtime . ▁Additionally , ▁the ▁data flow ▁engine ▁correctly ▁orders ▁the ▁output ▁stream ▁to ▁output ▁the ▁results ▁sequ entially . ▁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 : ▁ ▁( for ▁i ▁ 1 ▁ 1 ▁N ▁( pro gn ▁▁▁▁▁▁▁ ▁# ▁for ▁( i ▁= ▁ 1 ; ▁i ▁<= ▁N ; ▁i ++) ▁{ ▁▁ ▁( set q ▁a ▁( foo 0 ▁i )) ▁▁▁▁▁▁▁ ▁# ▁▁ ▁a ▁= ▁foo 0 ( i ); ▁▁ ▁( set q ▁b ▁( foo 1 ▁(+ ▁i ▁ 1 ))) ▁ ▁# ▁▁ ▁b ▁= ▁foo 1 ( i ▁+ ▁ 1 ); ▁▁ ▁( set q ▁b ▁( ++ ▁b )) ▁▁▁▁▁▁▁▁▁ ▁# ▁▁ ▁b ++; ▁▁ ▁( out f ▁" a ▁= ▁% d \ n " ▁a ) ▁▁▁▁▁ ▁# ▁▁ ▁printf (" a ▁= ▁% d \ n ", ▁a ); ▁▁ ▁( out f ▁" b ▁= ▁% d \ n " ▁b ) ▁▁▁▁▁ ▁# ▁▁ ▁printf (" b ▁= ▁%