Concurrency is a setting that controls how many targets are executed simultaneously, as well as the order in which they become available for execution with respect to phase transitioning. You may define concurrency at the program level (affecting all targets in the program) or at the set level (affecting targets in that set and any subsets under that set).
Current target must progress through all its phases before being replaced by a new target.
All targets must progress through the current phase before any can be run in the next phase.
Consider a program with 3 targets (T1, T2, T3) to be executed one at at time, where each target has two phases ("Assess" and "Train").
If phase progression is set to "Targets Independent", the order of execution will be as follows:
T1:Assess, T1:Train, T2:Assess, T2:Train, T3:Assess, T3:Train
Alternatively, if phase progression is set to "Targets synchronized", the order of execution will be:
T1:Assess, T2:Assess, T3:Assess, T1:Train, T2:Train, T3:Train