A general rule
A code-section, that is to be executed in parallel ( a PAR
-type of process scheduling ), by definition, provides no means so as to become executed on any infrastructure of hardware resources in any particular "order" ( like additionally enforcing some kind of a SEQ
-type of process scheduling ), including a "reverse-(backward-stepping)-order" et al.
As there is no such even number to be also odd at the same time,
there is no chance for any PAR
processes-scheduling to become also SEQ
at the same time.
Specific coordination tools for "ordering" task execution still possible
For indeed a special purpose, there are means -- a.k.a. synchronisation primitives -- that could provide a blocking step, so that one part of a computation has to explicitly wait until it receives a message / a value / another kind of a mutual synchronisation impulse from some other process ( a task or a part of a more complex, distributed-system computation graph ).
In all cases a carefull algorithmisation is a must, as blocking states, in principal, could and will devastate all benefits a parallel code-execution may provide.
For details, read about chapel Synchronisation Variables.
Epilogue
In any case, a design, that has to resort to block ( using any kind of a barrier, or waiting for a synchronisation variable, or expecting a message from a CSP-channel et al ) ought be the very last option, if all other Computer Science tools and refactoring efforts have failed to provide any better, and as much PAR
as possible, algorithmisation. Besides the blocking, per-se, the Amdahl Law ratio goes steeply down, back to a performance of a pure SEQ
schedule.
Serious HPC is not based on using wait-states, but the very opposite.