>In a fork/join program, you need just two orders: run all loops from 0 to N. run them all backwards, from N to 0.<p>Does this hold for the following code:<p>for (j = 0; j < 3; j++) a = j % 2;<p>In both forward (0, 1, 2) and backward (2, 1, 0) order, the final value of a is 0. But with the j==1 loop running last, a becomes 1 instead.